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