@0block.io/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.
@@ -0,0 +1,802 @@
1
+ // Vendored (trimmed) from nyx-solana-dex-router target/idl/zeroblock_solana_dex_router.json.
2
+ // Only the SwapResultEvent surface is kept — the SDK builds swaps via the tenant wrapper,
3
+ // and this IDL exists solely to decode fee/commission events for accounting.
4
+ export const ROUTER_EVENTS_IDL = {
5
+ "address": "zeroRxfemoQCz6JT7RyShjuuRCN7VZof1WSekfXhmEn",
6
+ "metadata": {
7
+ "name": "zeroblock_solana_dex_router",
8
+ "version": "0.1.0",
9
+ "spec": "0.1.0",
10
+ "description": "0block Solana DEX Router"
11
+ },
12
+ "instructions": [],
13
+ "accounts": [],
14
+ "events": [
15
+ {
16
+ "name": "SwapResultEvent",
17
+ "discriminator": [
18
+ 65,
19
+ 188,
20
+ 138,
21
+ 167,
22
+ 38,
23
+ 187,
24
+ 55,
25
+ 46
26
+ ]
27
+ }
28
+ ],
29
+ "errors": [],
30
+ "types": [
31
+ {
32
+ "name": "CommissionBreakdown",
33
+ "type": {
34
+ "kind": "struct",
35
+ "fields": [
36
+ {
37
+ "name": "fee_mint",
38
+ "type": "pubkey"
39
+ },
40
+ {
41
+ "name": "fee_source",
42
+ "type": {
43
+ "defined": {
44
+ "name": "FeeSource"
45
+ }
46
+ }
47
+ },
48
+ {
49
+ "name": "fee_base_amount",
50
+ "type": "u64"
51
+ },
52
+ {
53
+ "name": "total_fee_amount",
54
+ "type": "u64"
55
+ },
56
+ {
57
+ "name": "items",
58
+ "type": {
59
+ "vec": {
60
+ "defined": {
61
+ "name": "CommissionItem"
62
+ }
63
+ }
64
+ }
65
+ }
66
+ ]
67
+ }
68
+ },
69
+ {
70
+ "name": "CommissionItem",
71
+ "type": {
72
+ "kind": "struct",
73
+ "fields": [
74
+ {
75
+ "name": "kind",
76
+ "type": {
77
+ "defined": {
78
+ "name": "CommissionType"
79
+ }
80
+ }
81
+ },
82
+ {
83
+ "name": "bps",
84
+ "type": "u16"
85
+ },
86
+ {
87
+ "name": "amount",
88
+ "type": "u64"
89
+ },
90
+ {
91
+ "name": "tenant_program",
92
+ "docs": [
93
+ "Tenant wrapper program id for TENANT commissions; default pubkey for PLATFORM."
94
+ ],
95
+ "type": "pubkey"
96
+ }
97
+ ]
98
+ }
99
+ },
100
+ {
101
+ "name": "CommissionType",
102
+ "type": {
103
+ "kind": "enum",
104
+ "variants": [
105
+ {
106
+ "name": "Platform"
107
+ },
108
+ {
109
+ "name": "Tenant"
110
+ }
111
+ ]
112
+ }
113
+ },
114
+ {
115
+ "name": "Dex",
116
+ "docs": [
117
+ "Which DEX / adapter to call for each hop."
118
+ ],
119
+ "type": {
120
+ "kind": "enum",
121
+ "variants": [
122
+ {
123
+ "name": "SplTokenSwap"
124
+ },
125
+ {
126
+ "name": "StableSwap"
127
+ },
128
+ {
129
+ "name": "Whirlpool"
130
+ },
131
+ {
132
+ "name": "MeteoraDynamicpool"
133
+ },
134
+ {
135
+ "name": "RaydiumSwap"
136
+ },
137
+ {
138
+ "name": "RaydiumStableSwap"
139
+ },
140
+ {
141
+ "name": "RaydiumClmmSwap"
142
+ },
143
+ {
144
+ "name": "AldrinExchangeV1"
145
+ },
146
+ {
147
+ "name": "AldrinExchangeV2"
148
+ },
149
+ {
150
+ "name": "LifinityV1"
151
+ },
152
+ {
153
+ "name": "LifinityV2"
154
+ },
155
+ {
156
+ "name": "RaydiumClmmSwapV2"
157
+ },
158
+ {
159
+ "name": "FluxBeam"
160
+ },
161
+ {
162
+ "name": "MeteoraDlmm"
163
+ },
164
+ {
165
+ "name": "RaydiumCpmmSwap"
166
+ },
167
+ {
168
+ "name": "OpenBookV2"
169
+ },
170
+ {
171
+ "name": "WhirlpoolV2"
172
+ },
173
+ {
174
+ "name": "Phoenix"
175
+ },
176
+ {
177
+ "name": "ObricV2"
178
+ },
179
+ {
180
+ "name": "SanctumAddLiq"
181
+ },
182
+ {
183
+ "name": "SanctumRemoveLiq"
184
+ },
185
+ {
186
+ "name": "SanctumNonWsolSwap"
187
+ },
188
+ {
189
+ "name": "SanctumWsolSwap"
190
+ },
191
+ {
192
+ "name": "PumpfunBuy"
193
+ },
194
+ {
195
+ "name": "PumpfunSell"
196
+ },
197
+ {
198
+ "name": "StabbleSwap"
199
+ },
200
+ {
201
+ "name": "SanctumRouter"
202
+ },
203
+ {
204
+ "name": "MeteoraVaultDeposit"
205
+ },
206
+ {
207
+ "name": "MeteoraVaultWithdraw"
208
+ },
209
+ {
210
+ "name": "Saros"
211
+ },
212
+ {
213
+ "name": "MeteoraLst"
214
+ },
215
+ {
216
+ "name": "Solfi"
217
+ },
218
+ {
219
+ "name": "QualiaSwap"
220
+ },
221
+ {
222
+ "name": "Zerofi"
223
+ },
224
+ {
225
+ "name": "PumpfunammBuy"
226
+ },
227
+ {
228
+ "name": "PumpfunammSell"
229
+ },
230
+ {
231
+ "name": "Virtuals"
232
+ },
233
+ {
234
+ "name": "VertigoBuy"
235
+ },
236
+ {
237
+ "name": "VertigoSell"
238
+ },
239
+ {
240
+ "name": "PerpetualsAddLiq"
241
+ },
242
+ {
243
+ "name": "PerpetualsRemoveLiq"
244
+ },
245
+ {
246
+ "name": "PerpetualsSwap"
247
+ },
248
+ {
249
+ "name": "RaydiumLaunchpad"
250
+ },
251
+ {
252
+ "name": "LetsBonkFun"
253
+ },
254
+ {
255
+ "name": "Woofi"
256
+ },
257
+ {
258
+ "name": "MeteoraDbc"
259
+ },
260
+ {
261
+ "name": "MeteoraDlmmSwap2"
262
+ },
263
+ {
264
+ "name": "MeteoraDAMMV2"
265
+ },
266
+ {
267
+ "name": "Gavel"
268
+ },
269
+ {
270
+ "name": "BoopfunBuy"
271
+ },
272
+ {
273
+ "name": "BoopfunSell"
274
+ },
275
+ {
276
+ "name": "MeteoraDbc2"
277
+ },
278
+ {
279
+ "name": "GooseFX"
280
+ },
281
+ {
282
+ "name": "Dooar"
283
+ },
284
+ {
285
+ "name": "Numeraire"
286
+ },
287
+ {
288
+ "name": "SaberDecimalWrapperDeposit"
289
+ },
290
+ {
291
+ "name": "SaberDecimalWrapperWithdraw"
292
+ },
293
+ {
294
+ "name": "SarosDlmm"
295
+ },
296
+ {
297
+ "name": "OneDexSwap"
298
+ },
299
+ {
300
+ "name": "Manifest"
301
+ },
302
+ {
303
+ "name": "ByrealClmm"
304
+ },
305
+ {
306
+ "name": "PancakeSwapV3Swap"
307
+ },
308
+ {
309
+ "name": "PancakeSwapV3SwapV2"
310
+ },
311
+ {
312
+ "name": "Tessera"
313
+ },
314
+ {
315
+ "name": "SolRfq"
316
+ }
317
+ ]
318
+ }
319
+ },
320
+ {
321
+ "name": "FeeSource",
322
+ "type": {
323
+ "kind": "enum",
324
+ "variants": [
325
+ {
326
+ "name": "Input"
327
+ },
328
+ {
329
+ "name": "Output"
330
+ }
331
+ ]
332
+ }
333
+ },
334
+ {
335
+ "name": "GlobalConfig",
336
+ "docs": [
337
+ "----------------------------------------------------------------------------",
338
+ "GlobalConfig (zero_copy, fixed-size, upgrade-safe)",
339
+ "----------------------------------------------------------------------------"
340
+ ],
341
+ "serialization": "bytemuckunsafe",
342
+ "repr": {
343
+ "kind": "c"
344
+ },
345
+ "type": {
346
+ "kind": "struct",
347
+ "fields": [
348
+ {
349
+ "name": "bump",
350
+ "docs": [
351
+ "PDA bump"
352
+ ],
353
+ "type": "u8"
354
+ },
355
+ {
356
+ "name": "admin",
357
+ "docs": [
358
+ "Program admin (controls global/tenant settings)"
359
+ ],
360
+ "type": "pubkey"
361
+ },
362
+ {
363
+ "name": "zeroblock_fee_bps",
364
+ "docs": [
365
+ "0BLOCK platform fee default (bps out of 10_000)"
366
+ ],
367
+ "type": "u16"
368
+ },
369
+ {
370
+ "name": "zeroblock_fee_vault",
371
+ "docs": [
372
+ "Fee authority that owns 0BLOCK fee token accounts"
373
+ ],
374
+ "type": "pubkey"
375
+ },
376
+ {
377
+ "name": "padding",
378
+ "docs": [
379
+ "Reserved to keep struct size stable for future upgrades"
380
+ ],
381
+ "type": {
382
+ "array": [
383
+ "u8",
384
+ 160
385
+ ]
386
+ }
387
+ }
388
+ ]
389
+ }
390
+ },
391
+ {
392
+ "name": "InitGlobalConfigEvent",
393
+ "docs": [
394
+ "----------------------------------------------------------------------------",
395
+ "Global config events",
396
+ "----------------------------------------------------------------------------"
397
+ ],
398
+ "type": {
399
+ "kind": "struct",
400
+ "fields": [
401
+ {
402
+ "name": "admin",
403
+ "type": "pubkey"
404
+ },
405
+ {
406
+ "name": "zeroblock_fee_bps",
407
+ "type": "u16"
408
+ },
409
+ {
410
+ "name": "zeroblock_fee_vault",
411
+ "docs": [
412
+ "Fee owner that receives 0BLOCK's platform fees (token accounts owned by this key)"
413
+ ],
414
+ "type": "pubkey"
415
+ }
416
+ ]
417
+ }
418
+ },
419
+ {
420
+ "name": "Route",
421
+ "type": {
422
+ "kind": "struct",
423
+ "fields": [
424
+ {
425
+ "name": "dexes",
426
+ "type": {
427
+ "vec": {
428
+ "defined": {
429
+ "name": "Dex"
430
+ }
431
+ }
432
+ }
433
+ },
434
+ {
435
+ "name": "weights",
436
+ "type": "bytes"
437
+ }
438
+ ]
439
+ }
440
+ },
441
+ {
442
+ "name": "SetAdminEvent",
443
+ "type": {
444
+ "kind": "struct",
445
+ "fields": [
446
+ {
447
+ "name": "admin",
448
+ "type": "pubkey"
449
+ }
450
+ ]
451
+ }
452
+ },
453
+ {
454
+ "name": "SetZeroblockFeeBpsEvent",
455
+ "type": {
456
+ "kind": "struct",
457
+ "fields": [
458
+ {
459
+ "name": "zeroblock_fee_bps",
460
+ "type": "u16"
461
+ }
462
+ ]
463
+ }
464
+ },
465
+ {
466
+ "name": "SetZeroblockFeeVaultEvent",
467
+ "type": {
468
+ "kind": "struct",
469
+ "fields": [
470
+ {
471
+ "name": "zeroblock_fee_vault",
472
+ "type": "pubkey"
473
+ }
474
+ ]
475
+ }
476
+ },
477
+ {
478
+ "name": "Slippage",
479
+ "type": {
480
+ "kind": "enum",
481
+ "variants": [
482
+ {
483
+ "name": "Bps",
484
+ "fields": [
485
+ {
486
+ "name": "bps",
487
+ "type": "u16"
488
+ },
489
+ {
490
+ "name": "expect_amount_out",
491
+ "type": "u64"
492
+ }
493
+ ]
494
+ },
495
+ {
496
+ "name": "MinOut",
497
+ "fields": [
498
+ "u64"
499
+ ]
500
+ }
501
+ ]
502
+ }
503
+ },
504
+ {
505
+ "name": "SwapArgs",
506
+ "type": {
507
+ "kind": "struct",
508
+ "fields": [
509
+ {
510
+ "name": "amount_in",
511
+ "type": "u64"
512
+ },
513
+ {
514
+ "name": "min_return",
515
+ "type": "u64"
516
+ },
517
+ {
518
+ "name": "amounts",
519
+ "type": {
520
+ "vec": "u64"
521
+ }
522
+ },
523
+ {
524
+ "name": "routes",
525
+ "type": {
526
+ "vec": {
527
+ "vec": {
528
+ "defined": {
529
+ "name": "Route"
530
+ }
531
+ }
532
+ }
533
+ }
534
+ },
535
+ {
536
+ "name": "options",
537
+ "type": {
538
+ "option": {
539
+ "defined": {
540
+ "name": "SwapOptions"
541
+ }
542
+ }
543
+ }
544
+ }
545
+ ]
546
+ }
547
+ },
548
+ {
549
+ "name": "SwapExecution",
550
+ "type": {
551
+ "kind": "struct",
552
+ "fields": [
553
+ {
554
+ "name": "amount_in",
555
+ "type": "u64"
556
+ },
557
+ {
558
+ "name": "amount_out",
559
+ "type": "u64"
560
+ },
561
+ {
562
+ "name": "min_return",
563
+ "type": "u64"
564
+ },
565
+ {
566
+ "name": "expect_amount_out",
567
+ "type": "u64"
568
+ },
569
+ {
570
+ "name": "legs",
571
+ "type": {
572
+ "vec": {
573
+ "defined": {
574
+ "name": "SwapLeg"
575
+ }
576
+ }
577
+ }
578
+ }
579
+ ]
580
+ }
581
+ },
582
+ {
583
+ "name": "SwapFailure",
584
+ "type": {
585
+ "kind": "struct",
586
+ "fields": [
587
+ {
588
+ "name": "code",
589
+ "type": "u64"
590
+ },
591
+ {
592
+ "name": "message",
593
+ "type": "string"
594
+ }
595
+ ]
596
+ }
597
+ },
598
+ {
599
+ "name": "SwapLeg",
600
+ "type": {
601
+ "kind": "struct",
602
+ "fields": [
603
+ {
604
+ "name": "dex",
605
+ "type": {
606
+ "defined": {
607
+ "name": "Dex"
608
+ }
609
+ }
610
+ },
611
+ {
612
+ "name": "amount_in",
613
+ "type": "u64"
614
+ },
615
+ {
616
+ "name": "amount_out",
617
+ "type": "u64"
618
+ },
619
+ {
620
+ "name": "route_index",
621
+ "type": "u16"
622
+ },
623
+ {
624
+ "name": "hop_index",
625
+ "type": "u16"
626
+ },
627
+ {
628
+ "name": "fork_index",
629
+ "type": "u16"
630
+ }
631
+ ]
632
+ }
633
+ },
634
+ {
635
+ "name": "SwapOptions",
636
+ "type": {
637
+ "kind": "struct",
638
+ "fields": [
639
+ {
640
+ "name": "slippage",
641
+ "type": {
642
+ "option": {
643
+ "defined": {
644
+ "name": "Slippage"
645
+ }
646
+ }
647
+ }
648
+ }
649
+ ]
650
+ }
651
+ },
652
+ {
653
+ "name": "SwapResultData",
654
+ "docs": [
655
+ "----------------------------------------------------------------------------",
656
+ "Swap result event (single event per attempt)",
657
+ "----------------------------------------------------------------------------"
658
+ ],
659
+ "type": {
660
+ "kind": "enum",
661
+ "variants": [
662
+ {
663
+ "name": "Success",
664
+ "fields": [
665
+ {
666
+ "defined": {
667
+ "name": "SwapSuccess"
668
+ }
669
+ }
670
+ ]
671
+ },
672
+ {
673
+ "name": "Failure",
674
+ "fields": [
675
+ {
676
+ "defined": {
677
+ "name": "SwapFailure"
678
+ }
679
+ }
680
+ ]
681
+ }
682
+ ]
683
+ }
684
+ },
685
+ {
686
+ "name": "SwapResultEvent",
687
+ "type": {
688
+ "kind": "struct",
689
+ "fields": [
690
+ {
691
+ "name": "order_id",
692
+ "type": "u128"
693
+ },
694
+ {
695
+ "name": "data",
696
+ "type": {
697
+ "defined": {
698
+ "name": "SwapResultData"
699
+ }
700
+ }
701
+ }
702
+ ]
703
+ }
704
+ },
705
+ {
706
+ "name": "SwapSuccess",
707
+ "type": {
708
+ "kind": "struct",
709
+ "fields": [
710
+ {
711
+ "name": "swap",
712
+ "type": {
713
+ "defined": {
714
+ "name": "SwapExecution"
715
+ }
716
+ }
717
+ },
718
+ {
719
+ "name": "commissions",
720
+ "type": {
721
+ "defined": {
722
+ "name": "CommissionBreakdown"
723
+ }
724
+ }
725
+ }
726
+ ]
727
+ }
728
+ },
729
+ {
730
+ "name": "TenantConfig",
731
+ "docs": [
732
+ "----------------------------------------------------------------------------",
733
+ "TenantConfig (+ strict wrapper enforcement)",
734
+ "----------------------------------------------------------------------------"
735
+ ],
736
+ "type": {
737
+ "kind": "struct",
738
+ "fields": [
739
+ {
740
+ "name": "bump",
741
+ "type": "u8"
742
+ },
743
+ {
744
+ "name": "tenant_authority",
745
+ "docs": [
746
+ "Signer (EOA or PDA) authorized to act for this tenant"
747
+ ],
748
+ "type": "pubkey"
749
+ },
750
+ {
751
+ "name": "tenant_wrapper_program",
752
+ "docs": [
753
+ "Wrapper program id used to validate tenant-mode calls."
754
+ ],
755
+ "type": "pubkey"
756
+ },
757
+ {
758
+ "name": "zeroblock_fee_bps",
759
+ "docs": [
760
+ "0BLOCK fee (bps out of 10_000) for this tenant. Use 0 to fall back to global default."
761
+ ],
762
+ "type": "u16"
763
+ },
764
+ {
765
+ "name": "tenant_fee_vault",
766
+ "docs": [
767
+ "Fee authority that owns tenant fee token accounts"
768
+ ],
769
+ "type": "pubkey"
770
+ },
771
+ {
772
+ "name": "whitelisted",
773
+ "docs": [
774
+ "Whether this tenant is active/whitelisted"
775
+ ],
776
+ "type": "bool"
777
+ },
778
+ {
779
+ "name": "max_total_fee_bps",
780
+ "docs": [
781
+ "Optional per-tenant cap: (tenant_fee_bps + zeroblock_fee_bps) must be <= this if > 0.",
782
+ "tenant_fee_bps is supplied per swap."
783
+ ],
784
+ "type": "u16"
785
+ },
786
+ {
787
+ "name": "_reserved",
788
+ "docs": [
789
+ "Reserved for upgrades (fixed size)"
790
+ ],
791
+ "type": {
792
+ "array": [
793
+ "u8",
794
+ 64
795
+ ]
796
+ }
797
+ }
798
+ ]
799
+ }
800
+ }
801
+ ]
802
+ };