@pushchain/core 4.0.13 → 5.0.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 (31) hide show
  1. package/package.json +1 -1
  2. package/src/lib/constants/abi/universalGatewayV0.json +593 -1800
  3. package/src/lib/constants/chain.d.ts +1 -2
  4. package/src/lib/constants/chain.js +16 -46
  5. package/src/lib/constants/chain.js.map +1 -1
  6. package/src/lib/constants/tokens.d.ts +1 -7
  7. package/src/lib/constants/tokens.js +8 -50
  8. package/src/lib/constants/tokens.js.map +1 -1
  9. package/src/lib/orchestrator/orchestrator.d.ts +1 -12
  10. package/src/lib/orchestrator/orchestrator.js +92 -481
  11. package/src/lib/orchestrator/orchestrator.js.map +1 -1
  12. package/src/lib/orchestrator/orchestrator.types.d.ts +0 -42
  13. package/src/lib/orchestrator/payload-builders.d.ts +1 -2
  14. package/src/lib/orchestrator/payload-builders.js +14 -53
  15. package/src/lib/orchestrator/payload-builders.js.map +1 -1
  16. package/src/lib/progress-hook/progress-hook.js +4 -50
  17. package/src/lib/progress-hook/progress-hook.js.map +1 -1
  18. package/src/lib/progress-hook/progress-hook.types.d.ts +3 -9
  19. package/src/lib/progress-hook/progress-hook.types.js +0 -7
  20. package/src/lib/progress-hook/progress-hook.types.js.map +1 -1
  21. package/src/lib/push-chain/push-chain.d.ts +0 -4
  22. package/src/lib/push-chain/push-chain.js +0 -3
  23. package/src/lib/push-chain/push-chain.js.map +1 -1
  24. package/src/lib/push-client/push-client.d.ts +3 -10
  25. package/src/lib/push-client/push-client.js +61 -98
  26. package/src/lib/push-client/push-client.js.map +1 -1
  27. package/src/lib/universal/signer/signer.js +3 -17
  28. package/src/lib/universal/signer/signer.js.map +1 -1
  29. package/src/lib/utils.d.ts +0 -14
  30. package/src/lib/utils.js +0 -25
  31. package/src/lib/utils.js.map +1 -1
@@ -8,159 +8,42 @@
8
8
  },
9
9
  "instructions": [
10
10
  {
11
- "name": "execute_universal_tx",
11
+ "name": "add_funds",
12
12
  "docs": [
13
- "@notice TSS-verified execute arbitrary Solana instruction with SOL",
14
- "@param tx_id Transaction ID from Push chain event",
15
- "@param amount Amount of SOL to transfer to cea authority",
16
- "@param target_program Target Solana program to invoke",
17
- "@param sender EVM sender address (same as origin_caller in EVM)",
18
- "@param accounts Ordered list of accounts for target program",
19
- "@param ix_data Instruction data for target program"
20
- ],
21
- "discriminator": [
22
- 248,
23
- 132,
24
- 87,
25
- 87,
26
- 210,
27
- 51,
28
- 117,
29
- 76
13
+ "@notice Legacy-compatible add funds event for offchain relayers (pushsolanalocker)"
30
14
  ],
15
+ "discriminator": [132, 237, 76, 57, 80, 10, 179, 138],
31
16
  "accounts": [
32
- {
33
- "name": "caller",
34
- "writable": true,
35
- "signer": true
36
- },
37
17
  {
38
18
  "name": "config",
39
19
  "pda": {
40
20
  "seeds": [
41
21
  {
42
22
  "kind": "const",
43
- "value": [
44
- 99,
45
- 111,
46
- 110,
47
- 102,
48
- 105,
49
- 103
50
- ]
51
- }
52
- ]
53
- }
54
- },
55
- {
56
- "name": "vault_sol",
57
- "docs": [
58
- "Vault SOL PDA - holds all bridged SOL"
59
- ],
60
- "writable": true,
61
- "pda": {
62
- "seeds": [
63
- {
64
- "kind": "const",
65
- "value": [
66
- 118,
67
- 97,
68
- 117,
69
- 108,
70
- 116
71
- ]
23
+ "value": [99, 111, 110, 102, 105, 103]
72
24
  }
73
25
  ]
74
26
  }
75
27
  },
76
28
  {
77
- "name": "cea_authority",
78
- "docs": [
79
- "CEA (Chain Executor Account) - persistent identity per Push Chain user",
80
- "This PDA represents the user on Solana and can sign for target programs",
81
- "Auto-created by Solana on first transfer, persists across transactions"
82
- ],
83
- "writable": true,
84
- "pda": {
85
- "seeds": [
86
- {
87
- "kind": "const",
88
- "value": [
89
- 112,
90
- 117,
91
- 115,
92
- 104,
93
- 95,
94
- 105,
95
- 100,
96
- 101,
97
- 110,
98
- 116,
99
- 105,
100
- 116,
101
- 121
102
- ]
103
- },
104
- {
105
- "kind": "arg",
106
- "path": "sender"
107
- }
108
- ]
109
- }
110
- },
111
- {
112
- "name": "tss_pda",
29
+ "name": "vault",
113
30
  "writable": true,
114
31
  "pda": {
115
32
  "seeds": [
116
33
  {
117
34
  "kind": "const",
118
- "value": [
119
- 116,
120
- 115,
121
- 115,
122
- 112,
123
- 100,
124
- 97
125
- ]
35
+ "value": [118, 97, 117, 108, 116]
126
36
  }
127
37
  ]
128
38
  }
129
39
  },
130
40
  {
131
- "name": "executed_tx",
132
- "docs": [
133
- "Executed transaction tracker (replay protection)",
134
- "Relayer pays for this account creation and gets reimbursed via gas_fee"
135
- ],
41
+ "name": "user",
136
42
  "writable": true,
137
- "pda": {
138
- "seeds": [
139
- {
140
- "kind": "const",
141
- "value": [
142
- 101,
143
- 120,
144
- 101,
145
- 99,
146
- 117,
147
- 116,
148
- 101,
149
- 100,
150
- 95,
151
- 116,
152
- 120
153
- ]
154
- },
155
- {
156
- "kind": "arg",
157
- "path": "tx_id"
158
- }
159
- ]
160
- }
43
+ "signer": true
161
44
  },
162
45
  {
163
- "name": "destination_program"
46
+ "name": "price_update"
164
47
  },
165
48
  {
166
49
  "name": "system_program",
@@ -168,451 +51,208 @@
168
51
  }
169
52
  ],
170
53
  "args": [
171
- {
172
- "name": "tx_id",
173
- "type": {
174
- "array": [
175
- "u8",
176
- 32
177
- ]
178
- }
179
- },
180
54
  {
181
55
  "name": "amount",
182
56
  "type": "u64"
183
57
  },
184
58
  {
185
- "name": "target_program",
186
- "type": "pubkey"
187
- },
188
- {
189
- "name": "sender",
190
- "type": {
191
- "array": [
192
- "u8",
193
- 20
194
- ]
195
- }
196
- },
197
- {
198
- "name": "accounts",
199
- "type": {
200
- "vec": {
201
- "defined": {
202
- "name": "GatewayAccountMeta"
203
- }
204
- }
205
- }
206
- },
207
- {
208
- "name": "ix_data",
209
- "type": "bytes"
210
- },
211
- {
212
- "name": "gas_fee",
213
- "type": "u64"
214
- },
215
- {
216
- "name": "rent_fee",
217
- "type": "u64"
218
- },
219
- {
220
- "name": "signature",
221
- "type": {
222
- "array": [
223
- "u8",
224
- 64
225
- ]
226
- }
227
- },
228
- {
229
- "name": "recovery_id",
230
- "type": "u8"
231
- },
232
- {
233
- "name": "message_hash",
59
+ "name": "transaction_hash",
234
60
  "type": {
235
- "array": [
236
- "u8",
237
- 32
238
- ]
61
+ "array": ["u8", 32]
239
62
  }
240
- },
241
- {
242
- "name": "nonce",
243
- "type": "u64"
244
63
  }
245
64
  ]
246
65
  },
247
66
  {
248
- "name": "execute_universal_tx_token",
67
+ "name": "get_sol_price",
249
68
  "docs": [
250
- "@notice TSS-verified execute arbitrary Solana instruction with SPL tokens",
251
- "@param tx_id Transaction ID from Push chain event",
252
- "@param amount Amount of SPL tokens to transfer to cea ATA",
253
- "@param target_program Target Solana program to invoke",
254
- "@param sender EVM sender address (same as origin_caller in EVM)",
255
- "@param accounts Ordered list of accounts for target program",
256
- "@param ix_data Instruction data for target program"
69
+ "@notice View function for SOL price (locker-compatible)",
70
+ "@dev Anyone can fetch SOL price in USD"
257
71
  ],
258
- "discriminator": [
259
- 109,
260
- 179,
261
- 159,
262
- 72,
263
- 154,
264
- 247,
265
- 19,
266
- 188
72
+ "discriminator": [230, 145, 206, 175, 43, 184, 97, 110],
73
+ "accounts": [
74
+ {
75
+ "name": "price_update"
76
+ }
267
77
  ],
78
+ "args": [],
79
+ "returns": {
80
+ "defined": {
81
+ "name": "PriceData"
82
+ }
83
+ }
84
+ },
85
+ {
86
+ "name": "init_tss",
87
+ "discriminator": [47, 31, 100, 111, 115, 2, 22, 208],
268
88
  "accounts": [
269
89
  {
270
- "name": "caller",
90
+ "name": "tss_pda",
271
91
  "writable": true,
272
- "signer": true
273
- },
274
- {
275
- "name": "config",
276
92
  "pda": {
277
93
  "seeds": [
278
94
  {
279
95
  "kind": "const",
280
- "value": [
281
- 99,
282
- 111,
283
- 110,
284
- 102,
285
- 105,
286
- 103
287
- ]
96
+ "value": [116, 115, 115]
288
97
  }
289
98
  ]
290
99
  }
291
100
  },
292
101
  {
293
- "name": "vault_authority",
294
- "docs": [
295
- "Vault authority PDA - owner of all vault ATAs"
296
- ],
102
+ "name": "config",
297
103
  "pda": {
298
104
  "seeds": [
299
105
  {
300
106
  "kind": "const",
301
- "value": [
302
- 118,
303
- 97,
304
- 117,
305
- 108,
306
- 116
307
- ]
107
+ "value": [99, 111, 110, 102, 105, 103]
308
108
  }
309
109
  ]
310
110
  }
311
111
  },
312
112
  {
313
- "name": "vault_ata",
314
- "docs": [
315
- "Vault ATA for this mint"
316
- ],
317
- "writable": true
318
- },
319
- {
320
- "name": "cea_authority",
321
- "docs": [
322
- "CEA (Chain Executor Account) - persistent identity per Push Chain user",
323
- "This PDA represents the user on Solana and can sign for target programs"
324
- ],
113
+ "name": "authority",
325
114
  "writable": true,
326
- "pda": {
327
- "seeds": [
328
- {
329
- "kind": "const",
330
- "value": [
331
- 112,
332
- 117,
333
- 115,
334
- 104,
335
- 95,
336
- 105,
337
- 100,
338
- 101,
339
- 110,
340
- 116,
341
- 105,
342
- 116,
343
- 121
344
- ]
345
- },
346
- {
347
- "kind": "arg",
348
- "path": "sender"
349
- }
350
- ]
351
- }
352
- },
353
- {
354
- "name": "cea_ata",
355
- "docs": [
356
- "CEA ATA for this user+mint",
357
- "Created per-tx, closed after (rent reclaim)"
358
- ],
359
- "writable": true
115
+ "signer": true
360
116
  },
361
117
  {
362
- "name": "mint",
363
- "docs": [
364
- "Token mint"
365
- ]
366
- },
118
+ "name": "system_program",
119
+ "address": "11111111111111111111111111111111"
120
+ }
121
+ ],
122
+ "args": [
367
123
  {
368
- "name": "tss_pda",
369
- "writable": true,
370
- "pda": {
371
- "seeds": [
372
- {
373
- "kind": "const",
374
- "value": [
375
- 116,
376
- 115,
377
- 115,
378
- 112,
379
- 100,
380
- 97
381
- ]
382
- }
383
- ]
124
+ "name": "tss_eth_address",
125
+ "type": {
126
+ "array": ["u8", 20]
384
127
  }
385
128
  },
386
129
  {
387
- "name": "vault_sol",
388
- "docs": [
389
- "Vault SOL PDA (needed for rent_fee transfer to CEA and gas_fee reimbursement to relayer)"
390
- ],
130
+ "name": "chain_id",
131
+ "type": "u64"
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "name": "initialize",
137
+ "docs": ["@notice Initialize the gateway"],
138
+ "discriminator": [175, 175, 109, 31, 13, 152, 155, 237],
139
+ "accounts": [
140
+ {
141
+ "name": "config",
391
142
  "writable": true,
392
143
  "pda": {
393
144
  "seeds": [
394
145
  {
395
146
  "kind": "const",
396
- "value": [
397
- 118,
398
- 97,
399
- 117,
400
- 108,
401
- 116
402
- ]
147
+ "value": [99, 111, 110, 102, 105, 103]
403
148
  }
404
149
  ]
405
150
  }
406
151
  },
407
152
  {
408
- "name": "executed_tx",
409
- "docs": [
410
- "Executed transaction tracker (replay protection)",
411
- "Relayer pays for this account creation and gets reimbursed via gas_fee"
412
- ],
153
+ "name": "vault",
413
154
  "writable": true,
414
155
  "pda": {
415
156
  "seeds": [
416
157
  {
417
158
  "kind": "const",
418
- "value": [
419
- 101,
420
- 120,
421
- 101,
422
- 99,
423
- 117,
424
- 116,
425
- 101,
426
- 100,
427
- 95,
428
- 116,
429
- 120
430
- ]
431
- },
432
- {
433
- "kind": "arg",
434
- "path": "tx_id"
159
+ "value": [118, 97, 117, 108, 116]
435
160
  }
436
161
  ]
437
162
  }
438
163
  },
439
164
  {
440
- "name": "destination_program"
441
- },
442
- {
443
- "name": "token_program",
444
- "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
165
+ "name": "admin",
166
+ "writable": true,
167
+ "signer": true
445
168
  },
446
169
  {
447
170
  "name": "system_program",
448
171
  "address": "11111111111111111111111111111111"
449
- },
450
- {
451
- "name": "rent",
452
- "address": "SysvarRent111111111111111111111111111111111"
453
- },
454
- {
455
- "name": "associated_token_program",
456
- "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
457
172
  }
458
173
  ],
459
174
  "args": [
460
175
  {
461
- "name": "tx_id",
462
- "type": {
463
- "array": [
464
- "u8",
465
- 32
466
- ]
467
- }
468
- },
469
- {
470
- "name": "amount",
471
- "type": "u64"
472
- },
473
- {
474
- "name": "target_program",
176
+ "name": "admin",
475
177
  "type": "pubkey"
476
178
  },
477
179
  {
478
- "name": "sender",
479
- "type": {
480
- "array": [
481
- "u8",
482
- 20
483
- ]
484
- }
485
- },
486
- {
487
- "name": "accounts",
488
- "type": {
489
- "vec": {
490
- "defined": {
491
- "name": "GatewayAccountMeta"
492
- }
493
- }
494
- }
495
- },
496
- {
497
- "name": "ix_data",
498
- "type": "bytes"
499
- },
500
- {
501
- "name": "gas_fee",
502
- "type": "u64"
503
- },
504
- {
505
- "name": "rent_fee",
506
- "type": "u64"
180
+ "name": "pauser",
181
+ "type": "pubkey"
507
182
  },
508
183
  {
509
- "name": "signature",
510
- "type": {
511
- "array": [
512
- "u8",
513
- 64
514
- ]
515
- }
184
+ "name": "tss",
185
+ "type": "pubkey"
516
186
  },
517
187
  {
518
- "name": "recovery_id",
519
- "type": "u8"
188
+ "name": "min_cap_usd",
189
+ "type": "u128"
520
190
  },
521
191
  {
522
- "name": "message_hash",
523
- "type": {
524
- "array": [
525
- "u8",
526
- 32
527
- ]
528
- }
192
+ "name": "max_cap_usd",
193
+ "type": "u128"
529
194
  },
530
195
  {
531
- "name": "nonce",
532
- "type": "u64"
196
+ "name": "pyth_price_feed",
197
+ "type": "pubkey"
533
198
  }
534
199
  ]
535
200
  },
536
201
  {
537
- "name": "get_sol_price",
538
- "docs": [
539
- "@notice View function for SOL price (locker-compatible)",
540
- "@dev Anyone can fetch SOL price in USD"
541
- ],
542
- "discriminator": [
543
- 230,
544
- 145,
545
- 206,
546
- 175,
547
- 43,
548
- 184,
549
- 97,
550
- 110
551
- ],
202
+ "name": "pause",
203
+ "docs": ["@notice Pause the gateway"],
204
+ "discriminator": [211, 22, 221, 251, 74, 121, 193, 47],
552
205
  "accounts": [
553
206
  {
554
- "name": "price_update"
207
+ "name": "config",
208
+ "writable": true,
209
+ "pda": {
210
+ "seeds": [
211
+ {
212
+ "kind": "const",
213
+ "value": [99, 111, 110, 102, 105, 103]
214
+ }
215
+ ]
216
+ }
217
+ },
218
+ {
219
+ "name": "pauser",
220
+ "signer": true
555
221
  }
556
222
  ],
557
- "args": [],
558
- "returns": {
559
- "defined": {
560
- "name": "PriceData"
561
- }
562
- }
223
+ "args": []
563
224
  },
564
225
  {
565
- "name": "init_tss",
566
- "discriminator": [
567
- 47,
568
- 31,
569
- 100,
570
- 111,
571
- 115,
572
- 2,
573
- 22,
574
- 208
575
- ],
226
+ "name": "remove_whitelist_token",
227
+ "docs": ["@notice Remove token from whitelist"],
228
+ "discriminator": [65, 182, 42, 255, 198, 163, 73, 46],
576
229
  "accounts": [
577
230
  {
578
- "name": "tss_pda",
231
+ "name": "config",
579
232
  "writable": true,
580
233
  "pda": {
581
234
  "seeds": [
582
235
  {
583
236
  "kind": "const",
584
- "value": [
585
- 116,
586
- 115,
587
- 115,
588
- 112,
589
- 100,
590
- 97
591
- ]
237
+ "value": [99, 111, 110, 102, 105, 103]
592
238
  }
593
239
  ]
594
240
  }
595
241
  },
596
242
  {
597
- "name": "config",
243
+ "name": "whitelist",
244
+ "writable": true,
598
245
  "pda": {
599
246
  "seeds": [
600
247
  {
601
248
  "kind": "const",
602
- "value": [
603
- 99,
604
- 111,
605
- 110,
606
- 102,
607
- 105,
608
- 103
609
- ]
249
+ "value": [119, 104, 105, 116, 101, 108, 105, 115, 116]
610
250
  }
611
251
  ]
612
252
  }
613
253
  },
614
254
  {
615
- "name": "authority",
255
+ "name": "admin",
616
256
  "writable": true,
617
257
  "signer": true
618
258
  },
@@ -623,51 +263,51 @@
623
263
  ],
624
264
  "args": [
625
265
  {
626
- "name": "tss_eth_address",
627
- "type": {
628
- "array": [
629
- "u8",
630
- 20
266
+ "name": "token",
267
+ "type": "pubkey"
268
+ }
269
+ ]
270
+ },
271
+ {
272
+ "name": "reset_nonce",
273
+ "discriminator": [104, 139, 110, 85, 234, 155, 132, 248],
274
+ "accounts": [
275
+ {
276
+ "name": "tss_pda",
277
+ "writable": true,
278
+ "pda": {
279
+ "seeds": [
280
+ {
281
+ "kind": "const",
282
+ "value": [116, 115, 115]
283
+ }
631
284
  ]
632
285
  }
633
286
  },
634
287
  {
635
- "name": "chain_id",
636
- "type": "string"
288
+ "name": "authority",
289
+ "signer": true
290
+ }
291
+ ],
292
+ "args": [
293
+ {
294
+ "name": "new_nonce",
295
+ "type": "u64"
637
296
  }
638
297
  ]
639
298
  },
640
299
  {
641
- "name": "initialize",
642
- "docs": [
643
- "@notice Initialize the gateway"
644
- ],
645
- "discriminator": [
646
- 175,
647
- 175,
648
- 109,
649
- 31,
650
- 13,
651
- 152,
652
- 155,
653
- 237
654
- ],
300
+ "name": "revert_withdraw",
301
+ "docs": ["@notice TSS-verified revert withdraw for SOL"],
302
+ "discriminator": [8, 232, 107, 216, 153, 25, 204, 116],
655
303
  "accounts": [
656
304
  {
657
305
  "name": "config",
658
- "writable": true,
659
306
  "pda": {
660
307
  "seeds": [
661
308
  {
662
309
  "kind": "const",
663
- "value": [
664
- 99,
665
- 111,
666
- 110,
667
- 102,
668
- 105,
669
- 103
670
- ]
310
+ "value": [99, 111, 110, 102, 105, 103]
671
311
  }
672
312
  ]
673
313
  }
@@ -679,21 +319,26 @@
679
319
  "seeds": [
680
320
  {
681
321
  "kind": "const",
682
- "value": [
683
- 118,
684
- 97,
685
- 117,
686
- 108,
687
- 116
688
- ]
322
+ "value": [118, 97, 117, 108, 116]
689
323
  }
690
324
  ]
691
325
  }
692
326
  },
693
327
  {
694
- "name": "admin",
328
+ "name": "tss_pda",
695
329
  "writable": true,
696
- "signer": true
330
+ "pda": {
331
+ "seeds": [
332
+ {
333
+ "kind": "const",
334
+ "value": [116, 115, 115]
335
+ }
336
+ ]
337
+ }
338
+ },
339
+ {
340
+ "name": "recipient",
341
+ "writable": true
697
342
  },
698
343
  {
699
344
  "name": "system_program",
@@ -702,222 +347,152 @@
702
347
  ],
703
348
  "args": [
704
349
  {
705
- "name": "admin",
706
- "type": "pubkey"
350
+ "name": "amount",
351
+ "type": "u64"
707
352
  },
708
353
  {
709
- "name": "pauser",
710
- "type": "pubkey"
354
+ "name": "revert_instruction",
355
+ "type": {
356
+ "defined": {
357
+ "name": "RevertInstructions"
358
+ }
359
+ }
711
360
  },
712
361
  {
713
- "name": "tss",
714
- "type": "pubkey"
362
+ "name": "signature",
363
+ "type": {
364
+ "array": ["u8", 64]
365
+ }
715
366
  },
716
367
  {
717
- "name": "min_cap_usd",
718
- "type": "u128"
368
+ "name": "recovery_id",
369
+ "type": "u8"
719
370
  },
720
371
  {
721
- "name": "max_cap_usd",
722
- "type": "u128"
372
+ "name": "message_hash",
373
+ "type": {
374
+ "array": ["u8", 32]
375
+ }
723
376
  },
724
377
  {
725
- "name": "pyth_price_feed",
726
- "type": "pubkey"
378
+ "name": "nonce",
379
+ "type": "u64"
727
380
  }
728
381
  ]
729
382
  },
730
383
  {
731
- "name": "pause",
732
- "docs": [
733
- "@notice Pause the gateway"
734
- ],
735
- "discriminator": [
736
- 211,
737
- 22,
738
- 221,
739
- 251,
740
- 74,
741
- 121,
742
- 193,
743
- 47
744
- ],
384
+ "name": "revert_withdraw_spl_token",
385
+ "docs": ["@notice TSS-verified revert withdraw for SPL tokens"],
386
+ "discriminator": [172, 155, 56, 3, 92, 190, 159, 191],
745
387
  "accounts": [
746
388
  {
747
389
  "name": "config",
748
- "writable": true,
749
390
  "pda": {
750
391
  "seeds": [
751
392
  {
752
393
  "kind": "const",
753
- "value": [
754
- 99,
755
- 111,
756
- 110,
757
- 102,
758
- 105,
759
- 103
760
- ]
394
+ "value": [99, 111, 110, 102, 105, 103]
761
395
  }
762
396
  ]
763
397
  }
764
398
  },
765
399
  {
766
- "name": "pauser",
767
- "signer": true
768
- }
769
- ],
770
- "args": []
771
- },
772
- {
773
- "name": "remove_whitelist_token",
774
- "docs": [
775
- "@notice Remove token from whitelist"
776
- ],
777
- "discriminator": [
778
- 65,
779
- 182,
780
- 42,
781
- 255,
782
- 198,
783
- 163,
784
- 73,
785
- 46
786
- ],
787
- "accounts": [
400
+ "name": "whitelist"
401
+ },
788
402
  {
789
- "name": "config",
403
+ "name": "vault",
790
404
  "writable": true,
791
405
  "pda": {
792
406
  "seeds": [
793
407
  {
794
408
  "kind": "const",
795
- "value": [
796
- 99,
797
- 111,
798
- 110,
799
- 102,
800
- 105,
801
- 103
802
- ]
409
+ "value": [118, 97, 117, 108, 116]
803
410
  }
804
411
  ]
805
412
  }
806
413
  },
807
414
  {
808
- "name": "whitelist",
415
+ "name": "token_vault",
416
+ "writable": true
417
+ },
418
+ {
419
+ "name": "tss_pda",
809
420
  "writable": true,
810
421
  "pda": {
811
422
  "seeds": [
812
423
  {
813
424
  "kind": "const",
814
- "value": [
815
- 119,
816
- 104,
817
- 105,
818
- 116,
819
- 101,
820
- 108,
821
- 105,
822
- 115,
823
- 116
824
- ]
425
+ "value": [116, 115, 115]
825
426
  }
826
427
  ]
827
428
  }
828
429
  },
829
430
  {
830
- "name": "admin",
831
- "writable": true,
832
- "signer": true
431
+ "name": "recipient_token_account",
432
+ "writable": true
833
433
  },
834
434
  {
835
- "name": "system_program",
836
- "address": "11111111111111111111111111111111"
435
+ "name": "token_mint"
436
+ },
437
+ {
438
+ "name": "token_program",
439
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
837
440
  }
838
441
  ],
839
442
  "args": [
840
443
  {
841
- "name": "token",
842
- "type": "pubkey"
843
- }
844
- ]
845
- },
846
- {
847
- "name": "reset_nonce",
848
- "discriminator": [
849
- 104,
850
- 139,
851
- 110,
852
- 85,
853
- 234,
854
- 155,
855
- 132,
856
- 248
857
- ],
858
- "accounts": [
444
+ "name": "amount",
445
+ "type": "u64"
446
+ },
859
447
  {
860
- "name": "tss_pda",
861
- "writable": true,
862
- "pda": {
863
- "seeds": [
864
- {
865
- "kind": "const",
866
- "value": [
867
- 116,
868
- 115,
869
- 115,
870
- 112,
871
- 100,
872
- 97
873
- ]
874
- }
875
- ]
448
+ "name": "revert_instruction",
449
+ "type": {
450
+ "defined": {
451
+ "name": "RevertInstructions"
452
+ }
876
453
  }
877
454
  },
878
455
  {
879
- "name": "authority",
880
- "signer": true
881
- }
882
- ],
883
- "args": [
456
+ "name": "signature",
457
+ "type": {
458
+ "array": ["u8", 64]
459
+ }
460
+ },
884
461
  {
885
- "name": "new_nonce",
462
+ "name": "recovery_id",
463
+ "type": "u8"
464
+ },
465
+ {
466
+ "name": "message_hash",
467
+ "type": {
468
+ "array": ["u8", 32]
469
+ }
470
+ },
471
+ {
472
+ "name": "nonce",
886
473
  "type": "u64"
887
474
  }
888
475
  ]
889
476
  },
890
477
  {
891
- "name": "revert_universal_tx",
478
+ "name": "send_funds",
892
479
  "docs": [
893
- "@notice TSS-verified revert withdraw for SOL (EVM parity: `revertUniversalTx`)",
894
- "@param tx_id Transaction ID for tracking"
895
- ],
896
- "discriminator": [
897
- 124,
898
- 49,
899
- 81,
900
- 233,
901
- 23,
902
- 147,
903
- 82,
904
- 122
480
+ "@notice Allows initiating a TX for movement of funds from source chain to Push Chain.",
481
+ "@dev Supports both native SOL and SPL token deposits (like ETH Gateway).",
482
+ "For native SOL: pass Pubkey::default() as bridge_token",
483
+ "For SPL tokens: pass token mint address as bridge_token",
484
+ "The route emits UniversalTx event."
905
485
  ],
486
+ "discriminator": [84, 247, 211, 40, 63, 106, 15, 59],
906
487
  "accounts": [
907
488
  {
908
489
  "name": "config",
490
+ "writable": true,
909
491
  "pda": {
910
492
  "seeds": [
911
493
  {
912
494
  "kind": "const",
913
- "value": [
914
- 99,
915
- 111,
916
- 110,
917
- 102,
918
- 105,
919
- 103
920
- ]
495
+ "value": [99, 111, 110, 102, 105, 103]
921
496
  }
922
497
  ]
923
498
  }
@@ -929,79 +504,42 @@
929
504
  "seeds": [
930
505
  {
931
506
  "kind": "const",
932
- "value": [
933
- 118,
934
- 97,
935
- 117,
936
- 108,
937
- 116
938
- ]
507
+ "value": [118, 97, 117, 108, 116]
939
508
  }
940
509
  ]
941
510
  }
942
511
  },
943
512
  {
944
- "name": "tss_pda",
945
- "writable": true,
513
+ "name": "token_whitelist",
946
514
  "pda": {
947
515
  "seeds": [
948
516
  {
949
517
  "kind": "const",
950
- "value": [
951
- 116,
952
- 115,
953
- 115,
954
- 112,
955
- 100,
956
- 97
957
- ]
518
+ "value": [119, 104, 105, 116, 101, 108, 105, 115, 116]
958
519
  }
959
520
  ]
960
521
  }
961
522
  },
962
523
  {
963
- "name": "recipient",
524
+ "name": "user_token_account",
964
525
  "writable": true
965
526
  },
966
527
  {
967
- "name": "executed_tx",
968
- "docs": [
969
- "Executed transaction tracker (EVM parity: isExecuted[txID])"
970
- ],
971
- "writable": true,
972
- "pda": {
973
- "seeds": [
974
- {
975
- "kind": "const",
976
- "value": [
977
- 101,
978
- 120,
979
- 101,
980
- 99,
981
- 117,
982
- 116,
983
- 101,
984
- 100,
985
- 95,
986
- 116,
987
- 120
988
- ]
989
- },
990
- {
991
- "kind": "arg",
992
- "path": "tx_id"
993
- }
994
- ]
995
- }
528
+ "name": "gateway_token_account",
529
+ "writable": true
996
530
  },
997
531
  {
998
- "name": "caller",
999
- "docs": [
1000
- "The caller/relayer who pays for the transaction (including executed_tx account creation)"
1001
- ],
532
+ "name": "user",
1002
533
  "writable": true,
1003
534
  "signer": true
1004
535
  },
536
+ {
537
+ "name": "bridge_token"
538
+ },
539
+ {
540
+ "name": "token_program",
541
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
542
+ },
1005
543
  {
1006
544
  "name": "system_program",
1007
545
  "address": "11111111111111111111111111111111"
@@ -1009,16 +547,17 @@
1009
547
  ],
1010
548
  "args": [
1011
549
  {
1012
- "name": "tx_id",
550
+ "name": "recipient",
1013
551
  "type": {
1014
- "array": [
1015
- "u8",
1016
- 32
1017
- ]
552
+ "array": ["u8", 20]
1018
553
  }
1019
554
  },
1020
555
  {
1021
- "name": "amount",
556
+ "name": "bridge_token",
557
+ "type": "pubkey"
558
+ },
559
+ {
560
+ "name": "bridge_amount",
1022
561
  "type": "u64"
1023
562
  },
1024
563
  {
@@ -1028,77 +567,30 @@
1028
567
  "name": "RevertInstructions"
1029
568
  }
1030
569
  }
1031
- },
1032
- {
1033
- "name": "gas_fee",
1034
- "type": "u64"
1035
- },
1036
- {
1037
- "name": "signature",
1038
- "type": {
1039
- "array": [
1040
- "u8",
1041
- 64
1042
- ]
1043
- }
1044
- },
1045
- {
1046
- "name": "recovery_id",
1047
- "type": "u8"
1048
- },
1049
- {
1050
- "name": "message_hash",
1051
- "type": {
1052
- "array": [
1053
- "u8",
1054
- 32
1055
- ]
1056
- }
1057
- },
1058
- {
1059
- "name": "nonce",
1060
- "type": "u64"
1061
570
  }
1062
571
  ]
1063
572
  },
1064
573
  {
1065
- "name": "revert_universal_tx_token",
574
+ "name": "send_tx_with_funds",
1066
575
  "docs": [
1067
- "@notice TSS-verified revert withdraw for SPL tokens (EVM parity: `revertUniversalTxToken`)",
1068
- "@param tx_id Transaction ID for tracking"
1069
- ],
1070
- "discriminator": [
1071
- 139,
1072
- 196,
1073
- 1,
1074
- 242,
1075
- 109,
1076
- 31,
1077
- 98,
1078
- 32
576
+ "@notice Allows initiating a TX for movement of funds and payload from source chain to Push Chain.",
577
+ "@dev Supports both native SOL and SPL token deposits with payload execution.",
578
+ "The route emits UniversalTx event."
1079
579
  ],
580
+ "discriminator": [224, 179, 202, 222, 121, 238, 38, 168],
1080
581
  "accounts": [
1081
582
  {
1082
583
  "name": "config",
584
+ "writable": true,
1083
585
  "pda": {
1084
586
  "seeds": [
1085
587
  {
1086
588
  "kind": "const",
1087
- "value": [
1088
- 99,
1089
- 111,
1090
- 110,
1091
- 102,
1092
- 105,
1093
- 103
1094
- ]
589
+ "value": [99, 111, 110, 102, 105, 103]
1095
590
  }
1096
591
  ]
1097
592
  }
1098
593
  },
1099
- {
1100
- "name": "whitelist"
1101
- },
1102
594
  {
1103
595
  "name": "vault",
1104
596
  "writable": true,
@@ -1106,113 +598,125 @@
1106
598
  "seeds": [
1107
599
  {
1108
600
  "kind": "const",
1109
- "value": [
1110
- 118,
1111
- 97,
1112
- 117,
1113
- 108,
1114
- 116
1115
- ]
601
+ "value": [118, 97, 117, 108, 116]
1116
602
  }
1117
603
  ]
1118
604
  }
1119
605
  },
1120
606
  {
1121
- "name": "token_vault",
1122
- "writable": true
1123
- },
1124
- {
1125
- "name": "tss_pda",
1126
- "writable": true,
607
+ "name": "token_whitelist",
1127
608
  "pda": {
1128
609
  "seeds": [
1129
610
  {
1130
611
  "kind": "const",
1131
- "value": [
1132
- 116,
1133
- 115,
1134
- 115,
1135
- 112,
1136
- 100,
1137
- 97
1138
- ]
612
+ "value": [119, 104, 105, 116, 101, 108, 105, 115, 116]
1139
613
  }
1140
614
  ]
1141
615
  }
1142
616
  },
1143
617
  {
1144
- "name": "recipient_token_account",
1145
- "docs": [
1146
- "Recipient token account (ATA for fund_recipient + token_mint)"
1147
- ],
618
+ "name": "user_token_account",
1148
619
  "writable": true
1149
620
  },
1150
621
  {
1151
- "name": "token_mint"
622
+ "name": "gateway_token_account",
623
+ "writable": true
1152
624
  },
1153
625
  {
1154
- "name": "executed_tx",
1155
- "docs": [
1156
- "Executed transaction tracker (EVM parity: isExecuted[txID])"
1157
- ],
626
+ "name": "user",
627
+ "writable": true,
628
+ "signer": true
629
+ },
630
+ {
631
+ "name": "price_update"
632
+ },
633
+ {
634
+ "name": "bridge_token"
635
+ },
636
+ {
637
+ "name": "token_program",
638
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
639
+ },
640
+ {
641
+ "name": "system_program",
642
+ "address": "11111111111111111111111111111111"
643
+ }
644
+ ],
645
+ "args": [
646
+ {
647
+ "name": "bridge_token",
648
+ "type": "pubkey"
649
+ },
650
+ {
651
+ "name": "bridge_amount",
652
+ "type": "u64"
653
+ },
654
+ {
655
+ "name": "payload",
656
+ "type": {
657
+ "defined": {
658
+ "name": "UniversalPayload"
659
+ }
660
+ }
661
+ },
662
+ {
663
+ "name": "revert_instruction",
664
+ "type": {
665
+ "defined": {
666
+ "name": "RevertInstructions"
667
+ }
668
+ }
669
+ },
670
+ {
671
+ "name": "gas_amount",
672
+ "type": "u64"
673
+ },
674
+ {
675
+ "name": "signature_data",
676
+ "type": "bytes"
677
+ }
678
+ ]
679
+ },
680
+ {
681
+ "name": "send_tx_with_gas",
682
+ "docs": [
683
+ "@notice Allows initiating a TX for funding UEA with gas deposits from source chain.",
684
+ "@dev Supports only native SOL deposits for gas funding.",
685
+ "The route emits UniversalTx event - important for Instant TX Route."
686
+ ],
687
+ "discriminator": [220, 10, 179, 127, 41, 153, 193, 213],
688
+ "accounts": [
689
+ {
690
+ "name": "config",
1158
691
  "writable": true,
1159
692
  "pda": {
1160
693
  "seeds": [
1161
694
  {
1162
695
  "kind": "const",
1163
- "value": [
1164
- 101,
1165
- 120,
1166
- 101,
1167
- 99,
1168
- 117,
1169
- 116,
1170
- 101,
1171
- 100,
1172
- 95,
1173
- 116,
1174
- 120
1175
- ]
1176
- },
1177
- {
1178
- "kind": "arg",
1179
- "path": "tx_id"
696
+ "value": [99, 111, 110, 102, 105, 103]
1180
697
  }
1181
- ]
1182
- }
1183
- },
1184
- {
1185
- "name": "caller",
1186
- "docs": [
1187
- "The caller/relayer who pays for the transaction (including executed_tx account creation)"
1188
- ],
1189
- "writable": true,
1190
- "signer": true
698
+ ]
699
+ }
1191
700
  },
1192
701
  {
1193
- "name": "vault_sol",
1194
- "docs": [
1195
- "Vault SOL PDA (needed for gas_fee transfer to caller)"
1196
- ],
702
+ "name": "vault",
1197
703
  "writable": true,
1198
704
  "pda": {
1199
705
  "seeds": [
1200
706
  {
1201
707
  "kind": "const",
1202
- "value": [
1203
- 118,
1204
- 97,
1205
- 117,
1206
- 108,
1207
- 116
1208
- ]
708
+ "value": [118, 97, 117, 108, 116]
1209
709
  }
1210
710
  ]
1211
711
  }
1212
712
  },
1213
713
  {
1214
- "name": "token_program",
1215
- "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
714
+ "name": "user",
715
+ "writable": true,
716
+ "signer": true
717
+ },
718
+ {
719
+ "name": "price_update"
1216
720
  },
1217
721
  {
1218
722
  "name": "system_program",
@@ -1221,18 +725,13 @@
1221
725
  ],
1222
726
  "args": [
1223
727
  {
1224
- "name": "tx_id",
728
+ "name": "payload",
1225
729
  "type": {
1226
- "array": [
1227
- "u8",
1228
- 32
1229
- ]
730
+ "defined": {
731
+ "name": "UniversalPayload"
732
+ }
1230
733
  }
1231
734
  },
1232
- {
1233
- "name": "amount",
1234
- "type": "u64"
1235
- },
1236
735
  {
1237
736
  "name": "revert_instruction",
1238
737
  "type": {
@@ -1242,34 +741,12 @@
1242
741
  }
1243
742
  },
1244
743
  {
1245
- "name": "gas_fee",
744
+ "name": "amount",
1246
745
  "type": "u64"
1247
746
  },
1248
747
  {
1249
- "name": "signature",
1250
- "type": {
1251
- "array": [
1252
- "u8",
1253
- 64
1254
- ]
1255
- }
1256
- },
1257
- {
1258
- "name": "recovery_id",
1259
- "type": "u8"
1260
- },
1261
- {
1262
- "name": "message_hash",
1263
- "type": {
1264
- "array": [
1265
- "u8",
1266
- 32
1267
- ]
1268
- }
1269
- },
1270
- {
1271
- "name": "nonce",
1272
- "type": "u64"
748
+ "name": "signature_data",
749
+ "type": "bytes"
1273
750
  }
1274
751
  ]
1275
752
  },
@@ -1280,16 +757,7 @@
1280
757
  "@dev Native amount parameter mirrors `msg.value` on EVM chains.",
1281
758
  "All routing (gas / funds / batching) is handled inside the deposit module."
1282
759
  ],
1283
- "discriminator": [
1284
- 145,
1285
- 19,
1286
- 164,
1287
- 55,
1288
- 165,
1289
- 220,
1290
- 23,
1291
- 97
1292
- ],
760
+ "discriminator": [145, 19, 164, 55, 165, 220, 23, 97],
1293
761
  "accounts": [
1294
762
  {
1295
763
  "name": "config",
@@ -1298,14 +766,7 @@
1298
766
  "seeds": [
1299
767
  {
1300
768
  "kind": "const",
1301
- "value": [
1302
- 99,
1303
- 111,
1304
- 110,
1305
- 102,
1306
- 105,
1307
- 103
1308
- ]
769
+ "value": [99, 111, 110, 102, 105, 103]
1309
770
  }
1310
771
  ]
1311
772
  }
@@ -1317,13 +778,7 @@
1317
778
  "seeds": [
1318
779
  {
1319
780
  "kind": "const",
1320
- "value": [
1321
- 118,
1322
- 97,
1323
- 117,
1324
- 108,
1325
- 116
1326
- ]
781
+ "value": [118, 97, 117, 108, 116]
1327
782
  }
1328
783
  ]
1329
784
  }
@@ -1352,32 +807,15 @@
1352
807
  },
1353
808
  {
1354
809
  "name": "rate_limit_config",
1355
- "docs": [
1356
- "Rate limit config - REQUIRED for universal entrypoint"
1357
- ],
810
+ "docs": ["Rate limit config - REQUIRED for universal entrypoint"],
1358
811
  "writable": true,
1359
812
  "pda": {
1360
813
  "seeds": [
1361
814
  {
1362
815
  "kind": "const",
1363
816
  "value": [
1364
- 114,
1365
- 97,
1366
- 116,
1367
- 101,
1368
- 95,
1369
- 108,
1370
- 105,
1371
- 109,
1372
- 105,
1373
- 116,
1374
- 95,
1375
- 99,
1376
- 111,
1377
- 110,
1378
- 102,
1379
- 105,
1380
- 103
817
+ 114, 97, 116, 101, 95, 108, 105, 109, 105, 116, 95, 99, 111,
818
+ 110, 102, 105, 103
1381
819
  ]
1382
820
  }
1383
821
  ]
@@ -1417,19 +855,8 @@
1417
855
  },
1418
856
  {
1419
857
  "name": "set_block_usd_cap",
1420
- "docs": [
1421
- "@notice Set block-based USD cap for rate limiting"
1422
- ],
1423
- "discriminator": [
1424
- 205,
1425
- 253,
1426
- 33,
1427
- 164,
1428
- 220,
1429
- 216,
1430
- 42,
1431
- 50
1432
- ],
858
+ "docs": ["@notice Set block-based USD cap for rate limiting"],
859
+ "discriminator": [205, 253, 33, 164, 220, 216, 42, 50],
1433
860
  "accounts": [
1434
861
  {
1435
862
  "name": "config",
@@ -1438,14 +865,7 @@
1438
865
  "seeds": [
1439
866
  {
1440
867
  "kind": "const",
1441
- "value": [
1442
- 99,
1443
- 111,
1444
- 110,
1445
- 102,
1446
- 105,
1447
- 103
1448
- ]
868
+ "value": [99, 111, 110, 102, 105, 103]
1449
869
  }
1450
870
  ]
1451
871
  }
@@ -1458,23 +878,8 @@
1458
878
  {
1459
879
  "kind": "const",
1460
880
  "value": [
1461
- 114,
1462
- 97,
1463
- 116,
1464
- 101,
1465
- 95,
1466
- 108,
1467
- 105,
1468
- 109,
1469
- 105,
1470
- 116,
1471
- 95,
1472
- 99,
1473
- 111,
1474
- 110,
1475
- 102,
1476
- 105,
1477
- 103
881
+ 114, 97, 116, 101, 95, 108, 105, 109, 105, 116, 95, 99, 111,
882
+ 110, 102, 105, 103
1478
883
  ]
1479
884
  }
1480
885
  ]
@@ -1499,19 +904,8 @@
1499
904
  },
1500
905
  {
1501
906
  "name": "set_caps_usd",
1502
- "docs": [
1503
- "@notice Set USD caps"
1504
- ],
1505
- "discriminator": [
1506
- 136,
1507
- 160,
1508
- 17,
1509
- 54,
1510
- 239,
1511
- 108,
1512
- 125,
1513
- 129
1514
- ],
907
+ "docs": ["@notice Set USD caps"],
908
+ "discriminator": [136, 160, 17, 54, 239, 108, 125, 129],
1515
909
  "accounts": [
1516
910
  {
1517
911
  "name": "config",
@@ -1520,14 +914,7 @@
1520
914
  "seeds": [
1521
915
  {
1522
916
  "kind": "const",
1523
- "value": [
1524
- 99,
1525
- 111,
1526
- 110,
1527
- 102,
1528
- 105,
1529
- 103
1530
- ]
917
+ "value": [99, 111, 110, 102, 105, 103]
1531
918
  }
1532
919
  ]
1533
920
  }
@@ -1550,19 +937,8 @@
1550
937
  },
1551
938
  {
1552
939
  "name": "set_pyth_confidence_threshold",
1553
- "docs": [
1554
- "@notice Set Pyth confidence threshold"
1555
- ],
1556
- "discriminator": [
1557
- 213,
1558
- 69,
1559
- 242,
1560
- 123,
1561
- 122,
1562
- 165,
1563
- 125,
1564
- 21
1565
- ],
940
+ "docs": ["@notice Set Pyth confidence threshold"],
941
+ "discriminator": [213, 69, 242, 123, 122, 165, 125, 21],
1566
942
  "accounts": [
1567
943
  {
1568
944
  "name": "config",
@@ -1571,14 +947,7 @@
1571
947
  "seeds": [
1572
948
  {
1573
949
  "kind": "const",
1574
- "value": [
1575
- 99,
1576
- 111,
1577
- 110,
1578
- 102,
1579
- 105,
1580
- 103
1581
- ]
950
+ "value": [99, 111, 110, 102, 105, 103]
1582
951
  }
1583
952
  ]
1584
953
  }
@@ -1597,19 +966,8 @@
1597
966
  },
1598
967
  {
1599
968
  "name": "set_pyth_price_feed",
1600
- "docs": [
1601
- "@notice Set Pyth price feed"
1602
- ],
1603
- "discriminator": [
1604
- 202,
1605
- 185,
1606
- 109,
1607
- 150,
1608
- 255,
1609
- 130,
1610
- 210,
1611
- 208
1612
- ],
969
+ "docs": ["@notice Set Pyth price feed"],
970
+ "discriminator": [202, 185, 109, 150, 255, 130, 210, 208],
1613
971
  "accounts": [
1614
972
  {
1615
973
  "name": "config",
@@ -1618,14 +976,7 @@
1618
976
  "seeds": [
1619
977
  {
1620
978
  "kind": "const",
1621
- "value": [
1622
- 99,
1623
- 111,
1624
- 110,
1625
- 102,
1626
- 105,
1627
- 103
1628
- ]
979
+ "value": [99, 111, 110, 102, 105, 103]
1629
980
  }
1630
981
  ]
1631
982
  }
@@ -1649,16 +1000,7 @@
1649
1000
  "@dev For batch operations, call this function multiple times in a single transaction.",
1650
1001
  "This is the Solana-idiomatic approach and provides better type safety than using remaining_accounts."
1651
1002
  ],
1652
- "discriminator": [
1653
- 67,
1654
- 225,
1655
- 226,
1656
- 248,
1657
- 119,
1658
- 98,
1659
- 18,
1660
- 68
1661
- ],
1003
+ "discriminator": [67, 225, 226, 248, 119, 98, 18, 68],
1662
1004
  "accounts": [
1663
1005
  {
1664
1006
  "name": "config",
@@ -1667,14 +1009,7 @@
1667
1009
  "seeds": [
1668
1010
  {
1669
1011
  "kind": "const",
1670
- "value": [
1671
- 99,
1672
- 111,
1673
- 110,
1674
- 102,
1675
- 105,
1676
- 103
1677
- ]
1012
+ "value": [99, 111, 110, 102, 105, 103]
1678
1013
  }
1679
1014
  ]
1680
1015
  }
@@ -1686,18 +1021,7 @@
1686
1021
  "seeds": [
1687
1022
  {
1688
1023
  "kind": "const",
1689
- "value": [
1690
- 114,
1691
- 97,
1692
- 116,
1693
- 101,
1694
- 95,
1695
- 108,
1696
- 105,
1697
- 109,
1698
- 105,
1699
- 116
1700
- ]
1024
+ "value": [114, 97, 116, 101, 95, 108, 105, 109, 105, 116]
1701
1025
  },
1702
1026
  {
1703
1027
  "kind": "account",
@@ -1727,20 +1051,38 @@
1727
1051
  ]
1728
1052
  },
1729
1053
  {
1730
- "name": "unpause",
1731
- "docs": [
1732
- "@notice Unpause the gateway"
1733
- ],
1734
- "discriminator": [
1735
- 169,
1736
- 144,
1737
- 4,
1738
- 38,
1739
- 10,
1740
- 141,
1741
- 188,
1742
- 255
1054
+ "name": "set_tss_address",
1055
+ "docs": ["@notice Set TSS address"],
1056
+ "discriminator": [158, 254, 147, 0, 154, 3, 56, 50],
1057
+ "accounts": [
1058
+ {
1059
+ "name": "config",
1060
+ "writable": true,
1061
+ "pda": {
1062
+ "seeds": [
1063
+ {
1064
+ "kind": "const",
1065
+ "value": [99, 111, 110, 102, 105, 103]
1066
+ }
1067
+ ]
1068
+ }
1069
+ },
1070
+ {
1071
+ "name": "admin",
1072
+ "signer": true
1073
+ }
1743
1074
  ],
1075
+ "args": [
1076
+ {
1077
+ "name": "new_tss",
1078
+ "type": "pubkey"
1079
+ }
1080
+ ]
1081
+ },
1082
+ {
1083
+ "name": "unpause",
1084
+ "docs": ["@notice Unpause the gateway"],
1085
+ "discriminator": [169, 144, 4, 38, 10, 141, 188, 255],
1744
1086
  "accounts": [
1745
1087
  {
1746
1088
  "name": "config",
@@ -1749,14 +1091,7 @@
1749
1091
  "seeds": [
1750
1092
  {
1751
1093
  "kind": "const",
1752
- "value": [
1753
- 99,
1754
- 111,
1755
- 110,
1756
- 102,
1757
- 105,
1758
- 103
1759
- ]
1094
+ "value": [99, 111, 110, 102, 105, 103]
1760
1095
  }
1761
1096
  ]
1762
1097
  }
@@ -1770,19 +1105,8 @@
1770
1105
  },
1771
1106
  {
1772
1107
  "name": "update_epoch_duration",
1773
- "docs": [
1774
- "@notice Update epoch duration for rate limiting"
1775
- ],
1776
- "discriminator": [
1777
- 145,
1778
- 173,
1779
- 2,
1780
- 249,
1781
- 226,
1782
- 157,
1783
- 29,
1784
- 104
1785
- ],
1108
+ "docs": ["@notice Update epoch duration for rate limiting"],
1109
+ "discriminator": [145, 173, 2, 249, 226, 157, 29, 104],
1786
1110
  "accounts": [
1787
1111
  {
1788
1112
  "name": "config",
@@ -1791,14 +1115,7 @@
1791
1115
  "seeds": [
1792
1116
  {
1793
1117
  "kind": "const",
1794
- "value": [
1795
- 99,
1796
- 111,
1797
- 110,
1798
- 102,
1799
- 105,
1800
- 103
1801
- ]
1118
+ "value": [99, 111, 110, 102, 105, 103]
1802
1119
  }
1803
1120
  ]
1804
1121
  }
@@ -1811,23 +1128,8 @@
1811
1128
  {
1812
1129
  "kind": "const",
1813
1130
  "value": [
1814
- 114,
1815
- 97,
1816
- 116,
1817
- 101,
1818
- 95,
1819
- 108,
1820
- 105,
1821
- 109,
1822
- 105,
1823
- 116,
1824
- 95,
1825
- 99,
1826
- 111,
1827
- 110,
1828
- 102,
1829
- 105,
1830
- 103
1131
+ 114, 97, 116, 101, 95, 108, 105, 109, 105, 116, 95, 99, 111,
1132
+ 110, 102, 105, 103
1831
1133
  ]
1832
1134
  }
1833
1135
  ]
@@ -1852,16 +1154,7 @@
1852
1154
  },
1853
1155
  {
1854
1156
  "name": "update_tss",
1855
- "discriminator": [
1856
- 227,
1857
- 136,
1858
- 3,
1859
- 242,
1860
- 177,
1861
- 168,
1862
- 10,
1863
- 160
1864
- ],
1157
+ "discriminator": [227, 136, 3, 242, 177, 168, 10, 160],
1865
1158
  "accounts": [
1866
1159
  {
1867
1160
  "name": "tss_pda",
@@ -1870,14 +1163,7 @@
1870
1163
  "seeds": [
1871
1164
  {
1872
1165
  "kind": "const",
1873
- "value": [
1874
- 116,
1875
- 115,
1876
- 115,
1877
- 112,
1878
- 100,
1879
- 97
1880
- ]
1166
+ "value": [116, 115, 115]
1881
1167
  }
1882
1168
  ]
1883
1169
  }
@@ -1891,33 +1177,19 @@
1891
1177
  {
1892
1178
  "name": "tss_eth_address",
1893
1179
  "type": {
1894
- "array": [
1895
- "u8",
1896
- 20
1897
- ]
1180
+ "array": ["u8", 20]
1898
1181
  }
1899
1182
  },
1900
1183
  {
1901
1184
  "name": "chain_id",
1902
- "type": "string"
1185
+ "type": "u64"
1903
1186
  }
1904
1187
  ]
1905
1188
  },
1906
1189
  {
1907
1190
  "name": "whitelist_token",
1908
- "docs": [
1909
- "@notice Whitelist a token"
1910
- ],
1911
- "discriminator": [
1912
- 6,
1913
- 141,
1914
- 83,
1915
- 167,
1916
- 31,
1917
- 6,
1918
- 2,
1919
- 224
1920
- ],
1191
+ "docs": ["@notice Whitelist a token"],
1192
+ "discriminator": [6, 141, 83, 167, 31, 6, 2, 224],
1921
1193
  "accounts": [
1922
1194
  {
1923
1195
  "name": "config",
@@ -1926,14 +1198,7 @@
1926
1198
  "seeds": [
1927
1199
  {
1928
1200
  "kind": "const",
1929
- "value": [
1930
- 99,
1931
- 111,
1932
- 110,
1933
- 102,
1934
- 105,
1935
- 103
1936
- ]
1201
+ "value": [99, 111, 110, 102, 105, 103]
1937
1202
  }
1938
1203
  ]
1939
1204
  }
@@ -1945,17 +1210,7 @@
1945
1210
  "seeds": [
1946
1211
  {
1947
1212
  "kind": "const",
1948
- "value": [
1949
- 119,
1950
- 104,
1951
- 105,
1952
- 116,
1953
- 101,
1954
- 108,
1955
- 105,
1956
- 115,
1957
- 116
1958
- ]
1213
+ "value": [119, 104, 105, 116, 101, 108, 105, 115, 116]
1959
1214
  }
1960
1215
  ]
1961
1216
  }
@@ -1978,22 +1233,9 @@
1978
1233
  ]
1979
1234
  },
1980
1235
  {
1981
- "name": "withdraw",
1982
- "docs": [
1983
- "@notice TSS-verified withdraw of native SOL (EVM parity: `withdraw`)",
1984
- "@param tx_id Transaction ID for tracking",
1985
- "@param origin_caller Original caller on source chain (EVM address, 20 bytes)"
1986
- ],
1987
- "discriminator": [
1988
- 183,
1989
- 18,
1990
- 70,
1991
- 156,
1992
- 148,
1993
- 109,
1994
- 161,
1995
- 34
1996
- ],
1236
+ "name": "withdraw_spl_token_tss",
1237
+ "docs": ["@notice TSS-verified withdraw of SPL tokens"],
1238
+ "discriminator": [238, 209, 47, 229, 44, 234, 138, 198],
1997
1239
  "accounts": [
1998
1240
  {
1999
1241
  "name": "config",
@@ -2001,139 +1243,63 @@
2001
1243
  "seeds": [
2002
1244
  {
2003
1245
  "kind": "const",
2004
- "value": [
2005
- 99,
2006
- 111,
2007
- 110,
2008
- 102,
2009
- 105,
2010
- 103
2011
- ]
1246
+ "value": [99, 111, 110, 102, 105, 103]
2012
1247
  }
2013
1248
  ]
2014
1249
  }
2015
1250
  },
2016
1251
  {
2017
- "name": "vault",
2018
- "writable": true,
2019
- "pda": {
2020
- "seeds": [
2021
- {
2022
- "kind": "const",
2023
- "value": [
2024
- 118,
2025
- 97,
2026
- 117,
2027
- 108,
2028
- 116
2029
- ]
2030
- }
2031
- ]
2032
- }
1252
+ "name": "whitelist"
2033
1253
  },
2034
1254
  {
2035
- "name": "tss_pda",
1255
+ "name": "vault",
2036
1256
  "writable": true,
2037
1257
  "pda": {
2038
1258
  "seeds": [
2039
1259
  {
2040
1260
  "kind": "const",
2041
- "value": [
2042
- 116,
2043
- 115,
2044
- 115,
2045
- 112,
2046
- 100,
2047
- 97
2048
- ]
1261
+ "value": [118, 97, 117, 108, 116]
2049
1262
  }
2050
1263
  ]
2051
1264
  }
2052
1265
  },
2053
1266
  {
2054
- "name": "recipient",
1267
+ "name": "token_vault",
2055
1268
  "writable": true
2056
1269
  },
2057
1270
  {
2058
- "name": "executed_tx",
2059
- "docs": [
2060
- "Executed transaction tracker (EVM parity: isExecuted[txID])",
2061
- "PDA: [b\"executed_tx\", tx_id] - account existence = transaction executed",
2062
- "Standard Solana pattern (equivalent to Solidity mapping(bytes32 => bool))"
2063
- ],
1271
+ "name": "tss_pda",
2064
1272
  "writable": true,
2065
1273
  "pda": {
2066
1274
  "seeds": [
2067
1275
  {
2068
1276
  "kind": "const",
2069
- "value": [
2070
- 101,
2071
- 120,
2072
- 101,
2073
- 99,
2074
- 117,
2075
- 116,
2076
- 101,
2077
- 100,
2078
- 95,
2079
- 116,
2080
- 120
2081
- ]
2082
- },
2083
- {
2084
- "kind": "arg",
2085
- "path": "tx_id"
1277
+ "value": [116, 115, 115]
2086
1278
  }
2087
1279
  ]
2088
1280
  }
2089
1281
  },
2090
1282
  {
2091
- "name": "caller",
2092
- "docs": [
2093
- "The caller/relayer who pays for the transaction (including executed_tx account creation)"
2094
- ],
2095
- "writable": true,
2096
- "signer": true
1283
+ "name": "recipient_token_account",
1284
+ "writable": true
2097
1285
  },
2098
1286
  {
2099
- "name": "system_program",
2100
- "address": "11111111111111111111111111111111"
1287
+ "name": "token_mint"
1288
+ },
1289
+ {
1290
+ "name": "token_program",
1291
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
2101
1292
  }
2102
1293
  ],
2103
1294
  "args": [
2104
- {
2105
- "name": "tx_id",
2106
- "type": {
2107
- "array": [
2108
- "u8",
2109
- 32
2110
- ]
2111
- }
2112
- },
2113
- {
2114
- "name": "origin_caller",
2115
- "type": {
2116
- "array": [
2117
- "u8",
2118
- 20
2119
- ]
2120
- }
2121
- },
2122
1295
  {
2123
1296
  "name": "amount",
2124
1297
  "type": "u64"
2125
1298
  },
2126
- {
2127
- "name": "gas_fee",
2128
- "type": "u64"
2129
- },
2130
1299
  {
2131
1300
  "name": "signature",
2132
1301
  "type": {
2133
- "array": [
2134
- "u8",
2135
- 64
2136
- ]
1302
+ "array": ["u8", 64]
2137
1303
  }
2138
1304
  },
2139
1305
  {
@@ -2143,10 +1309,7 @@
2143
1309
  {
2144
1310
  "name": "message_hash",
2145
1311
  "type": {
2146
- "array": [
2147
- "u8",
2148
- 32
2149
- ]
1312
+ "array": ["u8", 32]
2150
1313
  }
2151
1314
  },
2152
1315
  {
@@ -2156,22 +1319,9 @@
2156
1319
  ]
2157
1320
  },
2158
1321
  {
2159
- "name": "withdraw_funds",
2160
- "docs": [
2161
- "@notice TSS-verified withdraw of SPL tokens (EVM parity: `withdrawFunds`)",
2162
- "@param tx_id Transaction ID for tracking",
2163
- "@param origin_caller Original caller on source chain (EVM address, 20 bytes)"
2164
- ],
2165
- "discriminator": [
2166
- 241,
2167
- 36,
2168
- 29,
2169
- 111,
2170
- 208,
2171
- 31,
2172
- 104,
2173
- 217
2174
- ],
1322
+ "name": "withdraw_tss",
1323
+ "docs": ["@notice TSS-verified withdraw of native SOL"],
1324
+ "discriminator": [112, 51, 93, 250, 136, 175, 118, 100],
2175
1325
  "accounts": [
2176
1326
  {
2177
1327
  "name": "config",
@@ -2179,21 +1329,11 @@
2179
1329
  "seeds": [
2180
1330
  {
2181
1331
  "kind": "const",
2182
- "value": [
2183
- 99,
2184
- 111,
2185
- 110,
2186
- 102,
2187
- 105,
2188
- 103
2189
- ]
1332
+ "value": [99, 111, 110, 102, 105, 103]
2190
1333
  }
2191
1334
  ]
2192
1335
  }
2193
1336
  },
2194
- {
2195
- "name": "whitelist"
2196
- },
2197
1337
  {
2198
1338
  "name": "vault",
2199
1339
  "writable": true,
@@ -2201,21 +1341,11 @@
2201
1341
  "seeds": [
2202
1342
  {
2203
1343
  "kind": "const",
2204
- "value": [
2205
- 118,
2206
- 97,
2207
- 117,
2208
- 108,
2209
- 116
2210
- ]
1344
+ "value": [118, 97, 117, 108, 116]
2211
1345
  }
2212
1346
  ]
2213
1347
  }
2214
1348
  },
2215
- {
2216
- "name": "token_vault",
2217
- "writable": true
2218
- },
2219
1349
  {
2220
1350
  "name": "tss_pda",
2221
1351
  "writable": true,
@@ -2223,128 +1353,29 @@
2223
1353
  "seeds": [
2224
1354
  {
2225
1355
  "kind": "const",
2226
- "value": [
2227
- 116,
2228
- 115,
2229
- 115,
2230
- 112,
2231
- 100,
2232
- 97
2233
- ]
2234
- }
2235
- ]
2236
- }
2237
- },
2238
- {
2239
- "name": "recipient_token_account",
2240
- "writable": true
2241
- },
2242
- {
2243
- "name": "token_mint"
2244
- },
2245
- {
2246
- "name": "executed_tx",
2247
- "docs": [
2248
- "Executed transaction tracker (EVM parity: isExecuted[txID])"
2249
- ],
2250
- "writable": true,
2251
- "pda": {
2252
- "seeds": [
2253
- {
2254
- "kind": "const",
2255
- "value": [
2256
- 101,
2257
- 120,
2258
- 101,
2259
- 99,
2260
- 117,
2261
- 116,
2262
- 101,
2263
- 100,
2264
- 95,
2265
- 116,
2266
- 120
2267
- ]
2268
- },
2269
- {
2270
- "kind": "arg",
2271
- "path": "tx_id"
2272
- }
2273
- ]
2274
- }
2275
- },
2276
- {
2277
- "name": "caller",
2278
- "docs": [
2279
- "The caller/relayer who pays for the transaction (including executed_tx account creation)"
2280
- ],
2281
- "writable": true,
2282
- "signer": true
2283
- },
2284
- {
2285
- "name": "vault_sol",
2286
- "docs": [
2287
- "Vault SOL PDA (needed for gas_fee transfer to caller)"
2288
- ],
2289
- "writable": true,
2290
- "pda": {
2291
- "seeds": [
2292
- {
2293
- "kind": "const",
2294
- "value": [
2295
- 118,
2296
- 97,
2297
- 117,
2298
- 108,
2299
- 116
2300
- ]
1356
+ "value": [116, 115, 115]
2301
1357
  }
2302
1358
  ]
2303
1359
  }
2304
1360
  },
2305
1361
  {
2306
- "name": "token_program",
2307
- "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
2308
- },
2309
- {
2310
- "name": "system_program",
2311
- "address": "11111111111111111111111111111111"
2312
- }
2313
- ],
2314
- "args": [
2315
- {
2316
- "name": "tx_id",
2317
- "type": {
2318
- "array": [
2319
- "u8",
2320
- 32
2321
- ]
2322
- }
2323
- },
2324
- {
2325
- "name": "origin_caller",
2326
- "type": {
2327
- "array": [
2328
- "u8",
2329
- 20
2330
- ]
2331
- }
1362
+ "name": "recipient",
1363
+ "writable": true
2332
1364
  },
2333
1365
  {
2334
- "name": "amount",
2335
- "type": "u64"
2336
- },
1366
+ "name": "system_program",
1367
+ "address": "11111111111111111111111111111111"
1368
+ }
1369
+ ],
1370
+ "args": [
2337
1371
  {
2338
- "name": "gas_fee",
1372
+ "name": "amount",
2339
1373
  "type": "u64"
2340
1374
  },
2341
1375
  {
2342
1376
  "name": "signature",
2343
1377
  "type": {
2344
- "array": [
2345
- "u8",
2346
- 64
2347
- ]
1378
+ "array": ["u8", 64]
2348
1379
  }
2349
1380
  },
2350
1381
  {
@@ -2354,10 +1385,7 @@
2354
1385
  {
2355
1386
  "name": "message_hash",
2356
1387
  "type": {
2357
- "array": [
2358
- "u8",
2359
- 32
2360
- ]
1388
+ "array": ["u8", 32]
2361
1389
  }
2362
1390
  },
2363
1391
  {
@@ -2370,213 +1398,61 @@
2370
1398
  "accounts": [
2371
1399
  {
2372
1400
  "name": "Config",
2373
- "discriminator": [
2374
- 155,
2375
- 12,
2376
- 170,
2377
- 224,
2378
- 30,
2379
- 250,
2380
- 204,
2381
- 130
2382
- ]
2383
- },
2384
- {
2385
- "name": "ExecutedTx",
2386
- "discriminator": [
2387
- 57,
2388
- 204,
2389
- 8,
2390
- 150,
2391
- 49,
2392
- 18,
2393
- 183,
2394
- 38
2395
- ]
1401
+ "discriminator": [155, 12, 170, 224, 30, 250, 204, 130]
2396
1402
  },
2397
1403
  {
2398
1404
  "name": "PriceUpdateV2",
2399
- "discriminator": [
2400
- 34,
2401
- 241,
2402
- 35,
2403
- 99,
2404
- 157,
2405
- 126,
2406
- 244,
2407
- 205
2408
- ]
1405
+ "discriminator": [34, 241, 35, 99, 157, 126, 244, 205]
2409
1406
  },
2410
1407
  {
2411
1408
  "name": "RateLimitConfig",
2412
- "discriminator": [
2413
- 172,
2414
- 233,
2415
- 8,
2416
- 17,
2417
- 15,
2418
- 174,
2419
- 216,
2420
- 176
2421
- ]
1409
+ "discriminator": [172, 233, 8, 17, 15, 174, 216, 176]
2422
1410
  },
2423
1411
  {
2424
1412
  "name": "TokenRateLimit",
2425
- "discriminator": [
2426
- 129,
2427
- 99,
2428
- 70,
2429
- 230,
2430
- 57,
2431
- 181,
2432
- 132,
2433
- 97
2434
- ]
1413
+ "discriminator": [129, 99, 70, 230, 57, 181, 132, 97]
2435
1414
  },
2436
1415
  {
2437
1416
  "name": "TokenWhitelist",
2438
- "discriminator": [
2439
- 105,
2440
- 240,
2441
- 104,
2442
- 47,
2443
- 95,
2444
- 13,
2445
- 48,
2446
- 78
2447
- ]
1417
+ "discriminator": [105, 240, 104, 47, 95, 13, 48, 78]
2448
1418
  },
2449
1419
  {
2450
1420
  "name": "TssPda",
2451
- "discriminator": [
2452
- 121,
2453
- 138,
2454
- 162,
2455
- 251,
2456
- 127,
2457
- 95,
2458
- 238,
2459
- 135
2460
- ]
1421
+ "discriminator": [121, 138, 162, 251, 127, 95, 238, 135]
2461
1422
  }
2462
1423
  ],
2463
1424
  "events": [
2464
1425
  {
2465
1426
  "name": "BlockUsdCapUpdated",
2466
- "discriminator": [
2467
- 69,
2468
- 44,
2469
- 151,
2470
- 48,
2471
- 36,
2472
- 74,
2473
- 176,
2474
- 194
2475
- ]
1427
+ "discriminator": [69, 44, 151, 48, 36, 74, 176, 194]
2476
1428
  },
2477
1429
  {
2478
1430
  "name": "CapsUpdated",
2479
- "discriminator": [
2480
- 147,
2481
- 181,
2482
- 117,
2483
- 249,
2484
- 72,
2485
- 147,
2486
- 156,
2487
- 255
2488
- ]
1431
+ "discriminator": [147, 181, 117, 249, 72, 147, 156, 255]
2489
1432
  },
2490
1433
  {
2491
1434
  "name": "EpochDurationUpdated",
2492
- "discriminator": [
2493
- 167,
2494
- 122,
2495
- 82,
2496
- 178,
2497
- 133,
2498
- 191,
2499
- 19,
2500
- 129
2501
- ]
1435
+ "discriminator": [167, 122, 82, 178, 133, 191, 19, 129]
2502
1436
  },
2503
1437
  {
2504
- "name": "RevertUniversalTx",
2505
- "discriminator": [
2506
- 249,
2507
- 74,
2508
- 39,
2509
- 203,
2510
- 149,
2511
- 54,
2512
- 48,
2513
- 186
2514
- ]
1438
+ "name": "FundsAddedEvent",
1439
+ "discriminator": [127, 31, 108, 255, 187, 19, 70, 68]
2515
1440
  },
2516
1441
  {
2517
1442
  "name": "TSSAddressUpdated",
2518
- "discriminator": [
2519
- 157,
2520
- 148,
2521
- 149,
2522
- 250,
2523
- 42,
2524
- 118,
2525
- 17,
2526
- 232
2527
- ]
1443
+ "discriminator": [157, 148, 149, 250, 42, 118, 17, 232]
2528
1444
  },
2529
1445
  {
2530
1446
  "name": "TokenRateLimitUpdated",
2531
- "discriminator": [
2532
- 73,
2533
- 75,
2534
- 54,
2535
- 189,
2536
- 59,
2537
- 130,
2538
- 39,
2539
- 59
2540
- ]
1447
+ "discriminator": [73, 75, 54, 189, 59, 130, 39, 59]
2541
1448
  },
2542
1449
  {
2543
1450
  "name": "UniversalTx",
2544
- "discriminator": [
2545
- 108,
2546
- 154,
2547
- 216,
2548
- 41,
2549
- 181,
2550
- 234,
2551
- 29,
2552
- 124
2553
- ]
1451
+ "discriminator": [108, 154, 216, 41, 181, 234, 29, 124]
2554
1452
  },
2555
1453
  {
2556
- "name": "UniversalTxExecuted",
2557
- "discriminator": [
2558
- 85,
2559
- 124,
2560
- 2,
2561
- 217,
2562
- 112,
2563
- 75,
2564
- 63,
2565
- 203
2566
- ]
2567
- },
2568
- {
2569
- "name": "WithdrawToken",
2570
- "discriminator": [
2571
- 65,
2572
- 183,
2573
- 107,
2574
- 32,
2575
- 149,
2576
- 183,
2577
- 215,
2578
- 129
2579
- ]
1454
+ "name": "WithdrawFunds",
1455
+ "discriminator": [4, 77, 4, 28, 115, 6, 39, 233]
2580
1456
  }
2581
1457
  ],
2582
1458
  "errors": [
@@ -2622,138 +1498,103 @@
2622
1498
  },
2623
1499
  {
2624
1500
  "code": 6008,
2625
- "name": "InvalidPrice",
2626
- "msg": "Invalid price data"
1501
+ "name": "InvalidPayload",
1502
+ "msg": "Invalid payload"
2627
1503
  },
2628
1504
  {
2629
1505
  "code": 6009,
2630
- "name": "TokenAlreadyWhitelisted",
2631
- "msg": "Token already whitelisted"
1506
+ "name": "DeadlineExceeded",
1507
+ "msg": "Deadline exceeded"
2632
1508
  },
2633
1509
  {
2634
1510
  "code": 6010,
2635
- "name": "TokenNotWhitelisted",
2636
- "msg": "Token not whitelisted"
1511
+ "name": "InvalidPrice",
1512
+ "msg": "Invalid price data"
2637
1513
  },
2638
1514
  {
2639
1515
  "code": 6011,
2640
- "name": "InvalidOwner",
2641
- "msg": "Invalid owner"
1516
+ "name": "TokenAlreadyWhitelisted",
1517
+ "msg": "Token already whitelisted"
2642
1518
  },
2643
1519
  {
2644
1520
  "code": 6012,
2645
- "name": "Paused",
2646
- "msg": "Contract is paused"
1521
+ "name": "TokenNotWhitelisted",
1522
+ "msg": "Token not whitelisted"
2647
1523
  },
2648
1524
  {
2649
1525
  "code": 6013,
2650
- "name": "InvalidInput",
2651
- "msg": "Invalid input"
1526
+ "name": "TokenTransferFailed",
1527
+ "msg": "Token transfer failed"
2652
1528
  },
2653
1529
  {
2654
1530
  "code": 6014,
2655
- "name": "InvalidTxType",
2656
- "msg": "Invalid transaction type"
1531
+ "name": "InvalidTokenVault",
1532
+ "msg": "Invalid token vault"
2657
1533
  },
2658
1534
  {
2659
1535
  "code": 6015,
2660
- "name": "InvalidMint",
2661
- "msg": "Invalid mint"
1536
+ "name": "InvalidOwner",
1537
+ "msg": "Invalid owner"
2662
1538
  },
2663
1539
  {
2664
1540
  "code": 6016,
2665
- "name": "InsufficientBalance",
2666
- "msg": "Insufficient balance"
1541
+ "name": "SlippageExceededOrExpired",
1542
+ "msg": "Slippage exceeded or expired"
2667
1543
  },
2668
1544
  {
2669
1545
  "code": 6017,
2670
- "name": "InvalidToken",
2671
- "msg": "Invalid token"
1546
+ "name": "Paused",
1547
+ "msg": "Contract is paused"
2672
1548
  },
2673
1549
  {
2674
1550
  "code": 6018,
2675
- "name": "BlockUsdCapExceeded",
2676
- "msg": "Block USD cap exceeded"
1551
+ "name": "InvalidInput",
1552
+ "msg": "Invalid input"
2677
1553
  },
2678
1554
  {
2679
1555
  "code": 6019,
2680
- "name": "RateLimitExceeded",
2681
- "msg": "Rate limit exceeded"
1556
+ "name": "InvalidTxType",
1557
+ "msg": "Invalid transaction type"
2682
1558
  },
2683
1559
  {
2684
1560
  "code": 6020,
2685
- "name": "InvalidAccount",
2686
- "msg": "Invalid account"
1561
+ "name": "InvalidData",
1562
+ "msg": "Invalid data"
2687
1563
  },
2688
1564
  {
2689
1565
  "code": 6021,
2690
- "name": "NotSupported",
2691
- "msg": "Token not supported"
1566
+ "name": "InvalidMint",
1567
+ "msg": "Invalid mint"
2692
1568
  },
2693
1569
  {
2694
1570
  "code": 6022,
2695
- "name": "MessageHashMismatch",
2696
- "msg": "Message hash mismatch"
1571
+ "name": "InsufficientBalance",
1572
+ "msg": "Insufficient balance"
2697
1573
  },
2698
1574
  {
2699
1575
  "code": 6023,
2700
- "name": "TssAuthFailed",
2701
- "msg": "TSS authentication failed"
1576
+ "name": "InvalidToken",
1577
+ "msg": "Invalid token"
2702
1578
  },
2703
1579
  {
2704
1580
  "code": 6024,
2705
- "name": "NonceMismatch",
2706
- "msg": "Nonce mismatch"
1581
+ "name": "BlockUsdCapExceeded",
1582
+ "msg": "Block USD cap exceeded"
2707
1583
  },
2708
1584
  {
2709
1585
  "code": 6025,
2710
- "name": "AccountListLengthMismatch",
2711
- "msg": "Account list length mismatch"
1586
+ "name": "RateLimitExceeded",
1587
+ "msg": "Rate limit exceeded"
2712
1588
  },
2713
1589
  {
2714
1590
  "code": 6026,
2715
- "name": "AccountPubkeyMismatch",
2716
- "msg": "Account pubkey mismatch"
1591
+ "name": "InvalidAccount",
1592
+ "msg": "Invalid account"
2717
1593
  },
2718
1594
  {
2719
1595
  "code": 6027,
2720
- "name": "AccountWritableFlagMismatch",
2721
- "msg": "Account writable flag mismatch"
2722
- },
2723
- {
2724
- "code": 6028,
2725
- "name": "UnexpectedOuterSigner",
2726
- "msg": "Unexpected outer signer in remaining accounts"
2727
- },
2728
- {
2729
- "code": 6029,
2730
- "name": "TargetProgramMismatch",
2731
- "msg": "Target program mismatch"
2732
- },
2733
- {
2734
- "code": 6030,
2735
- "name": "InvalidProgram",
2736
- "msg": "Destination program is not executable"
2737
- },
2738
- {
2739
- "code": 6031,
2740
- "name": "PayloadExecuted",
2741
- "msg": "Payload already executed"
2742
- },
2743
- {
2744
- "code": 6032,
2745
- "name": "SerializationError",
2746
- "msg": "Serialization error"
2747
- },
2748
- {
2749
- "code": 6033,
2750
- "name": "NoWritableRecipient",
2751
- "msg": "No writable recipient found in accounts"
2752
- },
2753
- {
2754
- "code": 6034,
2755
- "name": "InvalidInstruction",
2756
- "msg": "Invalid instruction"
1596
+ "name": "NotSupported",
1597
+ "msg": "Token not supported"
2757
1598
  }
2758
1599
  ],
2759
1600
  "types": [
@@ -2869,33 +1710,35 @@
2869
1710
  }
2870
1711
  },
2871
1712
  {
2872
- "name": "ExecutedTx",
2873
- "docs": [
2874
- "Executed transaction tracker (parity with EVM `isExecuted[txID]` mapping).",
2875
- "PDA: `[b\"executed_tx\", tx_id]`.",
2876
- "Account existence = transaction executed (replay protection via `init` constraint)."
2877
- ],
2878
- "type": {
2879
- "kind": "struct",
2880
- "fields": []
2881
- }
2882
- },
2883
- {
2884
- "name": "GatewayAccountMeta",
1713
+ "name": "FundsAddedEvent",
2885
1714
  "docs": [
2886
- "Account metadata for execute messages (no isSigner in payload).",
2887
- "Off-chain builds this from target instruction's account list."
1715
+ "Legacy event for fee-abstraction route (locker-compatible).",
1716
+ "Matches `pushsolanalocker` `FundsAddedEvent` exactly for offchain compatibility."
2888
1717
  ],
2889
1718
  "type": {
2890
1719
  "kind": "struct",
2891
1720
  "fields": [
2892
1721
  {
2893
- "name": "pubkey",
1722
+ "name": "user",
2894
1723
  "type": "pubkey"
2895
1724
  },
2896
1725
  {
2897
- "name": "is_writable",
2898
- "type": "bool"
1726
+ "name": "sol_amount",
1727
+ "type": "u64"
1728
+ },
1729
+ {
1730
+ "name": "usd_equivalent",
1731
+ "type": "i128"
1732
+ },
1733
+ {
1734
+ "name": "usd_exponent",
1735
+ "type": "i32"
1736
+ },
1737
+ {
1738
+ "name": "transaction_hash",
1739
+ "type": {
1740
+ "array": ["u8", 32]
1741
+ }
2899
1742
  }
2900
1743
  ]
2901
1744
  }
@@ -2938,10 +1781,7 @@
2938
1781
  "`FeedId` but avoid the type alias because of compatibility issues with Anchor's `idl-build` feature."
2939
1782
  ],
2940
1783
  "type": {
2941
- "array": [
2942
- "u8",
2943
- 32
2944
- ]
1784
+ "array": ["u8", 32]
2945
1785
  }
2946
1786
  },
2947
1787
  {
@@ -2958,9 +1798,7 @@
2958
1798
  },
2959
1799
  {
2960
1800
  "name": "publish_time",
2961
- "docs": [
2962
- "The timestamp of this price update in seconds"
2963
- ],
1801
+ "docs": ["The timestamp of this price update in seconds"],
2964
1802
  "type": "i64"
2965
1803
  },
2966
1804
  {
@@ -3083,46 +1921,6 @@
3083
1921
  ]
3084
1922
  }
3085
1923
  },
3086
- {
3087
- "name": "RevertUniversalTx",
3088
- "docs": [
3089
- "Revert withdraw event (parity with EVM `RevertUniversalTx`)."
3090
- ],
3091
- "type": {
3092
- "kind": "struct",
3093
- "fields": [
3094
- {
3095
- "name": "tx_id",
3096
- "type": {
3097
- "array": [
3098
- "u8",
3099
- 32
3100
- ]
3101
- }
3102
- },
3103
- {
3104
- "name": "fund_recipient",
3105
- "type": "pubkey"
3106
- },
3107
- {
3108
- "name": "token",
3109
- "type": "pubkey"
3110
- },
3111
- {
3112
- "name": "amount",
3113
- "type": "u64"
3114
- },
3115
- {
3116
- "name": "revert_instruction",
3117
- "type": {
3118
- "defined": {
3119
- "name": "RevertInstructions"
3120
- }
3121
- }
3122
- }
3123
- ]
3124
- }
3125
- },
3126
1924
  {
3127
1925
  "name": "TSSAddressUpdated",
3128
1926
  "type": {
@@ -3213,7 +2011,7 @@
3213
2011
  "name": "TssPda",
3214
2012
  "docs": [
3215
2013
  "TSS state PDA for ECDSA verification (Ethereum-style secp256k1).",
3216
- "Stores 20-byte ETH address, chain id (Solana cluster pubkey as String), and replay-protection nonce."
2014
+ "Stores 20-byte ETH address, chain id, and replay-protection nonce."
3217
2015
  ],
3218
2016
  "type": {
3219
2017
  "kind": "struct",
@@ -3221,15 +2019,12 @@
3221
2019
  {
3222
2020
  "name": "tss_eth_address",
3223
2021
  "type": {
3224
- "array": [
3225
- "u8",
3226
- 20
3227
- ]
2022
+ "array": ["u8", 20]
3228
2023
  }
3229
2024
  },
3230
2025
  {
3231
2026
  "name": "chain_id",
3232
- "type": "string"
2027
+ "type": "u64"
3233
2028
  },
3234
2029
  {
3235
2030
  "name": "nonce",
@@ -3271,92 +2066,78 @@
3271
2066
  }
3272
2067
  },
3273
2068
  {
3274
- "name": "UniversalTx",
2069
+ "name": "UniversalPayload",
3275
2070
  "docs": [
3276
- "Universal transaction event (parity with EVM V0 `UniversalTx`).",
3277
- "Single event for both gas funding and funds movement."
2071
+ "Universal payload for cross-chain execution (parity with EVM `UniversalPayload`).",
2072
+ "Serialized and hashed for event parity with EVM (payload bytes/hash)."
3278
2073
  ],
3279
2074
  "type": {
3280
2075
  "kind": "struct",
3281
2076
  "fields": [
3282
2077
  {
3283
- "name": "sender",
3284
- "type": "pubkey"
3285
- },
3286
- {
3287
- "name": "recipient",
2078
+ "name": "to",
3288
2079
  "type": {
3289
- "array": [
3290
- "u8",
3291
- 20
3292
- ]
2080
+ "array": ["u8", 20]
3293
2081
  }
3294
2082
  },
3295
2083
  {
3296
- "name": "token",
3297
- "type": "pubkey"
2084
+ "name": "value",
2085
+ "type": "u64"
3298
2086
  },
3299
2087
  {
3300
- "name": "amount",
2088
+ "name": "data",
2089
+ "type": "bytes"
2090
+ },
2091
+ {
2092
+ "name": "gas_limit",
3301
2093
  "type": "u64"
3302
2094
  },
3303
2095
  {
3304
- "name": "payload",
3305
- "type": "bytes"
2096
+ "name": "max_fee_per_gas",
2097
+ "type": "u64"
3306
2098
  },
3307
2099
  {
3308
- "name": "revert_instruction",
3309
- "type": {
3310
- "defined": {
3311
- "name": "RevertInstructions"
3312
- }
3313
- }
2100
+ "name": "max_priority_fee_per_gas",
2101
+ "type": "u64"
3314
2102
  },
3315
2103
  {
3316
- "name": "tx_type",
2104
+ "name": "nonce",
2105
+ "type": "u64"
2106
+ },
2107
+ {
2108
+ "name": "deadline",
2109
+ "type": "i64"
2110
+ },
2111
+ {
2112
+ "name": "v_type",
3317
2113
  "type": {
3318
2114
  "defined": {
3319
- "name": "TxType"
2115
+ "name": "VerificationType"
3320
2116
  }
3321
2117
  }
3322
- },
3323
- {
3324
- "name": "signature_data",
3325
- "type": "bytes"
3326
2118
  }
3327
2119
  ]
3328
2120
  }
3329
2121
  },
3330
2122
  {
3331
- "name": "UniversalTxExecuted",
2123
+ "name": "UniversalTx",
3332
2124
  "docs": [
3333
- "Execute event (parity with EVM `UniversalTxExecuted`)."
2125
+ "Universal transaction event (parity with EVM V0 `UniversalTx`).",
2126
+ "Single event for both gas funding and funds movement."
3334
2127
  ],
3335
2128
  "type": {
3336
2129
  "kind": "struct",
3337
2130
  "fields": [
3338
2131
  {
3339
- "name": "tx_id",
3340
- "type": {
3341
- "array": [
3342
- "u8",
3343
- 32
3344
- ]
3345
- }
2132
+ "name": "sender",
2133
+ "type": "pubkey"
3346
2134
  },
3347
2135
  {
3348
- "name": "sender",
2136
+ "name": "recipient",
3349
2137
  "type": {
3350
- "array": [
3351
- "u8",
3352
- 20
3353
- ]
2138
+ "array": ["u8", 20]
3354
2139
  }
3355
2140
  },
3356
- {
3357
- "name": "target",
3358
- "type": "pubkey"
3359
- },
3360
2141
  {
3361
2142
  "name": "token",
3362
2143
  "type": "pubkey"
@@ -3368,6 +2149,26 @@
3368
2149
  {
3369
2150
  "name": "payload",
3370
2151
  "type": "bytes"
2152
+ },
2153
+ {
2154
+ "name": "revert_instruction",
2155
+ "type": {
2156
+ "defined": {
2157
+ "name": "RevertInstructions"
2158
+ }
2159
+ }
2160
+ },
2161
+ {
2162
+ "name": "tx_type",
2163
+ "type": {
2164
+ "defined": {
2165
+ "name": "TxType"
2166
+ }
2167
+ }
2168
+ },
2169
+ {
2170
+ "name": "signature_data",
2171
+ "type": "bytes"
3371
2172
  }
3372
2173
  ]
3373
2174
  }
@@ -3383,10 +2184,7 @@
3383
2184
  {
3384
2185
  "name": "recipient",
3385
2186
  "type": {
3386
- "array": [
3387
- "u8",
3388
- 20
3389
- ]
2187
+ "array": ["u8", 20]
3390
2188
  }
3391
2189
  },
3392
2190
  {
@@ -3450,42 +2248,37 @@
3450
2248
  }
3451
2249
  },
3452
2250
  {
3453
- "name": "WithdrawToken",
3454
- "docs": [
3455
- "Withdraw event (parity with EVM `WithdrawToken`)."
3456
- ],
2251
+ "name": "VerificationType",
2252
+ "docs": ["Verification types for payload execution (parity with EVM)."],
3457
2253
  "type": {
3458
- "kind": "struct",
3459
- "fields": [
3460
- {
3461
- "name": "tx_id",
3462
- "type": {
3463
- "array": [
3464
- "u8",
3465
- 32
3466
- ]
3467
- }
3468
- },
2254
+ "kind": "enum",
2255
+ "variants": [
3469
2256
  {
3470
- "name": "origin_caller",
3471
- "type": {
3472
- "array": [
3473
- "u8",
3474
- 20
3475
- ]
3476
- }
2257
+ "name": "SignedVerification"
3477
2258
  },
3478
2259
  {
3479
- "name": "token",
3480
- "type": "pubkey"
3481
- },
2260
+ "name": "UniversalTxVerification"
2261
+ }
2262
+ ]
2263
+ }
2264
+ },
2265
+ {
2266
+ "name": "WithdrawFunds",
2267
+ "docs": ["Withdraw event (parity with EVM `WithdrawFunds`)."],
2268
+ "type": {
2269
+ "kind": "struct",
2270
+ "fields": [
3482
2271
  {
3483
- "name": "to",
2272
+ "name": "recipient",
3484
2273
  "type": "pubkey"
3485
2274
  },
3486
2275
  {
3487
2276
  "name": "amount",
3488
2277
  "type": "u64"
2278
+ },
2279
+ {
2280
+ "name": "token",
2281
+ "type": "pubkey"
3489
2282
  }
3490
2283
  ]
3491
2284
  }