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