@liquid-af/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +776 -0
  2. package/dist/accounts/index.d.ts +5 -0
  3. package/dist/accounts/index.d.ts.map +1 -0
  4. package/dist/accounts/index.js +5 -0
  5. package/dist/accounts/index.js.map +1 -0
  6. package/dist/accounts/liquid-fees.d.ts +63 -0
  7. package/dist/accounts/liquid-fees.d.ts.map +1 -0
  8. package/dist/accounts/liquid-fees.js +27 -0
  9. package/dist/accounts/liquid-fees.js.map +1 -0
  10. package/dist/accounts/liquid-state.d.ts +112 -0
  11. package/dist/accounts/liquid-state.d.ts.map +1 -0
  12. package/dist/accounts/liquid-state.js +92 -0
  13. package/dist/accounts/liquid-state.js.map +1 -0
  14. package/dist/accounts/liquid-swap.d.ts +97 -0
  15. package/dist/accounts/liquid-swap.d.ts.map +1 -0
  16. package/dist/accounts/liquid-swap.js +54 -0
  17. package/dist/accounts/liquid-swap.js.map +1 -0
  18. package/dist/accounts/liquid.d.ts +175 -0
  19. package/dist/accounts/liquid.d.ts.map +1 -0
  20. package/dist/accounts/liquid.js +66 -0
  21. package/dist/accounts/liquid.js.map +1 -0
  22. package/dist/client.d.ts +621 -0
  23. package/dist/client.d.ts.map +1 -0
  24. package/dist/client.js +511 -0
  25. package/dist/client.js.map +1 -0
  26. package/dist/config.d.ts +56 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +44 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/errors.d.ts +39 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +63 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/events/index.d.ts +4 -0
  35. package/dist/events/index.d.ts.map +1 -0
  36. package/dist/events/index.js +2 -0
  37. package/dist/events/index.js.map +1 -0
  38. package/dist/events/parser.d.ts +40 -0
  39. package/dist/events/parser.d.ts.map +1 -0
  40. package/dist/events/parser.js +67 -0
  41. package/dist/events/parser.js.map +1 -0
  42. package/dist/events/types.d.ts +286 -0
  43. package/dist/events/types.d.ts.map +1 -0
  44. package/dist/events/types.js +2 -0
  45. package/dist/events/types.js.map +1 -0
  46. package/dist/helpers/index.d.ts +4 -0
  47. package/dist/helpers/index.d.ts.map +1 -0
  48. package/dist/helpers/index.js +3 -0
  49. package/dist/helpers/index.js.map +1 -0
  50. package/dist/helpers/preview.d.ts +259 -0
  51. package/dist/helpers/preview.d.ts.map +1 -0
  52. package/dist/helpers/preview.js +458 -0
  53. package/dist/helpers/preview.js.map +1 -0
  54. package/dist/helpers/user.d.ts +11 -0
  55. package/dist/helpers/user.d.ts.map +1 -0
  56. package/dist/helpers/user.js +20 -0
  57. package/dist/helpers/user.js.map +1 -0
  58. package/dist/idl/index.d.ts +53 -0
  59. package/dist/idl/index.d.ts.map +1 -0
  60. package/dist/idl/index.js +64 -0
  61. package/dist/idl/index.js.map +1 -0
  62. package/dist/idl/liquid.d.ts +10523 -0
  63. package/dist/idl/liquid.d.ts.map +1 -0
  64. package/dist/idl/liquid.js +2 -0
  65. package/dist/idl/liquid.js.map +1 -0
  66. package/dist/idl/liquid.json +10516 -0
  67. package/dist/idl/liquid_fees.d.ts +1520 -0
  68. package/dist/idl/liquid_fees.d.ts.map +1 -0
  69. package/dist/idl/liquid_fees.js +2 -0
  70. package/dist/idl/liquid_fees.js.map +1 -0
  71. package/dist/idl/liquid_fees.json +1513 -0
  72. package/dist/idl/liquid_state.d.ts +2936 -0
  73. package/dist/idl/liquid_state.d.ts.map +1 -0
  74. package/dist/idl/liquid_state.js +2 -0
  75. package/dist/idl/liquid_state.js.map +1 -0
  76. package/dist/idl/liquid_state.json +2929 -0
  77. package/dist/idl/liquid_swap.d.ts +5849 -0
  78. package/dist/idl/liquid_swap.d.ts.map +1 -0
  79. package/dist/idl/liquid_swap.js +2 -0
  80. package/dist/idl/liquid_swap.js.map +1 -0
  81. package/dist/idl/liquid_swap.json +5842 -0
  82. package/dist/index.d.ts +19 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +15 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/instructions/index.d.ts +9 -0
  87. package/dist/instructions/index.d.ts.map +1 -0
  88. package/dist/instructions/index.js +9 -0
  89. package/dist/instructions/index.js.map +1 -0
  90. package/dist/instructions/liquid-fees.d.ts +111 -0
  91. package/dist/instructions/liquid-fees.d.ts.map +1 -0
  92. package/dist/instructions/liquid-fees.js +169 -0
  93. package/dist/instructions/liquid-fees.js.map +1 -0
  94. package/dist/instructions/liquid-state.d.ts +173 -0
  95. package/dist/instructions/liquid-state.d.ts.map +1 -0
  96. package/dist/instructions/liquid-state.js +194 -0
  97. package/dist/instructions/liquid-state.js.map +1 -0
  98. package/dist/instructions/liquid-swap.d.ts +122 -0
  99. package/dist/instructions/liquid-swap.d.ts.map +1 -0
  100. package/dist/instructions/liquid-swap.js +167 -0
  101. package/dist/instructions/liquid-swap.js.map +1 -0
  102. package/dist/instructions/liquid.d.ts +297 -0
  103. package/dist/instructions/liquid.d.ts.map +1 -0
  104. package/dist/instructions/liquid.js +483 -0
  105. package/dist/instructions/liquid.js.map +1 -0
  106. package/dist/instructions/program-cache.d.ts +35 -0
  107. package/dist/instructions/program-cache.d.ts.map +1 -0
  108. package/dist/instructions/program-cache.js +68 -0
  109. package/dist/instructions/program-cache.js.map +1 -0
  110. package/dist/math/amm.d.ts +42 -0
  111. package/dist/math/amm.d.ts.map +1 -0
  112. package/dist/math/amm.js +109 -0
  113. package/dist/math/amm.js.map +1 -0
  114. package/dist/math/bonding-curve.d.ts +34 -0
  115. package/dist/math/bonding-curve.d.ts.map +1 -0
  116. package/dist/math/bonding-curve.js +80 -0
  117. package/dist/math/bonding-curve.js.map +1 -0
  118. package/dist/math/constants.d.ts +14 -0
  119. package/dist/math/constants.d.ts.map +1 -0
  120. package/dist/math/constants.js +14 -0
  121. package/dist/math/constants.js.map +1 -0
  122. package/dist/math/fees.d.ts +88 -0
  123. package/dist/math/fees.d.ts.map +1 -0
  124. package/dist/math/fees.js +135 -0
  125. package/dist/math/fees.js.map +1 -0
  126. package/dist/math/index.d.ts +8 -0
  127. package/dist/math/index.d.ts.map +1 -0
  128. package/dist/math/index.js +6 -0
  129. package/dist/math/index.js.map +1 -0
  130. package/dist/math/tiered-fees.d.ts +80 -0
  131. package/dist/math/tiered-fees.d.ts.map +1 -0
  132. package/dist/math/tiered-fees.js +129 -0
  133. package/dist/math/tiered-fees.js.map +1 -0
  134. package/dist/oracle.d.ts +53 -0
  135. package/dist/oracle.d.ts.map +1 -0
  136. package/dist/oracle.js +70 -0
  137. package/dist/oracle.js.map +1 -0
  138. package/dist/pda/index.d.ts +89 -0
  139. package/dist/pda/index.d.ts.map +1 -0
  140. package/dist/pda/index.js +127 -0
  141. package/dist/pda/index.js.map +1 -0
  142. package/dist/pda/liquid-fees.d.ts +27 -0
  143. package/dist/pda/liquid-fees.d.ts.map +1 -0
  144. package/dist/pda/liquid-fees.js +36 -0
  145. package/dist/pda/liquid-fees.js.map +1 -0
  146. package/dist/pda/liquid-state.d.ts +56 -0
  147. package/dist/pda/liquid-state.d.ts.map +1 -0
  148. package/dist/pda/liquid-state.js +79 -0
  149. package/dist/pda/liquid-state.js.map +1 -0
  150. package/dist/pda/liquid-swap.d.ts +76 -0
  151. package/dist/pda/liquid-swap.d.ts.map +1 -0
  152. package/dist/pda/liquid-swap.js +103 -0
  153. package/dist/pda/liquid-swap.js.map +1 -0
  154. package/dist/pda/liquid.d.ts +67 -0
  155. package/dist/pda/liquid.d.ts.map +1 -0
  156. package/dist/pda/liquid.js +91 -0
  157. package/dist/pda/liquid.js.map +1 -0
  158. package/dist/provider.d.ts +26 -0
  159. package/dist/provider.d.ts.map +1 -0
  160. package/dist/provider.js +47 -0
  161. package/dist/provider.js.map +1 -0
  162. package/dist/transaction/builder.d.ts +30 -0
  163. package/dist/transaction/builder.d.ts.map +1 -0
  164. package/dist/transaction/builder.js +48 -0
  165. package/dist/transaction/builder.js.map +1 -0
  166. package/dist/transaction/index.d.ts +3 -0
  167. package/dist/transaction/index.d.ts.map +1 -0
  168. package/dist/transaction/index.js +3 -0
  169. package/dist/transaction/index.js.map +1 -0
  170. package/dist/transaction/send.d.ts +25 -0
  171. package/dist/transaction/send.d.ts.map +1 -0
  172. package/dist/transaction/send.js +52 -0
  173. package/dist/transaction/send.js.map +1 -0
  174. package/dist/types.d.ts +311 -0
  175. package/dist/types.d.ts.map +1 -0
  176. package/dist/types.js +46 -0
  177. package/dist/types.js.map +1 -0
  178. package/package.json +112 -0
  179. package/src/accounts/index.ts +26 -0
  180. package/src/accounts/liquid-fees.ts +38 -0
  181. package/src/accounts/liquid-state.ts +134 -0
  182. package/src/accounts/liquid-swap.ts +79 -0
  183. package/src/accounts/liquid.ts +100 -0
  184. package/src/client.ts +1001 -0
  185. package/src/config.ts +91 -0
  186. package/src/errors.ts +94 -0
  187. package/src/events/index.ts +42 -0
  188. package/src/events/parser.ts +90 -0
  189. package/src/events/types.ts +310 -0
  190. package/src/helpers/index.ts +23 -0
  191. package/src/helpers/preview.ts +798 -0
  192. package/src/helpers/user.ts +24 -0
  193. package/src/idl/index.ts +94 -0
  194. package/src/idl/liquid.json +10516 -0
  195. package/src/idl/liquid.ts +10522 -0
  196. package/src/idl/liquid_fees.json +1513 -0
  197. package/src/idl/liquid_fees.ts +1519 -0
  198. package/src/idl/liquid_state.json +2929 -0
  199. package/src/idl/liquid_state.ts +2935 -0
  200. package/src/idl/liquid_swap.json +5842 -0
  201. package/src/idl/liquid_swap.ts +5848 -0
  202. package/src/index.ts +98 -0
  203. package/src/instructions/index.ts +109 -0
  204. package/src/instructions/liquid-fees.ts +289 -0
  205. package/src/instructions/liquid-state.ts +336 -0
  206. package/src/instructions/liquid-swap.ts +414 -0
  207. package/src/instructions/liquid.ts +884 -0
  208. package/src/instructions/program-cache.ts +106 -0
  209. package/src/math/amm.ts +146 -0
  210. package/src/math/bonding-curve.ts +122 -0
  211. package/src/math/constants.ts +19 -0
  212. package/src/math/fees.ts +191 -0
  213. package/src/math/index.ts +40 -0
  214. package/src/math/tiered-fees.ts +165 -0
  215. package/src/oracle.ts +97 -0
  216. package/src/pda/index.ts +331 -0
  217. package/src/pda/liquid-fees.ts +58 -0
  218. package/src/pda/liquid-state.ts +123 -0
  219. package/src/pda/liquid-swap.ts +162 -0
  220. package/src/pda/liquid.ts +152 -0
  221. package/src/provider.ts +60 -0
  222. package/src/transaction/builder.ts +80 -0
  223. package/src/transaction/index.ts +6 -0
  224. package/src/transaction/send.ts +72 -0
  225. package/src/types.ts +354 -0
@@ -0,0 +1,2929 @@
1
+ {
2
+ "address": "State3HtEfi7cXdsTpAtRoBvrij8zSFCiGTAVWmYH2d",
3
+ "metadata": {
4
+ "name": "liquid_state",
5
+ "version": "0.1.0",
6
+ "spec": "0.1.0",
7
+ "description": "Unified state management for liquid programs (user properties, cashback, volume tracking)"
8
+ },
9
+ "instructions": [
10
+ {
11
+ "name": "accept_admin",
12
+ "docs": [
13
+ "Accept a pending admin transfer, completing the two-step handoff"
14
+ ],
15
+ "discriminator": [
16
+ 112,
17
+ 42,
18
+ 45,
19
+ 90,
20
+ 116,
21
+ 181,
22
+ 13,
23
+ 170
24
+ ],
25
+ "accounts": [
26
+ {
27
+ "name": "new_admin",
28
+ "docs": [
29
+ "The pending admin who is accepting the transfer."
30
+ ],
31
+ "writable": true,
32
+ "signer": true
33
+ },
34
+ {
35
+ "name": "cashback_config",
36
+ "docs": [
37
+ "Cashback configuration holding the admin authority"
38
+ ],
39
+ "writable": true,
40
+ "pda": {
41
+ "seeds": [
42
+ {
43
+ "kind": "const",
44
+ "value": [
45
+ 99,
46
+ 97,
47
+ 115,
48
+ 104,
49
+ 98,
50
+ 97,
51
+ 99,
52
+ 107,
53
+ 95,
54
+ 99,
55
+ 111,
56
+ 110,
57
+ 102,
58
+ 105,
59
+ 103
60
+ ]
61
+ }
62
+ ]
63
+ }
64
+ }
65
+ ],
66
+ "args": []
67
+ },
68
+ {
69
+ "name": "admin_update_user",
70
+ "docs": [
71
+ "Admin updates a user's referrer/multiplier and always takes a snapshot"
72
+ ],
73
+ "discriminator": [
74
+ 161,
75
+ 36,
76
+ 48,
77
+ 104,
78
+ 149,
79
+ 187,
80
+ 39,
81
+ 2
82
+ ],
83
+ "accounts": [
84
+ {
85
+ "name": "payer",
86
+ "docs": [
87
+ "Payer for snapshot account creation"
88
+ ],
89
+ "writable": true,
90
+ "signer": true
91
+ },
92
+ {
93
+ "name": "admin",
94
+ "docs": [
95
+ "Admin authority"
96
+ ],
97
+ "signer": true
98
+ },
99
+ {
100
+ "name": "user_properties",
101
+ "docs": [
102
+ "User properties account"
103
+ ],
104
+ "writable": true,
105
+ "pda": {
106
+ "seeds": [
107
+ {
108
+ "kind": "const",
109
+ "value": [
110
+ 117,
111
+ 115,
112
+ 101,
113
+ 114,
114
+ 95,
115
+ 112,
116
+ 114,
117
+ 111,
118
+ 112,
119
+ 101,
120
+ 114,
121
+ 116,
122
+ 105,
123
+ 101,
124
+ 115
125
+ ]
126
+ },
127
+ {
128
+ "kind": "account",
129
+ "path": "user"
130
+ }
131
+ ]
132
+ }
133
+ },
134
+ {
135
+ "name": "user_snapshot",
136
+ "docs": [
137
+ "Snapshot account to create (always taken on admin update)"
138
+ ],
139
+ "writable": true,
140
+ "pda": {
141
+ "seeds": [
142
+ {
143
+ "kind": "const",
144
+ "value": [
145
+ 117,
146
+ 115,
147
+ 101,
148
+ 114,
149
+ 95,
150
+ 115,
151
+ 110,
152
+ 97,
153
+ 112,
154
+ 115,
155
+ 104,
156
+ 111,
157
+ 116
158
+ ]
159
+ },
160
+ {
161
+ "kind": "account",
162
+ "path": "user"
163
+ },
164
+ {
165
+ "kind": "account",
166
+ "path": "user_properties.snapshot_count",
167
+ "account": "UserProperties"
168
+ }
169
+ ]
170
+ }
171
+ },
172
+ {
173
+ "name": "cashback_config",
174
+ "docs": [
175
+ "Cashback configuration for admin auth check"
176
+ ],
177
+ "pda": {
178
+ "seeds": [
179
+ {
180
+ "kind": "const",
181
+ "value": [
182
+ 99,
183
+ 97,
184
+ 115,
185
+ 104,
186
+ 98,
187
+ 97,
188
+ 99,
189
+ 107,
190
+ 95,
191
+ 99,
192
+ 111,
193
+ 110,
194
+ 102,
195
+ 105,
196
+ 103
197
+ ]
198
+ }
199
+ ]
200
+ }
201
+ },
202
+ {
203
+ "name": "user",
204
+ "docs": [
205
+ "The user being updated"
206
+ ]
207
+ },
208
+ {
209
+ "name": "system_program",
210
+ "address": "11111111111111111111111111111111"
211
+ }
212
+ ],
213
+ "args": [
214
+ {
215
+ "name": "args",
216
+ "type": {
217
+ "defined": {
218
+ "name": "AdminUpdateUserArgs"
219
+ }
220
+ }
221
+ }
222
+ ]
223
+ },
224
+ {
225
+ "name": "cancel_admin_transfer",
226
+ "docs": [
227
+ "Cancel a pending admin transfer (callable by current or pending admin)"
228
+ ],
229
+ "discriminator": [
230
+ 38,
231
+ 131,
232
+ 157,
233
+ 31,
234
+ 240,
235
+ 137,
236
+ 44,
237
+ 215
238
+ ],
239
+ "accounts": [
240
+ {
241
+ "name": "authority",
242
+ "docs": [
243
+ "The authority cancelling the transfer (current admin or pending admin)."
244
+ ],
245
+ "writable": true,
246
+ "signer": true
247
+ },
248
+ {
249
+ "name": "cashback_config",
250
+ "docs": [
251
+ "Cashback configuration holding the admin authority"
252
+ ],
253
+ "writable": true,
254
+ "pda": {
255
+ "seeds": [
256
+ {
257
+ "kind": "const",
258
+ "value": [
259
+ 99,
260
+ 97,
261
+ 115,
262
+ 104,
263
+ 98,
264
+ 97,
265
+ 99,
266
+ 107,
267
+ 95,
268
+ 99,
269
+ 111,
270
+ 110,
271
+ 102,
272
+ 105,
273
+ 103
274
+ ]
275
+ }
276
+ ]
277
+ }
278
+ }
279
+ ],
280
+ "args": []
281
+ },
282
+ {
283
+ "name": "close_deal",
284
+ "docs": [
285
+ "Admin closes/deletes a deal, returning rent to admin"
286
+ ],
287
+ "discriminator": [
288
+ 157,
289
+ 173,
290
+ 33,
291
+ 216,
292
+ 146,
293
+ 16,
294
+ 65,
295
+ 82
296
+ ],
297
+ "accounts": [
298
+ {
299
+ "name": "admin",
300
+ "docs": [
301
+ "Admin authority (receives rent refund)"
302
+ ],
303
+ "writable": true,
304
+ "signer": true
305
+ },
306
+ {
307
+ "name": "deal",
308
+ "docs": [
309
+ "Deal account to close"
310
+ ],
311
+ "writable": true,
312
+ "pda": {
313
+ "seeds": [
314
+ {
315
+ "kind": "const",
316
+ "value": [
317
+ 100,
318
+ 101,
319
+ 97,
320
+ 108
321
+ ]
322
+ },
323
+ {
324
+ "kind": "account",
325
+ "path": "deal.owner",
326
+ "account": "Deal"
327
+ }
328
+ ]
329
+ }
330
+ },
331
+ {
332
+ "name": "cashback_config",
333
+ "docs": [
334
+ "Cashback configuration for admin auth check"
335
+ ],
336
+ "pda": {
337
+ "seeds": [
338
+ {
339
+ "kind": "const",
340
+ "value": [
341
+ 99,
342
+ 97,
343
+ 115,
344
+ 104,
345
+ 98,
346
+ 97,
347
+ 99,
348
+ 107,
349
+ 95,
350
+ 99,
351
+ 111,
352
+ 110,
353
+ 102,
354
+ 105,
355
+ 103
356
+ ]
357
+ }
358
+ ]
359
+ }
360
+ }
361
+ ],
362
+ "args": []
363
+ },
364
+ {
365
+ "name": "create_deal",
366
+ "docs": [
367
+ "Admin creates an exclusive deal for a pubkey",
368
+ "",
369
+ "# Arguments",
370
+ "* `owner` - The pubkey this deal belongs to",
371
+ "* `cashback_multiplier_bps` - Cashback multiplier in basis points (10000 = 1x)"
372
+ ],
373
+ "discriminator": [
374
+ 198,
375
+ 212,
376
+ 144,
377
+ 151,
378
+ 97,
379
+ 56,
380
+ 149,
381
+ 113
382
+ ],
383
+ "accounts": [
384
+ {
385
+ "name": "payer",
386
+ "docs": [
387
+ "Payer for account creation"
388
+ ],
389
+ "writable": true,
390
+ "signer": true
391
+ },
392
+ {
393
+ "name": "admin",
394
+ "docs": [
395
+ "Admin authority"
396
+ ],
397
+ "signer": true
398
+ },
399
+ {
400
+ "name": "deal",
401
+ "docs": [
402
+ "Deal account to create"
403
+ ],
404
+ "writable": true,
405
+ "pda": {
406
+ "seeds": [
407
+ {
408
+ "kind": "const",
409
+ "value": [
410
+ 100,
411
+ 101,
412
+ 97,
413
+ 108
414
+ ]
415
+ },
416
+ {
417
+ "kind": "arg",
418
+ "path": "owner"
419
+ }
420
+ ]
421
+ }
422
+ },
423
+ {
424
+ "name": "cashback_config",
425
+ "docs": [
426
+ "Cashback configuration for admin auth check"
427
+ ],
428
+ "pda": {
429
+ "seeds": [
430
+ {
431
+ "kind": "const",
432
+ "value": [
433
+ 99,
434
+ 97,
435
+ 115,
436
+ 104,
437
+ 98,
438
+ 97,
439
+ 99,
440
+ 107,
441
+ 95,
442
+ 99,
443
+ 111,
444
+ 110,
445
+ 102,
446
+ 105,
447
+ 103
448
+ ]
449
+ }
450
+ ]
451
+ }
452
+ },
453
+ {
454
+ "name": "system_program",
455
+ "address": "11111111111111111111111111111111"
456
+ }
457
+ ],
458
+ "args": [
459
+ {
460
+ "name": "owner",
461
+ "type": "pubkey"
462
+ },
463
+ {
464
+ "name": "cashback_multiplier_bps",
465
+ "type": "u16"
466
+ }
467
+ ]
468
+ },
469
+ {
470
+ "name": "earn_cashback",
471
+ "docs": [
472
+ "Earn cashback credits (called via CPI during trades)"
473
+ ],
474
+ "discriminator": [
475
+ 123,
476
+ 185,
477
+ 10,
478
+ 74,
479
+ 209,
480
+ 80,
481
+ 101,
482
+ 149
483
+ ],
484
+ "accounts": [
485
+ {
486
+ "name": "cpi_authority",
487
+ "docs": [
488
+ "CPI authority PDA from the calling program (must be liquid or liquid-swap).",
489
+ "Only the owning program can produce a valid signature for its PDA."
490
+ ],
491
+ "signer": true
492
+ },
493
+ {
494
+ "name": "user",
495
+ "docs": [
496
+ "The user whose cashback is being earned"
497
+ ]
498
+ },
499
+ {
500
+ "name": "user_properties",
501
+ "writable": true,
502
+ "pda": {
503
+ "seeds": [
504
+ {
505
+ "kind": "const",
506
+ "value": [
507
+ 117,
508
+ 115,
509
+ 101,
510
+ 114,
511
+ 95,
512
+ 112,
513
+ 114,
514
+ 111,
515
+ 112,
516
+ 101,
517
+ 114,
518
+ 116,
519
+ 105,
520
+ 101,
521
+ 115
522
+ ]
523
+ },
524
+ {
525
+ "kind": "account",
526
+ "path": "user"
527
+ }
528
+ ]
529
+ }
530
+ }
531
+ ],
532
+ "args": [
533
+ {
534
+ "name": "cashback_amount",
535
+ "type": "u64"
536
+ }
537
+ ]
538
+ },
539
+ {
540
+ "name": "initialize_config",
541
+ "docs": [
542
+ "Initialize global configuration (cashback config and volume accumulators)"
543
+ ],
544
+ "discriminator": [
545
+ 208,
546
+ 127,
547
+ 21,
548
+ 1,
549
+ 194,
550
+ 190,
551
+ 196,
552
+ 70
553
+ ],
554
+ "accounts": [
555
+ {
556
+ "name": "payer",
557
+ "writable": true,
558
+ "signer": true
559
+ },
560
+ {
561
+ "name": "cashback_config",
562
+ "writable": true,
563
+ "pda": {
564
+ "seeds": [
565
+ {
566
+ "kind": "const",
567
+ "value": [
568
+ 99,
569
+ 97,
570
+ 115,
571
+ 104,
572
+ 98,
573
+ 97,
574
+ 99,
575
+ 107,
576
+ 95,
577
+ 99,
578
+ 111,
579
+ 110,
580
+ 102,
581
+ 105,
582
+ 103
583
+ ]
584
+ }
585
+ ]
586
+ }
587
+ },
588
+ {
589
+ "name": "global_curve_volume",
590
+ "writable": true,
591
+ "pda": {
592
+ "seeds": [
593
+ {
594
+ "kind": "const",
595
+ "value": [
596
+ 103,
597
+ 108,
598
+ 111,
599
+ 98,
600
+ 97,
601
+ 108,
602
+ 95,
603
+ 99,
604
+ 117,
605
+ 114,
606
+ 118,
607
+ 101,
608
+ 95,
609
+ 118,
610
+ 111,
611
+ 108,
612
+ 117,
613
+ 109,
614
+ 101
615
+ ]
616
+ }
617
+ ]
618
+ }
619
+ },
620
+ {
621
+ "name": "global_amm_volume",
622
+ "writable": true,
623
+ "pda": {
624
+ "seeds": [
625
+ {
626
+ "kind": "const",
627
+ "value": [
628
+ 103,
629
+ 108,
630
+ 111,
631
+ 98,
632
+ 97,
633
+ 108,
634
+ 95,
635
+ 97,
636
+ 109,
637
+ 109,
638
+ 95,
639
+ 118,
640
+ 111,
641
+ 108,
642
+ 117,
643
+ 109,
644
+ 101
645
+ ]
646
+ }
647
+ ]
648
+ }
649
+ },
650
+ {
651
+ "name": "system_program",
652
+ "address": "11111111111111111111111111111111"
653
+ }
654
+ ],
655
+ "args": [
656
+ {
657
+ "name": "args",
658
+ "type": {
659
+ "defined": {
660
+ "name": "InitializeConfigArgs"
661
+ }
662
+ }
663
+ }
664
+ ]
665
+ },
666
+ {
667
+ "name": "initialize_token_volume",
668
+ "docs": [
669
+ "Initialize a token's volume accumulator with default values"
670
+ ],
671
+ "discriminator": [
672
+ 98,
673
+ 160,
674
+ 140,
675
+ 145,
676
+ 106,
677
+ 65,
678
+ 10,
679
+ 106
680
+ ],
681
+ "accounts": [
682
+ {
683
+ "name": "payer",
684
+ "docs": [
685
+ "The payer for account creation"
686
+ ],
687
+ "writable": true,
688
+ "signer": true
689
+ },
690
+ {
691
+ "name": "mint",
692
+ "docs": [
693
+ "The mint for which to create the volume accumulator"
694
+ ]
695
+ },
696
+ {
697
+ "name": "token_volume",
698
+ "docs": [
699
+ "Token volume accumulator to be created"
700
+ ],
701
+ "writable": true,
702
+ "pda": {
703
+ "seeds": [
704
+ {
705
+ "kind": "const",
706
+ "value": [
707
+ 116,
708
+ 111,
709
+ 107,
710
+ 101,
711
+ 110,
712
+ 95,
713
+ 118,
714
+ 111,
715
+ 108,
716
+ 117,
717
+ 109,
718
+ 101
719
+ ]
720
+ },
721
+ {
722
+ "kind": "account",
723
+ "path": "mint"
724
+ }
725
+ ]
726
+ }
727
+ },
728
+ {
729
+ "name": "system_program",
730
+ "docs": [
731
+ "System program"
732
+ ],
733
+ "address": "11111111111111111111111111111111"
734
+ }
735
+ ],
736
+ "args": []
737
+ },
738
+ {
739
+ "name": "initialize_user",
740
+ "docs": [
741
+ "Initialize a user's properties account with default values"
742
+ ],
743
+ "discriminator": [
744
+ 111,
745
+ 17,
746
+ 185,
747
+ 250,
748
+ 60,
749
+ 122,
750
+ 38,
751
+ 254
752
+ ],
753
+ "accounts": [
754
+ {
755
+ "name": "user",
756
+ "docs": [
757
+ "The user being initialized"
758
+ ],
759
+ "writable": true,
760
+ "signer": true
761
+ },
762
+ {
763
+ "name": "user_properties",
764
+ "docs": [
765
+ "User properties account to be created"
766
+ ],
767
+ "writable": true,
768
+ "pda": {
769
+ "seeds": [
770
+ {
771
+ "kind": "const",
772
+ "value": [
773
+ 117,
774
+ 115,
775
+ 101,
776
+ 114,
777
+ 95,
778
+ 112,
779
+ 114,
780
+ 111,
781
+ 112,
782
+ 101,
783
+ 114,
784
+ 116,
785
+ 105,
786
+ 101,
787
+ 115
788
+ ]
789
+ },
790
+ {
791
+ "kind": "account",
792
+ "path": "user"
793
+ }
794
+ ]
795
+ }
796
+ },
797
+ {
798
+ "name": "system_program",
799
+ "docs": [
800
+ "System program"
801
+ ],
802
+ "address": "11111111111111111111111111111111"
803
+ }
804
+ ],
805
+ "args": []
806
+ },
807
+ {
808
+ "name": "redeem_deal",
809
+ "docs": [
810
+ "User redeems their referrer's deal, copying the multiplier"
811
+ ],
812
+ "discriminator": [
813
+ 28,
814
+ 120,
815
+ 114,
816
+ 30,
817
+ 76,
818
+ 241,
819
+ 161,
820
+ 235
821
+ ],
822
+ "accounts": [
823
+ {
824
+ "name": "user",
825
+ "docs": [
826
+ "The user redeeming the deal"
827
+ ],
828
+ "signer": true
829
+ },
830
+ {
831
+ "name": "user_properties",
832
+ "docs": [
833
+ "User properties account"
834
+ ],
835
+ "writable": true,
836
+ "pda": {
837
+ "seeds": [
838
+ {
839
+ "kind": "const",
840
+ "value": [
841
+ 117,
842
+ 115,
843
+ 101,
844
+ 114,
845
+ 95,
846
+ 112,
847
+ 114,
848
+ 111,
849
+ 112,
850
+ 101,
851
+ 114,
852
+ 116,
853
+ 105,
854
+ 101,
855
+ 115
856
+ ]
857
+ },
858
+ {
859
+ "kind": "account",
860
+ "path": "user"
861
+ }
862
+ ]
863
+ }
864
+ },
865
+ {
866
+ "name": "deal",
867
+ "docs": [
868
+ "The deal to redeem (must belong to user's referrer)"
869
+ ],
870
+ "writable": true,
871
+ "pda": {
872
+ "seeds": [
873
+ {
874
+ "kind": "const",
875
+ "value": [
876
+ 100,
877
+ 101,
878
+ 97,
879
+ 108
880
+ ]
881
+ },
882
+ {
883
+ "kind": "account",
884
+ "path": "deal.owner",
885
+ "account": "Deal"
886
+ }
887
+ ]
888
+ }
889
+ }
890
+ ],
891
+ "args": []
892
+ },
893
+ {
894
+ "name": "set_cashback_mode",
895
+ "docs": [
896
+ "User-callable instruction to activate cashback spending mode",
897
+ "Applies volume-based multiplier to credits"
898
+ ],
899
+ "discriminator": [
900
+ 172,
901
+ 30,
902
+ 26,
903
+ 209,
904
+ 48,
905
+ 185,
906
+ 117,
907
+ 148
908
+ ],
909
+ "accounts": [
910
+ {
911
+ "name": "user",
912
+ "signer": true
913
+ },
914
+ {
915
+ "name": "user_properties",
916
+ "writable": true,
917
+ "pda": {
918
+ "seeds": [
919
+ {
920
+ "kind": "const",
921
+ "value": [
922
+ 117,
923
+ 115,
924
+ 101,
925
+ 114,
926
+ 95,
927
+ 112,
928
+ 114,
929
+ 111,
930
+ 112,
931
+ 101,
932
+ 114,
933
+ 116,
934
+ 105,
935
+ 101,
936
+ 115
937
+ ]
938
+ },
939
+ {
940
+ "kind": "account",
941
+ "path": "user"
942
+ }
943
+ ]
944
+ }
945
+ },
946
+ {
947
+ "name": "cashback_config",
948
+ "pda": {
949
+ "seeds": [
950
+ {
951
+ "kind": "const",
952
+ "value": [
953
+ 99,
954
+ 97,
955
+ 115,
956
+ 104,
957
+ 98,
958
+ 97,
959
+ 99,
960
+ 107,
961
+ 95,
962
+ 99,
963
+ 111,
964
+ 110,
965
+ 102,
966
+ 105,
967
+ 103
968
+ ]
969
+ }
970
+ ]
971
+ }
972
+ }
973
+ ],
974
+ "args": []
975
+ },
976
+ {
977
+ "name": "set_referrer",
978
+ "docs": [
979
+ "User sets their referrer (one-time only)"
980
+ ],
981
+ "discriminator": [
982
+ 115,
983
+ 251,
984
+ 55,
985
+ 0,
986
+ 166,
987
+ 189,
988
+ 25,
989
+ 74
990
+ ],
991
+ "accounts": [
992
+ {
993
+ "name": "user",
994
+ "signer": true
995
+ },
996
+ {
997
+ "name": "user_properties",
998
+ "writable": true,
999
+ "pda": {
1000
+ "seeds": [
1001
+ {
1002
+ "kind": "const",
1003
+ "value": [
1004
+ 117,
1005
+ 115,
1006
+ 101,
1007
+ 114,
1008
+ 95,
1009
+ 112,
1010
+ 114,
1011
+ 111,
1012
+ 112,
1013
+ 101,
1014
+ 114,
1015
+ 116,
1016
+ 105,
1017
+ 101,
1018
+ 115
1019
+ ]
1020
+ },
1021
+ {
1022
+ "kind": "account",
1023
+ "path": "user"
1024
+ }
1025
+ ]
1026
+ }
1027
+ }
1028
+ ],
1029
+ "args": [
1030
+ {
1031
+ "name": "referrer",
1032
+ "type": "pubkey"
1033
+ }
1034
+ ]
1035
+ },
1036
+ {
1037
+ "name": "spend_cashback",
1038
+ "docs": [
1039
+ "Spend cashback credits to offset protocol fees (called via CPI)",
1040
+ "Returns the amount actually spent"
1041
+ ],
1042
+ "discriminator": [
1043
+ 59,
1044
+ 143,
1045
+ 28,
1046
+ 13,
1047
+ 254,
1048
+ 250,
1049
+ 233,
1050
+ 234
1051
+ ],
1052
+ "accounts": [
1053
+ {
1054
+ "name": "cpi_authority",
1055
+ "docs": [
1056
+ "CPI authority PDA from the calling program (must be liquid or liquid-swap).",
1057
+ "Only the owning program can produce a valid signature for its PDA."
1058
+ ],
1059
+ "signer": true
1060
+ },
1061
+ {
1062
+ "name": "user",
1063
+ "docs": [
1064
+ "The user whose cashback is being spent"
1065
+ ]
1066
+ },
1067
+ {
1068
+ "name": "user_properties",
1069
+ "writable": true,
1070
+ "pda": {
1071
+ "seeds": [
1072
+ {
1073
+ "kind": "const",
1074
+ "value": [
1075
+ 117,
1076
+ 115,
1077
+ 101,
1078
+ 114,
1079
+ 95,
1080
+ 112,
1081
+ 114,
1082
+ 111,
1083
+ 112,
1084
+ 101,
1085
+ 114,
1086
+ 116,
1087
+ 105,
1088
+ 101,
1089
+ 115
1090
+ ]
1091
+ },
1092
+ {
1093
+ "kind": "account",
1094
+ "path": "user"
1095
+ }
1096
+ ]
1097
+ }
1098
+ }
1099
+ ],
1100
+ "args": [
1101
+ {
1102
+ "name": "amount",
1103
+ "type": "u64"
1104
+ }
1105
+ ],
1106
+ "returns": {
1107
+ "defined": {
1108
+ "name": "SpendCashbackResult"
1109
+ }
1110
+ }
1111
+ },
1112
+ {
1113
+ "name": "take_snapshot",
1114
+ "docs": [
1115
+ "Admin takes a snapshot of a user's volume since last snapshot"
1116
+ ],
1117
+ "discriminator": [
1118
+ 183,
1119
+ 210,
1120
+ 251,
1121
+ 68,
1122
+ 140,
1123
+ 132,
1124
+ 191,
1125
+ 140
1126
+ ],
1127
+ "accounts": [
1128
+ {
1129
+ "name": "payer",
1130
+ "docs": [
1131
+ "Payer for snapshot account creation"
1132
+ ],
1133
+ "writable": true,
1134
+ "signer": true
1135
+ },
1136
+ {
1137
+ "name": "admin",
1138
+ "docs": [
1139
+ "Admin authority"
1140
+ ],
1141
+ "signer": true
1142
+ },
1143
+ {
1144
+ "name": "user_properties",
1145
+ "docs": [
1146
+ "User properties account"
1147
+ ],
1148
+ "writable": true,
1149
+ "pda": {
1150
+ "seeds": [
1151
+ {
1152
+ "kind": "const",
1153
+ "value": [
1154
+ 117,
1155
+ 115,
1156
+ 101,
1157
+ 114,
1158
+ 95,
1159
+ 112,
1160
+ 114,
1161
+ 111,
1162
+ 112,
1163
+ 101,
1164
+ 114,
1165
+ 116,
1166
+ 105,
1167
+ 101,
1168
+ 115
1169
+ ]
1170
+ },
1171
+ {
1172
+ "kind": "account",
1173
+ "path": "user"
1174
+ }
1175
+ ]
1176
+ }
1177
+ },
1178
+ {
1179
+ "name": "user_snapshot",
1180
+ "docs": [
1181
+ "Snapshot account to create"
1182
+ ],
1183
+ "writable": true,
1184
+ "pda": {
1185
+ "seeds": [
1186
+ {
1187
+ "kind": "const",
1188
+ "value": [
1189
+ 117,
1190
+ 115,
1191
+ 101,
1192
+ 114,
1193
+ 95,
1194
+ 115,
1195
+ 110,
1196
+ 97,
1197
+ 112,
1198
+ 115,
1199
+ 104,
1200
+ 111,
1201
+ 116
1202
+ ]
1203
+ },
1204
+ {
1205
+ "kind": "account",
1206
+ "path": "user"
1207
+ },
1208
+ {
1209
+ "kind": "account",
1210
+ "path": "user_properties.snapshot_count",
1211
+ "account": "UserProperties"
1212
+ }
1213
+ ]
1214
+ }
1215
+ },
1216
+ {
1217
+ "name": "cashback_config",
1218
+ "docs": [
1219
+ "Cashback configuration for admin auth check"
1220
+ ],
1221
+ "pda": {
1222
+ "seeds": [
1223
+ {
1224
+ "kind": "const",
1225
+ "value": [
1226
+ 99,
1227
+ 97,
1228
+ 115,
1229
+ 104,
1230
+ 98,
1231
+ 97,
1232
+ 99,
1233
+ 107,
1234
+ 95,
1235
+ 99,
1236
+ 111,
1237
+ 110,
1238
+ 102,
1239
+ 105,
1240
+ 103
1241
+ ]
1242
+ }
1243
+ ]
1244
+ }
1245
+ },
1246
+ {
1247
+ "name": "user",
1248
+ "docs": [
1249
+ "The user whose snapshot is being taken"
1250
+ ]
1251
+ },
1252
+ {
1253
+ "name": "system_program",
1254
+ "address": "11111111111111111111111111111111"
1255
+ }
1256
+ ],
1257
+ "args": []
1258
+ },
1259
+ {
1260
+ "name": "transfer_admin",
1261
+ "docs": [
1262
+ "Propose transfer of admin authority to a new pubkey (two-step)"
1263
+ ],
1264
+ "discriminator": [
1265
+ 42,
1266
+ 242,
1267
+ 66,
1268
+ 106,
1269
+ 228,
1270
+ 10,
1271
+ 111,
1272
+ 156
1273
+ ],
1274
+ "accounts": [
1275
+ {
1276
+ "name": "admin",
1277
+ "docs": [
1278
+ "Current admin authority"
1279
+ ],
1280
+ "signer": true
1281
+ },
1282
+ {
1283
+ "name": "cashback_config",
1284
+ "docs": [
1285
+ "Cashback configuration holding the admin authority"
1286
+ ],
1287
+ "writable": true,
1288
+ "pda": {
1289
+ "seeds": [
1290
+ {
1291
+ "kind": "const",
1292
+ "value": [
1293
+ 99,
1294
+ 97,
1295
+ 115,
1296
+ 104,
1297
+ 98,
1298
+ 97,
1299
+ 99,
1300
+ 107,
1301
+ 95,
1302
+ 99,
1303
+ 111,
1304
+ 110,
1305
+ 102,
1306
+ 105,
1307
+ 103
1308
+ ]
1309
+ }
1310
+ ]
1311
+ }
1312
+ }
1313
+ ],
1314
+ "args": [
1315
+ {
1316
+ "name": "new_admin",
1317
+ "type": "pubkey"
1318
+ }
1319
+ ]
1320
+ },
1321
+ {
1322
+ "name": "update_amm_volumes",
1323
+ "docs": [
1324
+ "Update volume accumulators for AMM trades.",
1325
+ "Called via CPI from the liquid-swap program."
1326
+ ],
1327
+ "discriminator": [
1328
+ 155,
1329
+ 173,
1330
+ 47,
1331
+ 177,
1332
+ 151,
1333
+ 135,
1334
+ 240,
1335
+ 27
1336
+ ],
1337
+ "accounts": [
1338
+ {
1339
+ "name": "payer",
1340
+ "writable": true,
1341
+ "signer": true
1342
+ },
1343
+ {
1344
+ "name": "cpi_authority",
1345
+ "docs": [
1346
+ "CPI authority PDA from the liquid-swap program.",
1347
+ "Only the liquid-swap program can sign for this PDA."
1348
+ ],
1349
+ "signer": true,
1350
+ "pda": {
1351
+ "seeds": [
1352
+ {
1353
+ "kind": "const",
1354
+ "value": [
1355
+ 99,
1356
+ 112,
1357
+ 105,
1358
+ 95,
1359
+ 97,
1360
+ 117,
1361
+ 116,
1362
+ 104,
1363
+ 111,
1364
+ 114,
1365
+ 105,
1366
+ 116,
1367
+ 121
1368
+ ]
1369
+ }
1370
+ ],
1371
+ "program": {
1372
+ "kind": "const",
1373
+ "value": [
1374
+ 6,
1375
+ 165,
1376
+ 60,
1377
+ 202,
1378
+ 204,
1379
+ 17,
1380
+ 4,
1381
+ 104,
1382
+ 249,
1383
+ 125,
1384
+ 214,
1385
+ 143,
1386
+ 2,
1387
+ 99,
1388
+ 165,
1389
+ 89,
1390
+ 177,
1391
+ 218,
1392
+ 121,
1393
+ 12,
1394
+ 23,
1395
+ 196,
1396
+ 207,
1397
+ 105,
1398
+ 96,
1399
+ 207,
1400
+ 2,
1401
+ 136,
1402
+ 202,
1403
+ 45,
1404
+ 209,
1405
+ 225
1406
+ ]
1407
+ }
1408
+ }
1409
+ },
1410
+ {
1411
+ "name": "user_properties",
1412
+ "writable": true,
1413
+ "pda": {
1414
+ "seeds": [
1415
+ {
1416
+ "kind": "const",
1417
+ "value": [
1418
+ 117,
1419
+ 115,
1420
+ 101,
1421
+ 114,
1422
+ 95,
1423
+ 112,
1424
+ 114,
1425
+ 111,
1426
+ 112,
1427
+ 101,
1428
+ 114,
1429
+ 116,
1430
+ 105,
1431
+ 101,
1432
+ 115
1433
+ ]
1434
+ },
1435
+ {
1436
+ "kind": "account",
1437
+ "path": "user"
1438
+ }
1439
+ ]
1440
+ }
1441
+ },
1442
+ {
1443
+ "name": "global_amm_volume",
1444
+ "writable": true,
1445
+ "pda": {
1446
+ "seeds": [
1447
+ {
1448
+ "kind": "const",
1449
+ "value": [
1450
+ 103,
1451
+ 108,
1452
+ 111,
1453
+ 98,
1454
+ 97,
1455
+ 108,
1456
+ 95,
1457
+ 97,
1458
+ 109,
1459
+ 109,
1460
+ 95,
1461
+ 118,
1462
+ 111,
1463
+ 108,
1464
+ 117,
1465
+ 109,
1466
+ 101
1467
+ ]
1468
+ }
1469
+ ]
1470
+ }
1471
+ },
1472
+ {
1473
+ "name": "token_volume",
1474
+ "writable": true,
1475
+ "pda": {
1476
+ "seeds": [
1477
+ {
1478
+ "kind": "const",
1479
+ "value": [
1480
+ 116,
1481
+ 111,
1482
+ 107,
1483
+ 101,
1484
+ 110,
1485
+ 95,
1486
+ 118,
1487
+ 111,
1488
+ 108,
1489
+ 117,
1490
+ 109,
1491
+ 101
1492
+ ]
1493
+ },
1494
+ {
1495
+ "kind": "account",
1496
+ "path": "mint"
1497
+ }
1498
+ ]
1499
+ }
1500
+ },
1501
+ {
1502
+ "name": "user",
1503
+ "docs": [
1504
+ "The user whose volumes are being updated"
1505
+ ]
1506
+ },
1507
+ {
1508
+ "name": "mint",
1509
+ "docs": [
1510
+ "The token mint for token-specific volume tracking"
1511
+ ]
1512
+ },
1513
+ {
1514
+ "name": "system_program",
1515
+ "address": "11111111111111111111111111111111"
1516
+ }
1517
+ ],
1518
+ "args": [
1519
+ {
1520
+ "name": "sol_amount",
1521
+ "type": "u64"
1522
+ },
1523
+ {
1524
+ "name": "token_amount",
1525
+ "type": "u64"
1526
+ }
1527
+ ]
1528
+ },
1529
+ {
1530
+ "name": "update_config",
1531
+ "docs": [
1532
+ "Admin updates cashback configuration"
1533
+ ],
1534
+ "discriminator": [
1535
+ 29,
1536
+ 158,
1537
+ 252,
1538
+ 191,
1539
+ 10,
1540
+ 83,
1541
+ 219,
1542
+ 99
1543
+ ],
1544
+ "accounts": [
1545
+ {
1546
+ "name": "admin",
1547
+ "docs": [
1548
+ "Admin authority (must match stored admin_authority)"
1549
+ ],
1550
+ "signer": true
1551
+ },
1552
+ {
1553
+ "name": "cashback_config",
1554
+ "docs": [
1555
+ "Cashback configuration to update"
1556
+ ],
1557
+ "writable": true,
1558
+ "pda": {
1559
+ "seeds": [
1560
+ {
1561
+ "kind": "const",
1562
+ "value": [
1563
+ 99,
1564
+ 97,
1565
+ 115,
1566
+ 104,
1567
+ 98,
1568
+ 97,
1569
+ 99,
1570
+ 107,
1571
+ 95,
1572
+ 99,
1573
+ 111,
1574
+ 110,
1575
+ 102,
1576
+ 105,
1577
+ 103
1578
+ ]
1579
+ }
1580
+ ]
1581
+ }
1582
+ }
1583
+ ],
1584
+ "args": [
1585
+ {
1586
+ "name": "args",
1587
+ "type": {
1588
+ "defined": {
1589
+ "name": "UpdateConfigArgs"
1590
+ }
1591
+ }
1592
+ }
1593
+ ]
1594
+ },
1595
+ {
1596
+ "name": "update_curve_volumes",
1597
+ "docs": [
1598
+ "Update volume accumulators for bonding curve trades.",
1599
+ "Called via CPI from the liquid program."
1600
+ ],
1601
+ "discriminator": [
1602
+ 119,
1603
+ 220,
1604
+ 25,
1605
+ 188,
1606
+ 176,
1607
+ 213,
1608
+ 36,
1609
+ 73
1610
+ ],
1611
+ "accounts": [
1612
+ {
1613
+ "name": "payer",
1614
+ "writable": true,
1615
+ "signer": true
1616
+ },
1617
+ {
1618
+ "name": "cpi_authority",
1619
+ "docs": [
1620
+ "CPI authority PDA from the liquid program.",
1621
+ "Only the liquid program can sign for this PDA."
1622
+ ],
1623
+ "signer": true,
1624
+ "pda": {
1625
+ "seeds": [
1626
+ {
1627
+ "kind": "const",
1628
+ "value": [
1629
+ 99,
1630
+ 112,
1631
+ 105,
1632
+ 95,
1633
+ 97,
1634
+ 117,
1635
+ 116,
1636
+ 104,
1637
+ 111,
1638
+ 114,
1639
+ 105,
1640
+ 116,
1641
+ 121
1642
+ ]
1643
+ }
1644
+ ],
1645
+ "program": {
1646
+ "kind": "const",
1647
+ "value": [
1648
+ 5,
1649
+ 13,
1650
+ 89,
1651
+ 2,
1652
+ 127,
1653
+ 227,
1654
+ 146,
1655
+ 196,
1656
+ 34,
1657
+ 13,
1658
+ 249,
1659
+ 181,
1660
+ 167,
1661
+ 33,
1662
+ 126,
1663
+ 56,
1664
+ 182,
1665
+ 105,
1666
+ 148,
1667
+ 219,
1668
+ 33,
1669
+ 200,
1670
+ 131,
1671
+ 117,
1672
+ 84,
1673
+ 120,
1674
+ 212,
1675
+ 68,
1676
+ 166,
1677
+ 219,
1678
+ 24,
1679
+ 119
1680
+ ]
1681
+ }
1682
+ }
1683
+ },
1684
+ {
1685
+ "name": "user_properties",
1686
+ "writable": true,
1687
+ "pda": {
1688
+ "seeds": [
1689
+ {
1690
+ "kind": "const",
1691
+ "value": [
1692
+ 117,
1693
+ 115,
1694
+ 101,
1695
+ 114,
1696
+ 95,
1697
+ 112,
1698
+ 114,
1699
+ 111,
1700
+ 112,
1701
+ 101,
1702
+ 114,
1703
+ 116,
1704
+ 105,
1705
+ 101,
1706
+ 115
1707
+ ]
1708
+ },
1709
+ {
1710
+ "kind": "account",
1711
+ "path": "user"
1712
+ }
1713
+ ]
1714
+ }
1715
+ },
1716
+ {
1717
+ "name": "global_curve_volume",
1718
+ "writable": true,
1719
+ "pda": {
1720
+ "seeds": [
1721
+ {
1722
+ "kind": "const",
1723
+ "value": [
1724
+ 103,
1725
+ 108,
1726
+ 111,
1727
+ 98,
1728
+ 97,
1729
+ 108,
1730
+ 95,
1731
+ 99,
1732
+ 117,
1733
+ 114,
1734
+ 118,
1735
+ 101,
1736
+ 95,
1737
+ 118,
1738
+ 111,
1739
+ 108,
1740
+ 117,
1741
+ 109,
1742
+ 101
1743
+ ]
1744
+ }
1745
+ ]
1746
+ }
1747
+ },
1748
+ {
1749
+ "name": "token_volume",
1750
+ "writable": true,
1751
+ "pda": {
1752
+ "seeds": [
1753
+ {
1754
+ "kind": "const",
1755
+ "value": [
1756
+ 116,
1757
+ 111,
1758
+ 107,
1759
+ 101,
1760
+ 110,
1761
+ 95,
1762
+ 118,
1763
+ 111,
1764
+ 108,
1765
+ 117,
1766
+ 109,
1767
+ 101
1768
+ ]
1769
+ },
1770
+ {
1771
+ "kind": "account",
1772
+ "path": "mint"
1773
+ }
1774
+ ]
1775
+ }
1776
+ },
1777
+ {
1778
+ "name": "user",
1779
+ "docs": [
1780
+ "The user whose volumes are being updated"
1781
+ ]
1782
+ },
1783
+ {
1784
+ "name": "mint",
1785
+ "docs": [
1786
+ "The token mint for token-specific volume tracking"
1787
+ ]
1788
+ },
1789
+ {
1790
+ "name": "system_program",
1791
+ "address": "11111111111111111111111111111111"
1792
+ }
1793
+ ],
1794
+ "args": [
1795
+ {
1796
+ "name": "sol_amount",
1797
+ "type": "u64"
1798
+ },
1799
+ {
1800
+ "name": "token_amount",
1801
+ "type": "u64"
1802
+ }
1803
+ ]
1804
+ },
1805
+ {
1806
+ "name": "update_deal",
1807
+ "docs": [
1808
+ "Admin updates a deal's cashback multiplier"
1809
+ ],
1810
+ "discriminator": [
1811
+ 244,
1812
+ 195,
1813
+ 62,
1814
+ 95,
1815
+ 133,
1816
+ 119,
1817
+ 244,
1818
+ 59
1819
+ ],
1820
+ "accounts": [
1821
+ {
1822
+ "name": "admin",
1823
+ "docs": [
1824
+ "Admin authority"
1825
+ ],
1826
+ "signer": true
1827
+ },
1828
+ {
1829
+ "name": "deal",
1830
+ "docs": [
1831
+ "Deal account to update"
1832
+ ],
1833
+ "writable": true,
1834
+ "pda": {
1835
+ "seeds": [
1836
+ {
1837
+ "kind": "const",
1838
+ "value": [
1839
+ 100,
1840
+ 101,
1841
+ 97,
1842
+ 108
1843
+ ]
1844
+ },
1845
+ {
1846
+ "kind": "account",
1847
+ "path": "deal.owner",
1848
+ "account": "Deal"
1849
+ }
1850
+ ]
1851
+ }
1852
+ },
1853
+ {
1854
+ "name": "cashback_config",
1855
+ "docs": [
1856
+ "Cashback configuration for admin auth check"
1857
+ ],
1858
+ "pda": {
1859
+ "seeds": [
1860
+ {
1861
+ "kind": "const",
1862
+ "value": [
1863
+ 99,
1864
+ 97,
1865
+ 115,
1866
+ 104,
1867
+ 98,
1868
+ 97,
1869
+ 99,
1870
+ 107,
1871
+ 95,
1872
+ 99,
1873
+ 111,
1874
+ 110,
1875
+ 102,
1876
+ 105,
1877
+ 103
1878
+ ]
1879
+ }
1880
+ ]
1881
+ }
1882
+ }
1883
+ ],
1884
+ "args": [
1885
+ {
1886
+ "name": "new_cashback_multiplier_bps",
1887
+ "type": "u16"
1888
+ }
1889
+ ]
1890
+ }
1891
+ ],
1892
+ "accounts": [
1893
+ {
1894
+ "name": "CashbackConfiguration",
1895
+ "discriminator": [
1896
+ 85,
1897
+ 221,
1898
+ 143,
1899
+ 214,
1900
+ 41,
1901
+ 44,
1902
+ 50,
1903
+ 22
1904
+ ]
1905
+ },
1906
+ {
1907
+ "name": "Deal",
1908
+ "discriminator": [
1909
+ 125,
1910
+ 223,
1911
+ 160,
1912
+ 234,
1913
+ 71,
1914
+ 162,
1915
+ 182,
1916
+ 219
1917
+ ]
1918
+ },
1919
+ {
1920
+ "name": "GlobalAmmVolumeAccumulator",
1921
+ "discriminator": [
1922
+ 248,
1923
+ 251,
1924
+ 192,
1925
+ 145,
1926
+ 91,
1927
+ 181,
1928
+ 97,
1929
+ 143
1930
+ ]
1931
+ },
1932
+ {
1933
+ "name": "GlobalCurveVolumeAccumulator",
1934
+ "discriminator": [
1935
+ 50,
1936
+ 23,
1937
+ 212,
1938
+ 197,
1939
+ 184,
1940
+ 191,
1941
+ 247,
1942
+ 112
1943
+ ]
1944
+ },
1945
+ {
1946
+ "name": "TokenVolumeAccumulator",
1947
+ "discriminator": [
1948
+ 255,
1949
+ 176,
1950
+ 53,
1951
+ 212,
1952
+ 121,
1953
+ 72,
1954
+ 64,
1955
+ 57
1956
+ ]
1957
+ },
1958
+ {
1959
+ "name": "UserProperties",
1960
+ "discriminator": [
1961
+ 131,
1962
+ 46,
1963
+ 56,
1964
+ 35,
1965
+ 119,
1966
+ 24,
1967
+ 76,
1968
+ 66
1969
+ ]
1970
+ },
1971
+ {
1972
+ "name": "UserSnapshot",
1973
+ "discriminator": [
1974
+ 231,
1975
+ 197,
1976
+ 40,
1977
+ 190,
1978
+ 124,
1979
+ 25,
1980
+ 79,
1981
+ 69
1982
+ ]
1983
+ }
1984
+ ],
1985
+ "events": [
1986
+ {
1987
+ "name": "CashbackEarned",
1988
+ "discriminator": [
1989
+ 155,
1990
+ 249,
1991
+ 239,
1992
+ 242,
1993
+ 185,
1994
+ 127,
1995
+ 22,
1996
+ 119
1997
+ ]
1998
+ },
1999
+ {
2000
+ "name": "CashbackModeActivated",
2001
+ "discriminator": [
2002
+ 13,
2003
+ 108,
2004
+ 47,
2005
+ 10,
2006
+ 122,
2007
+ 178,
2008
+ 164,
2009
+ 85
2010
+ ]
2011
+ },
2012
+ {
2013
+ "name": "CashbackSpent",
2014
+ "discriminator": [
2015
+ 156,
2016
+ 24,
2017
+ 238,
2018
+ 167,
2019
+ 220,
2020
+ 210,
2021
+ 21,
2022
+ 20
2023
+ ]
2024
+ },
2025
+ {
2026
+ "name": "DealClosed",
2027
+ "discriminator": [
2028
+ 38,
2029
+ 112,
2030
+ 214,
2031
+ 184,
2032
+ 107,
2033
+ 76,
2034
+ 191,
2035
+ 175
2036
+ ]
2037
+ },
2038
+ {
2039
+ "name": "DealCreated",
2040
+ "discriminator": [
2041
+ 27,
2042
+ 18,
2043
+ 50,
2044
+ 52,
2045
+ 104,
2046
+ 175,
2047
+ 46,
2048
+ 101
2049
+ ]
2050
+ },
2051
+ {
2052
+ "name": "DealRedeemed",
2053
+ "discriminator": [
2054
+ 35,
2055
+ 142,
2056
+ 162,
2057
+ 52,
2058
+ 90,
2059
+ 78,
2060
+ 73,
2061
+ 244
2062
+ ]
2063
+ },
2064
+ {
2065
+ "name": "DealUpdated",
2066
+ "discriminator": [
2067
+ 70,
2068
+ 193,
2069
+ 60,
2070
+ 16,
2071
+ 193,
2072
+ 180,
2073
+ 47,
2074
+ 185
2075
+ ]
2076
+ },
2077
+ {
2078
+ "name": "ReferrerSet",
2079
+ "discriminator": [
2080
+ 65,
2081
+ 187,
2082
+ 29,
2083
+ 205,
2084
+ 116,
2085
+ 229,
2086
+ 69,
2087
+ 154
2088
+ ]
2089
+ },
2090
+ {
2091
+ "name": "SnapshotTaken",
2092
+ "discriminator": [
2093
+ 113,
2094
+ 204,
2095
+ 151,
2096
+ 224,
2097
+ 2,
2098
+ 128,
2099
+ 237,
2100
+ 207
2101
+ ]
2102
+ },
2103
+ {
2104
+ "name": "UserUpdatedByAdmin",
2105
+ "discriminator": [
2106
+ 126,
2107
+ 237,
2108
+ 223,
2109
+ 192,
2110
+ 136,
2111
+ 250,
2112
+ 205,
2113
+ 15
2114
+ ]
2115
+ }
2116
+ ],
2117
+ "errors": [
2118
+ {
2119
+ "code": 6000,
2120
+ "name": "ArithmeticOverflow",
2121
+ "msg": "Arithmetic operation resulted in overflow"
2122
+ },
2123
+ {
2124
+ "code": 6001,
2125
+ "name": "AlreadySpending",
2126
+ "msg": "User is already in spending mode"
2127
+ },
2128
+ {
2129
+ "code": 6002,
2130
+ "name": "NoCashbackCredits",
2131
+ "msg": "User has no cashback credits to activate"
2132
+ },
2133
+ {
2134
+ "code": 6003,
2135
+ "name": "InvalidCashbackConfiguration",
2136
+ "msg": "Invalid cashback configuration: ranges must be contiguous and sum to proper coverage"
2137
+ },
2138
+ {
2139
+ "code": 6004,
2140
+ "name": "TooManyCashbackRanges",
2141
+ "msg": "Too many cashback ranges (maximum 10)"
2142
+ },
2143
+ {
2144
+ "code": 6005,
2145
+ "name": "ReferrerCannotBeSelf",
2146
+ "msg": "Referrer cannot be the user themselves"
2147
+ },
2148
+ {
2149
+ "code": 6006,
2150
+ "name": "ReferrerAlreadySet",
2151
+ "msg": "Referrer has already been set"
2152
+ },
2153
+ {
2154
+ "code": 6007,
2155
+ "name": "UnauthorizedCaller",
2156
+ "msg": "Caller is not an authorized program (must be liquid or liquid-swap)"
2157
+ },
2158
+ {
2159
+ "code": 6008,
2160
+ "name": "ReferrerNotSet",
2161
+ "msg": "User does not have a referrer set"
2162
+ },
2163
+ {
2164
+ "code": 6009,
2165
+ "name": "DealReferrerMismatch",
2166
+ "msg": "Deal does not belong to the user's referrer"
2167
+ },
2168
+ {
2169
+ "code": 6010,
2170
+ "name": "InvalidMultiplier",
2171
+ "msg": "Invalid cashback multiplier value"
2172
+ },
2173
+ {
2174
+ "code": 6011,
2175
+ "name": "InvalidAdminAuthority",
2176
+ "msg": "The provided admin authority is invalid"
2177
+ },
2178
+ {
2179
+ "code": 6012,
2180
+ "name": "NoPendingAdminTransfer",
2181
+ "msg": "No pending admin transfer exists"
2182
+ },
2183
+ {
2184
+ "code": 6013,
2185
+ "name": "NotPendingAdmin",
2186
+ "msg": "Caller is not the pending admin"
2187
+ }
2188
+ ],
2189
+ "types": [
2190
+ {
2191
+ "name": "AdminUpdateUserArgs",
2192
+ "type": {
2193
+ "kind": "struct",
2194
+ "fields": [
2195
+ {
2196
+ "name": "new_referrer",
2197
+ "docs": [
2198
+ "New referrer pubkey (if changing). Clears deal + resets multiplier."
2199
+ ],
2200
+ "type": {
2201
+ "option": "pubkey"
2202
+ }
2203
+ },
2204
+ {
2205
+ "name": "new_cashback_multiplier_bps",
2206
+ "docs": [
2207
+ "New cashback multiplier in BPS (if overriding). Requires referrer to exist."
2208
+ ],
2209
+ "type": {
2210
+ "option": "u16"
2211
+ }
2212
+ }
2213
+ ]
2214
+ }
2215
+ },
2216
+ {
2217
+ "name": "CashbackConfiguration",
2218
+ "docs": [
2219
+ "Global cashback configuration",
2220
+ "",
2221
+ "PDA: [b\"cashback_config\"]"
2222
+ ],
2223
+ "type": {
2224
+ "kind": "struct",
2225
+ "fields": [
2226
+ {
2227
+ "name": "admin_authority",
2228
+ "docs": [
2229
+ "Admin authority who can update configuration"
2230
+ ],
2231
+ "type": "pubkey"
2232
+ },
2233
+ {
2234
+ "name": "ranges",
2235
+ "docs": [
2236
+ "Volume-based multiplier ranges (use len() for active count)"
2237
+ ],
2238
+ "type": {
2239
+ "vec": {
2240
+ "defined": {
2241
+ "name": "CashbackRange"
2242
+ }
2243
+ }
2244
+ }
2245
+ },
2246
+ {
2247
+ "name": "trader_cashback_basis_points",
2248
+ "docs": [
2249
+ "Base trader cashback rate in basis points"
2250
+ ],
2251
+ "type": "u16"
2252
+ },
2253
+ {
2254
+ "name": "pending_admin",
2255
+ "docs": [
2256
+ "Pending admin authority for two-step transfer. None if no transfer is in progress."
2257
+ ],
2258
+ "type": {
2259
+ "option": "pubkey"
2260
+ }
2261
+ }
2262
+ ]
2263
+ }
2264
+ },
2265
+ {
2266
+ "name": "CashbackEarned",
2267
+ "docs": [
2268
+ "Event emitted when a user earns cashback credits."
2269
+ ],
2270
+ "type": {
2271
+ "kind": "struct",
2272
+ "fields": [
2273
+ {
2274
+ "name": "user",
2275
+ "type": "pubkey"
2276
+ },
2277
+ {
2278
+ "name": "amount",
2279
+ "type": "u64"
2280
+ },
2281
+ {
2282
+ "name": "new_balance",
2283
+ "type": "u64"
2284
+ },
2285
+ {
2286
+ "name": "timestamp",
2287
+ "type": "i64"
2288
+ }
2289
+ ]
2290
+ }
2291
+ },
2292
+ {
2293
+ "name": "CashbackModeActivated",
2294
+ "docs": [
2295
+ "Event emitted when a user activates cashback spending mode."
2296
+ ],
2297
+ "type": {
2298
+ "kind": "struct",
2299
+ "fields": [
2300
+ {
2301
+ "name": "user",
2302
+ "type": "pubkey"
2303
+ },
2304
+ {
2305
+ "name": "multiplier_bps",
2306
+ "type": "u16"
2307
+ },
2308
+ {
2309
+ "name": "timestamp",
2310
+ "type": "i64"
2311
+ }
2312
+ ]
2313
+ }
2314
+ },
2315
+ {
2316
+ "name": "CashbackRange",
2317
+ "docs": [
2318
+ "Cashback range defining volume-based multiplier tiers"
2319
+ ],
2320
+ "type": {
2321
+ "kind": "struct",
2322
+ "fields": [
2323
+ {
2324
+ "name": "range_start_inclusive",
2325
+ "docs": [
2326
+ "Lower bound of volume range (inclusive)"
2327
+ ],
2328
+ "type": "u64"
2329
+ },
2330
+ {
2331
+ "name": "range_end_exclusive",
2332
+ "docs": [
2333
+ "Upper bound of volume range (exclusive)"
2334
+ ],
2335
+ "type": "u64"
2336
+ },
2337
+ {
2338
+ "name": "multiplier_basis_points",
2339
+ "docs": [
2340
+ "Multiplier in basis points (10000 = 1x, 20000 = 2x)"
2341
+ ],
2342
+ "type": "u16"
2343
+ }
2344
+ ]
2345
+ }
2346
+ },
2347
+ {
2348
+ "name": "CashbackSpent",
2349
+ "docs": [
2350
+ "Event emitted when a user spends cashback credits."
2351
+ ],
2352
+ "type": {
2353
+ "kind": "struct",
2354
+ "fields": [
2355
+ {
2356
+ "name": "user",
2357
+ "type": "pubkey"
2358
+ },
2359
+ {
2360
+ "name": "amount",
2361
+ "type": "u64"
2362
+ },
2363
+ {
2364
+ "name": "remaining_balance",
2365
+ "type": "u64"
2366
+ },
2367
+ {
2368
+ "name": "timestamp",
2369
+ "type": "i64"
2370
+ }
2371
+ ]
2372
+ }
2373
+ },
2374
+ {
2375
+ "name": "Deal",
2376
+ "docs": [
2377
+ "Exclusive deal created by admin for a specific pubkey (typically a referrer/influencer).",
2378
+ "Users who are referred by this pubkey can redeem the deal to get a higher cashback multiplier.",
2379
+ "",
2380
+ "PDA: [b\"deal\", owner.key()]"
2381
+ ],
2382
+ "type": {
2383
+ "kind": "struct",
2384
+ "fields": [
2385
+ {
2386
+ "name": "owner",
2387
+ "docs": [
2388
+ "The pubkey this deal belongs to (typically a referrer/influencer)"
2389
+ ],
2390
+ "type": "pubkey"
2391
+ },
2392
+ {
2393
+ "name": "cashback_multiplier_bps",
2394
+ "docs": [
2395
+ "Cashback multiplier in basis points (10000 = 1x, 15000 = 1.5x, etc.)"
2396
+ ],
2397
+ "type": "u16"
2398
+ },
2399
+ {
2400
+ "name": "redemption_count",
2401
+ "docs": [
2402
+ "Number of unique users who have redeemed this deal"
2403
+ ],
2404
+ "type": "u32"
2405
+ }
2406
+ ]
2407
+ }
2408
+ },
2409
+ {
2410
+ "name": "DealClosed",
2411
+ "type": {
2412
+ "kind": "struct",
2413
+ "fields": [
2414
+ {
2415
+ "name": "owner",
2416
+ "type": "pubkey"
2417
+ },
2418
+ {
2419
+ "name": "redemption_count",
2420
+ "type": "u32"
2421
+ },
2422
+ {
2423
+ "name": "timestamp",
2424
+ "type": "i64"
2425
+ }
2426
+ ]
2427
+ }
2428
+ },
2429
+ {
2430
+ "name": "DealCreated",
2431
+ "type": {
2432
+ "kind": "struct",
2433
+ "fields": [
2434
+ {
2435
+ "name": "owner",
2436
+ "type": "pubkey"
2437
+ },
2438
+ {
2439
+ "name": "cashback_multiplier_bps",
2440
+ "type": "u16"
2441
+ },
2442
+ {
2443
+ "name": "timestamp",
2444
+ "type": "i64"
2445
+ }
2446
+ ]
2447
+ }
2448
+ },
2449
+ {
2450
+ "name": "DealRedeemed",
2451
+ "type": {
2452
+ "kind": "struct",
2453
+ "fields": [
2454
+ {
2455
+ "name": "user",
2456
+ "type": "pubkey"
2457
+ },
2458
+ {
2459
+ "name": "deal_owner",
2460
+ "type": "pubkey"
2461
+ },
2462
+ {
2463
+ "name": "cashback_multiplier_bps",
2464
+ "type": "u16"
2465
+ },
2466
+ {
2467
+ "name": "timestamp",
2468
+ "type": "i64"
2469
+ }
2470
+ ]
2471
+ }
2472
+ },
2473
+ {
2474
+ "name": "DealUpdated",
2475
+ "type": {
2476
+ "kind": "struct",
2477
+ "fields": [
2478
+ {
2479
+ "name": "owner",
2480
+ "type": "pubkey"
2481
+ },
2482
+ {
2483
+ "name": "old_multiplier_bps",
2484
+ "type": "u16"
2485
+ },
2486
+ {
2487
+ "name": "new_multiplier_bps",
2488
+ "type": "u16"
2489
+ },
2490
+ {
2491
+ "name": "timestamp",
2492
+ "type": "i64"
2493
+ }
2494
+ ]
2495
+ }
2496
+ },
2497
+ {
2498
+ "name": "GlobalAmmVolumeAccumulator",
2499
+ "docs": [
2500
+ "Global volume accumulator for AMM trades",
2501
+ "",
2502
+ "PDA: [b\"global_amm_volume\"]"
2503
+ ],
2504
+ "type": {
2505
+ "kind": "struct",
2506
+ "fields": [
2507
+ {
2508
+ "name": "total_sol_volume",
2509
+ "docs": [
2510
+ "Total SOL volume across all AMM trades"
2511
+ ],
2512
+ "type": "u128"
2513
+ },
2514
+ {
2515
+ "name": "total_token_volume",
2516
+ "docs": [
2517
+ "Total token volume across all AMM trades"
2518
+ ],
2519
+ "type": "u128"
2520
+ }
2521
+ ]
2522
+ }
2523
+ },
2524
+ {
2525
+ "name": "GlobalCurveVolumeAccumulator",
2526
+ "docs": [
2527
+ "Global volume accumulator for bonding curve trades",
2528
+ "",
2529
+ "PDA: [b\"global_curve_volume\"]"
2530
+ ],
2531
+ "type": {
2532
+ "kind": "struct",
2533
+ "fields": [
2534
+ {
2535
+ "name": "total_sol_volume",
2536
+ "docs": [
2537
+ "Total SOL volume across all curve trades"
2538
+ ],
2539
+ "type": "u128"
2540
+ },
2541
+ {
2542
+ "name": "total_token_volume",
2543
+ "docs": [
2544
+ "Total token volume across all curve trades"
2545
+ ],
2546
+ "type": "u128"
2547
+ }
2548
+ ]
2549
+ }
2550
+ },
2551
+ {
2552
+ "name": "InitializeConfigArgs",
2553
+ "type": {
2554
+ "kind": "struct",
2555
+ "fields": [
2556
+ {
2557
+ "name": "admin_authority",
2558
+ "type": "pubkey"
2559
+ },
2560
+ {
2561
+ "name": "ranges",
2562
+ "type": {
2563
+ "vec": {
2564
+ "defined": {
2565
+ "name": "CashbackRange"
2566
+ }
2567
+ }
2568
+ }
2569
+ },
2570
+ {
2571
+ "name": "trader_cashback_basis_points",
2572
+ "type": "u16"
2573
+ }
2574
+ ]
2575
+ }
2576
+ },
2577
+ {
2578
+ "name": "ReferrerInfo",
2579
+ "docs": [
2580
+ "Referrer information attached to a user"
2581
+ ],
2582
+ "type": {
2583
+ "kind": "struct",
2584
+ "fields": [
2585
+ {
2586
+ "name": "referrer",
2587
+ "docs": [
2588
+ "The referrer's public key"
2589
+ ],
2590
+ "type": "pubkey"
2591
+ },
2592
+ {
2593
+ "name": "deal",
2594
+ "docs": [
2595
+ "Deal PDA the user redeemed (None if no deal redeemed)"
2596
+ ],
2597
+ "type": {
2598
+ "option": "pubkey"
2599
+ }
2600
+ },
2601
+ {
2602
+ "name": "cashback_multiplier_bps",
2603
+ "docs": [
2604
+ "Cashback multiplier in basis points (10000 = 1x, default)"
2605
+ ],
2606
+ "type": "u16"
2607
+ }
2608
+ ]
2609
+ }
2610
+ },
2611
+ {
2612
+ "name": "ReferrerSet",
2613
+ "docs": [
2614
+ "Event emitted when a user sets their referrer."
2615
+ ],
2616
+ "type": {
2617
+ "kind": "struct",
2618
+ "fields": [
2619
+ {
2620
+ "name": "user",
2621
+ "type": "pubkey"
2622
+ },
2623
+ {
2624
+ "name": "referrer",
2625
+ "type": "pubkey"
2626
+ },
2627
+ {
2628
+ "name": "timestamp",
2629
+ "type": "i64"
2630
+ }
2631
+ ]
2632
+ }
2633
+ },
2634
+ {
2635
+ "name": "SnapshotTaken",
2636
+ "type": {
2637
+ "kind": "struct",
2638
+ "fields": [
2639
+ {
2640
+ "name": "user",
2641
+ "type": "pubkey"
2642
+ },
2643
+ {
2644
+ "name": "index",
2645
+ "type": "u32"
2646
+ },
2647
+ {
2648
+ "name": "sol_volume",
2649
+ "type": "u128"
2650
+ },
2651
+ {
2652
+ "name": "token_volume",
2653
+ "type": "u128"
2654
+ },
2655
+ {
2656
+ "name": "timestamp",
2657
+ "type": "i64"
2658
+ }
2659
+ ]
2660
+ }
2661
+ },
2662
+ {
2663
+ "name": "SpendCashbackResult",
2664
+ "type": {
2665
+ "kind": "struct",
2666
+ "fields": [
2667
+ {
2668
+ "name": "spent",
2669
+ "type": "u64"
2670
+ }
2671
+ ]
2672
+ }
2673
+ },
2674
+ {
2675
+ "name": "TokenVolumeAccumulator",
2676
+ "docs": [
2677
+ "Token-specific volume accumulator (unified across curve and AMM)",
2678
+ "",
2679
+ "PDA: [b\"token_volume\", mint.key()]"
2680
+ ],
2681
+ "type": {
2682
+ "kind": "struct",
2683
+ "fields": [
2684
+ {
2685
+ "name": "mint",
2686
+ "docs": [
2687
+ "Token mint this accumulator tracks"
2688
+ ],
2689
+ "type": "pubkey"
2690
+ },
2691
+ {
2692
+ "name": "total_sol_volume",
2693
+ "docs": [
2694
+ "Total SOL volume for this token (curve + AMM)"
2695
+ ],
2696
+ "type": "u128"
2697
+ },
2698
+ {
2699
+ "name": "total_token_volume",
2700
+ "docs": [
2701
+ "Total token volume for this token (curve + AMM)"
2702
+ ],
2703
+ "type": "u128"
2704
+ },
2705
+ {
2706
+ "name": "curve_sol_volume",
2707
+ "docs": [
2708
+ "SOL volume from curve trades (for analytics)"
2709
+ ],
2710
+ "type": "u128"
2711
+ },
2712
+ {
2713
+ "name": "amm_sol_volume",
2714
+ "docs": [
2715
+ "SOL volume from AMM trades (for analytics)"
2716
+ ],
2717
+ "type": "u128"
2718
+ }
2719
+ ]
2720
+ }
2721
+ },
2722
+ {
2723
+ "name": "UpdateConfigArgs",
2724
+ "type": {
2725
+ "kind": "struct",
2726
+ "fields": [
2727
+ {
2728
+ "name": "new_ranges",
2729
+ "type": {
2730
+ "option": {
2731
+ "vec": {
2732
+ "defined": {
2733
+ "name": "CashbackRange"
2734
+ }
2735
+ }
2736
+ }
2737
+ }
2738
+ },
2739
+ {
2740
+ "name": "new_trader_cashback_basis_points",
2741
+ "type": {
2742
+ "option": "u16"
2743
+ }
2744
+ }
2745
+ ]
2746
+ }
2747
+ },
2748
+ {
2749
+ "name": "UserProperties",
2750
+ "docs": [
2751
+ "User properties account tracking referrals, volumes, cashback, and snapshots",
2752
+ "",
2753
+ "PDA: [b\"user_properties\", user.key()]"
2754
+ ],
2755
+ "type": {
2756
+ "kind": "struct",
2757
+ "fields": [
2758
+ {
2759
+ "name": "referrer",
2760
+ "docs": [
2761
+ "Referrer info (pubkey, deal, multiplier)"
2762
+ ],
2763
+ "type": {
2764
+ "option": {
2765
+ "defined": {
2766
+ "name": "ReferrerInfo"
2767
+ }
2768
+ }
2769
+ }
2770
+ },
2771
+ {
2772
+ "name": "total_sol_volume",
2773
+ "docs": [
2774
+ "Total SOL volume traded across both curve and AMM (used for cashback multiplier)"
2775
+ ],
2776
+ "type": "u128"
2777
+ },
2778
+ {
2779
+ "name": "total_token_volume",
2780
+ "docs": [
2781
+ "Total token volume traded across both curve and AMM"
2782
+ ],
2783
+ "type": "u128"
2784
+ },
2785
+ {
2786
+ "name": "cashback_credits",
2787
+ "docs": [
2788
+ "Cashback credits (abstract credits when earning, SOL lamports when spending)"
2789
+ ],
2790
+ "type": "u64"
2791
+ },
2792
+ {
2793
+ "name": "is_spending",
2794
+ "docs": [
2795
+ "Whether user is in spending mode (true) or earning mode (false)"
2796
+ ],
2797
+ "type": "bool"
2798
+ },
2799
+ {
2800
+ "name": "curve_sol_volume",
2801
+ "docs": [
2802
+ "SOL volume from curve trades only (for analytics)"
2803
+ ],
2804
+ "type": "u128"
2805
+ },
2806
+ {
2807
+ "name": "amm_sol_volume",
2808
+ "docs": [
2809
+ "SOL volume from AMM trades only (for analytics)"
2810
+ ],
2811
+ "type": "u128"
2812
+ },
2813
+ {
2814
+ "name": "snapshot_sol_volume",
2815
+ "docs": [
2816
+ "SOL volume accumulated since the last snapshot (resets on snapshot)"
2817
+ ],
2818
+ "type": "u128"
2819
+ },
2820
+ {
2821
+ "name": "snapshot_token_volume",
2822
+ "docs": [
2823
+ "Token volume accumulated since the last snapshot (resets on snapshot)"
2824
+ ],
2825
+ "type": "u128"
2826
+ },
2827
+ {
2828
+ "name": "snapshot_count",
2829
+ "docs": [
2830
+ "Number of snapshots taken for this user"
2831
+ ],
2832
+ "type": "u32"
2833
+ },
2834
+ {
2835
+ "name": "latest_snapshot",
2836
+ "docs": [
2837
+ "PDA of the latest snapshot (head of linked list, None if no snapshots)"
2838
+ ],
2839
+ "type": {
2840
+ "option": "pubkey"
2841
+ }
2842
+ }
2843
+ ]
2844
+ }
2845
+ },
2846
+ {
2847
+ "name": "UserSnapshot",
2848
+ "docs": [
2849
+ "Snapshot of a user's volume since the previous snapshot.",
2850
+ "Connected in a linked list via `prev_snapshot`.",
2851
+ "",
2852
+ "PDA: [b\"user_snapshot\", user.key(), index.to_le_bytes()]"
2853
+ ],
2854
+ "type": {
2855
+ "kind": "struct",
2856
+ "fields": [
2857
+ {
2858
+ "name": "user",
2859
+ "docs": [
2860
+ "The user this snapshot belongs to"
2861
+ ],
2862
+ "type": "pubkey"
2863
+ },
2864
+ {
2865
+ "name": "index",
2866
+ "docs": [
2867
+ "Sequential snapshot index (0-based)"
2868
+ ],
2869
+ "type": "u32"
2870
+ },
2871
+ {
2872
+ "name": "prev_snapshot",
2873
+ "docs": [
2874
+ "Previous snapshot PDA (None for the first snapshot)"
2875
+ ],
2876
+ "type": {
2877
+ "option": "pubkey"
2878
+ }
2879
+ },
2880
+ {
2881
+ "name": "sol_volume",
2882
+ "docs": [
2883
+ "SOL volume accumulated during this snapshot period"
2884
+ ],
2885
+ "type": "u128"
2886
+ },
2887
+ {
2888
+ "name": "token_volume",
2889
+ "docs": [
2890
+ "Token volume accumulated during this snapshot period"
2891
+ ],
2892
+ "type": "u128"
2893
+ },
2894
+ {
2895
+ "name": "created_at",
2896
+ "docs": [
2897
+ "Unix timestamp when the snapshot was taken"
2898
+ ],
2899
+ "type": "i64"
2900
+ }
2901
+ ]
2902
+ }
2903
+ },
2904
+ {
2905
+ "name": "UserUpdatedByAdmin",
2906
+ "type": {
2907
+ "kind": "struct",
2908
+ "fields": [
2909
+ {
2910
+ "name": "user",
2911
+ "type": "pubkey"
2912
+ },
2913
+ {
2914
+ "name": "admin",
2915
+ "type": "pubkey"
2916
+ },
2917
+ {
2918
+ "name": "snapshot_index",
2919
+ "type": "u32"
2920
+ },
2921
+ {
2922
+ "name": "timestamp",
2923
+ "type": "i64"
2924
+ }
2925
+ ]
2926
+ }
2927
+ }
2928
+ ]
2929
+ }