@layerzerolabs/stellar-ts-bindings-gen 0.2.65

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.
package/Cargo.lock ADDED
@@ -0,0 +1,976 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "android_system_properties"
7
+ version = "0.1.5"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
10
+ dependencies = [
11
+ "libc",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "anyhow"
16
+ version = "1.0.102"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
19
+
20
+ [[package]]
21
+ name = "autocfg"
22
+ version = "1.5.0"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
25
+
26
+ [[package]]
27
+ name = "base64"
28
+ version = "0.21.7"
29
+ source = "registry+https://github.com/rust-lang/crates.io-index"
30
+ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
31
+
32
+ [[package]]
33
+ name = "base64"
34
+ version = "0.22.1"
35
+ source = "registry+https://github.com/rust-lang/crates.io-index"
36
+ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
37
+
38
+ [[package]]
39
+ name = "block-buffer"
40
+ version = "0.9.0"
41
+ source = "registry+https://github.com/rust-lang/crates.io-index"
42
+ checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
43
+ dependencies = [
44
+ "generic-array",
45
+ ]
46
+
47
+ [[package]]
48
+ name = "block-buffer"
49
+ version = "0.10.4"
50
+ source = "registry+https://github.com/rust-lang/crates.io-index"
51
+ checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
52
+ dependencies = [
53
+ "generic-array",
54
+ ]
55
+
56
+ [[package]]
57
+ name = "bumpalo"
58
+ version = "3.20.2"
59
+ source = "registry+https://github.com/rust-lang/crates.io-index"
60
+ checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
61
+
62
+ [[package]]
63
+ name = "cc"
64
+ version = "1.2.56"
65
+ source = "registry+https://github.com/rust-lang/crates.io-index"
66
+ checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2"
67
+ dependencies = [
68
+ "find-msvc-tools",
69
+ "shlex",
70
+ ]
71
+
72
+ [[package]]
73
+ name = "cfg-if"
74
+ version = "1.0.4"
75
+ source = "registry+https://github.com/rust-lang/crates.io-index"
76
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
77
+
78
+ [[package]]
79
+ name = "cfg_eval"
80
+ version = "0.1.2"
81
+ source = "registry+https://github.com/rust-lang/crates.io-index"
82
+ checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f"
83
+ dependencies = [
84
+ "proc-macro2",
85
+ "quote",
86
+ "syn",
87
+ ]
88
+
89
+ [[package]]
90
+ name = "chrono"
91
+ version = "0.4.44"
92
+ source = "registry+https://github.com/rust-lang/crates.io-index"
93
+ checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0"
94
+ dependencies = [
95
+ "iana-time-zone",
96
+ "num-traits",
97
+ "serde",
98
+ "windows-link",
99
+ ]
100
+
101
+ [[package]]
102
+ name = "core-foundation-sys"
103
+ version = "0.8.7"
104
+ source = "registry+https://github.com/rust-lang/crates.io-index"
105
+ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
106
+
107
+ [[package]]
108
+ name = "cpufeatures"
109
+ version = "0.2.17"
110
+ source = "registry+https://github.com/rust-lang/crates.io-index"
111
+ checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
112
+ dependencies = [
113
+ "libc",
114
+ ]
115
+
116
+ [[package]]
117
+ name = "crate-git-revision"
118
+ version = "0.0.6"
119
+ source = "registry+https://github.com/rust-lang/crates.io-index"
120
+ checksum = "c521bf1f43d31ed2f73441775ed31935d77901cb3451e44b38a1c1612fcbaf98"
121
+ dependencies = [
122
+ "serde",
123
+ "serde_derive",
124
+ "serde_json",
125
+ ]
126
+
127
+ [[package]]
128
+ name = "crypto-common"
129
+ version = "0.1.7"
130
+ source = "registry+https://github.com/rust-lang/crates.io-index"
131
+ checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
132
+ dependencies = [
133
+ "generic-array",
134
+ "typenum",
135
+ ]
136
+
137
+ [[package]]
138
+ name = "darling"
139
+ version = "0.21.3"
140
+ source = "registry+https://github.com/rust-lang/crates.io-index"
141
+ checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
142
+ dependencies = [
143
+ "darling_core",
144
+ "darling_macro",
145
+ ]
146
+
147
+ [[package]]
148
+ name = "darling_core"
149
+ version = "0.21.3"
150
+ source = "registry+https://github.com/rust-lang/crates.io-index"
151
+ checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4"
152
+ dependencies = [
153
+ "fnv",
154
+ "ident_case",
155
+ "proc-macro2",
156
+ "quote",
157
+ "strsim",
158
+ "syn",
159
+ ]
160
+
161
+ [[package]]
162
+ name = "darling_macro"
163
+ version = "0.21.3"
164
+ source = "registry+https://github.com/rust-lang/crates.io-index"
165
+ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
166
+ dependencies = [
167
+ "darling_core",
168
+ "quote",
169
+ "syn",
170
+ ]
171
+
172
+ [[package]]
173
+ name = "data-encoding"
174
+ version = "2.10.0"
175
+ source = "registry+https://github.com/rust-lang/crates.io-index"
176
+ checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea"
177
+
178
+ [[package]]
179
+ name = "deranged"
180
+ version = "0.5.8"
181
+ source = "registry+https://github.com/rust-lang/crates.io-index"
182
+ checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
183
+ dependencies = [
184
+ "powerfmt",
185
+ "serde_core",
186
+ ]
187
+
188
+ [[package]]
189
+ name = "digest"
190
+ version = "0.9.0"
191
+ source = "registry+https://github.com/rust-lang/crates.io-index"
192
+ checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
193
+ dependencies = [
194
+ "generic-array",
195
+ ]
196
+
197
+ [[package]]
198
+ name = "digest"
199
+ version = "0.10.7"
200
+ source = "registry+https://github.com/rust-lang/crates.io-index"
201
+ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
202
+ dependencies = [
203
+ "block-buffer 0.10.4",
204
+ "crypto-common",
205
+ ]
206
+
207
+ [[package]]
208
+ name = "dyn-clone"
209
+ version = "1.0.20"
210
+ source = "registry+https://github.com/rust-lang/crates.io-index"
211
+ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
212
+
213
+ [[package]]
214
+ name = "either"
215
+ version = "1.15.0"
216
+ source = "registry+https://github.com/rust-lang/crates.io-index"
217
+ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
218
+
219
+ [[package]]
220
+ name = "equivalent"
221
+ version = "1.0.2"
222
+ source = "registry+https://github.com/rust-lang/crates.io-index"
223
+ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
224
+
225
+ [[package]]
226
+ name = "escape-bytes"
227
+ version = "0.1.1"
228
+ source = "registry+https://github.com/rust-lang/crates.io-index"
229
+ checksum = "2bfcf67fea2815c2fc3b90873fae90957be12ff417335dfadc7f52927feb03b2"
230
+
231
+ [[package]]
232
+ name = "ethnum"
233
+ version = "1.5.2"
234
+ source = "registry+https://github.com/rust-lang/crates.io-index"
235
+ checksum = "ca81e6b4777c89fd810c25a4be2b1bd93ea034fbe58e6a75216a34c6b82c539b"
236
+
237
+ [[package]]
238
+ name = "find-msvc-tools"
239
+ version = "0.1.9"
240
+ source = "registry+https://github.com/rust-lang/crates.io-index"
241
+ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
242
+
243
+ [[package]]
244
+ name = "fnv"
245
+ version = "1.0.7"
246
+ source = "registry+https://github.com/rust-lang/crates.io-index"
247
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
248
+
249
+ [[package]]
250
+ name = "generic-array"
251
+ version = "0.14.7"
252
+ source = "registry+https://github.com/rust-lang/crates.io-index"
253
+ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
254
+ dependencies = [
255
+ "typenum",
256
+ "version_check",
257
+ ]
258
+
259
+ [[package]]
260
+ name = "glob"
261
+ version = "0.3.3"
262
+ source = "registry+https://github.com/rust-lang/crates.io-index"
263
+ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
264
+
265
+ [[package]]
266
+ name = "hashbrown"
267
+ version = "0.12.3"
268
+ source = "registry+https://github.com/rust-lang/crates.io-index"
269
+ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
270
+
271
+ [[package]]
272
+ name = "hashbrown"
273
+ version = "0.16.1"
274
+ source = "registry+https://github.com/rust-lang/crates.io-index"
275
+ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
276
+
277
+ [[package]]
278
+ name = "heck"
279
+ version = "0.4.1"
280
+ source = "registry+https://github.com/rust-lang/crates.io-index"
281
+ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
282
+
283
+ [[package]]
284
+ name = "hex"
285
+ version = "0.4.3"
286
+ source = "registry+https://github.com/rust-lang/crates.io-index"
287
+ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
288
+ dependencies = [
289
+ "serde",
290
+ ]
291
+
292
+ [[package]]
293
+ name = "iana-time-zone"
294
+ version = "0.1.65"
295
+ source = "registry+https://github.com/rust-lang/crates.io-index"
296
+ checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
297
+ dependencies = [
298
+ "android_system_properties",
299
+ "core-foundation-sys",
300
+ "iana-time-zone-haiku",
301
+ "js-sys",
302
+ "log",
303
+ "wasm-bindgen",
304
+ "windows-core",
305
+ ]
306
+
307
+ [[package]]
308
+ name = "iana-time-zone-haiku"
309
+ version = "0.1.2"
310
+ source = "registry+https://github.com/rust-lang/crates.io-index"
311
+ checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
312
+ dependencies = [
313
+ "cc",
314
+ ]
315
+
316
+ [[package]]
317
+ name = "ident_case"
318
+ version = "1.0.1"
319
+ source = "registry+https://github.com/rust-lang/crates.io-index"
320
+ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
321
+
322
+ [[package]]
323
+ name = "include_dir"
324
+ version = "0.7.4"
325
+ source = "registry+https://github.com/rust-lang/crates.io-index"
326
+ checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd"
327
+ dependencies = [
328
+ "glob",
329
+ "include_dir_macros",
330
+ ]
331
+
332
+ [[package]]
333
+ name = "include_dir_macros"
334
+ version = "0.7.4"
335
+ source = "registry+https://github.com/rust-lang/crates.io-index"
336
+ checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75"
337
+ dependencies = [
338
+ "proc-macro2",
339
+ "quote",
340
+ ]
341
+
342
+ [[package]]
343
+ name = "indexmap"
344
+ version = "1.9.3"
345
+ source = "registry+https://github.com/rust-lang/crates.io-index"
346
+ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
347
+ dependencies = [
348
+ "autocfg",
349
+ "hashbrown 0.12.3",
350
+ "serde",
351
+ ]
352
+
353
+ [[package]]
354
+ name = "indexmap"
355
+ version = "2.13.0"
356
+ source = "registry+https://github.com/rust-lang/crates.io-index"
357
+ checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
358
+ dependencies = [
359
+ "equivalent",
360
+ "hashbrown 0.16.1",
361
+ "serde",
362
+ "serde_core",
363
+ ]
364
+
365
+ [[package]]
366
+ name = "itertools"
367
+ version = "0.10.5"
368
+ source = "registry+https://github.com/rust-lang/crates.io-index"
369
+ checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
370
+ dependencies = [
371
+ "either",
372
+ ]
373
+
374
+ [[package]]
375
+ name = "itoa"
376
+ version = "1.0.17"
377
+ source = "registry+https://github.com/rust-lang/crates.io-index"
378
+ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
379
+
380
+ [[package]]
381
+ name = "js-sys"
382
+ version = "0.3.91"
383
+ source = "registry+https://github.com/rust-lang/crates.io-index"
384
+ checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"
385
+ dependencies = [
386
+ "once_cell",
387
+ "wasm-bindgen",
388
+ ]
389
+
390
+ [[package]]
391
+ name = "libc"
392
+ version = "0.2.182"
393
+ source = "registry+https://github.com/rust-lang/crates.io-index"
394
+ checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
395
+
396
+ [[package]]
397
+ name = "log"
398
+ version = "0.4.29"
399
+ source = "registry+https://github.com/rust-lang/crates.io-index"
400
+ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
401
+
402
+ [[package]]
403
+ name = "memchr"
404
+ version = "2.8.0"
405
+ source = "registry+https://github.com/rust-lang/crates.io-index"
406
+ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
407
+
408
+ [[package]]
409
+ name = "num-conv"
410
+ version = "0.2.0"
411
+ source = "registry+https://github.com/rust-lang/crates.io-index"
412
+ checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
413
+
414
+ [[package]]
415
+ name = "num-traits"
416
+ version = "0.2.19"
417
+ source = "registry+https://github.com/rust-lang/crates.io-index"
418
+ checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
419
+ dependencies = [
420
+ "autocfg",
421
+ ]
422
+
423
+ [[package]]
424
+ name = "once_cell"
425
+ version = "1.21.3"
426
+ source = "registry+https://github.com/rust-lang/crates.io-index"
427
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
428
+
429
+ [[package]]
430
+ name = "opaque-debug"
431
+ version = "0.3.1"
432
+ source = "registry+https://github.com/rust-lang/crates.io-index"
433
+ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
434
+
435
+ [[package]]
436
+ name = "powerfmt"
437
+ version = "0.2.0"
438
+ source = "registry+https://github.com/rust-lang/crates.io-index"
439
+ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
440
+
441
+ [[package]]
442
+ name = "prettyplease"
443
+ version = "0.2.37"
444
+ source = "registry+https://github.com/rust-lang/crates.io-index"
445
+ checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
446
+ dependencies = [
447
+ "proc-macro2",
448
+ "syn",
449
+ ]
450
+
451
+ [[package]]
452
+ name = "proc-macro2"
453
+ version = "1.0.106"
454
+ source = "registry+https://github.com/rust-lang/crates.io-index"
455
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
456
+ dependencies = [
457
+ "unicode-ident",
458
+ ]
459
+
460
+ [[package]]
461
+ name = "quote"
462
+ version = "1.0.44"
463
+ source = "registry+https://github.com/rust-lang/crates.io-index"
464
+ checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
465
+ dependencies = [
466
+ "proc-macro2",
467
+ ]
468
+
469
+ [[package]]
470
+ name = "ref-cast"
471
+ version = "1.0.25"
472
+ source = "registry+https://github.com/rust-lang/crates.io-index"
473
+ checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
474
+ dependencies = [
475
+ "ref-cast-impl",
476
+ ]
477
+
478
+ [[package]]
479
+ name = "ref-cast-impl"
480
+ version = "1.0.25"
481
+ source = "registry+https://github.com/rust-lang/crates.io-index"
482
+ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
483
+ dependencies = [
484
+ "proc-macro2",
485
+ "quote",
486
+ "syn",
487
+ ]
488
+
489
+ [[package]]
490
+ name = "rustversion"
491
+ version = "1.0.22"
492
+ source = "registry+https://github.com/rust-lang/crates.io-index"
493
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
494
+
495
+ [[package]]
496
+ name = "schemars"
497
+ version = "0.8.22"
498
+ source = "registry+https://github.com/rust-lang/crates.io-index"
499
+ checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615"
500
+ dependencies = [
501
+ "dyn-clone",
502
+ "serde",
503
+ "serde_json",
504
+ ]
505
+
506
+ [[package]]
507
+ name = "schemars"
508
+ version = "0.9.0"
509
+ source = "registry+https://github.com/rust-lang/crates.io-index"
510
+ checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
511
+ dependencies = [
512
+ "dyn-clone",
513
+ "ref-cast",
514
+ "serde",
515
+ "serde_json",
516
+ ]
517
+
518
+ [[package]]
519
+ name = "schemars"
520
+ version = "1.2.1"
521
+ source = "registry+https://github.com/rust-lang/crates.io-index"
522
+ checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc"
523
+ dependencies = [
524
+ "dyn-clone",
525
+ "ref-cast",
526
+ "serde",
527
+ "serde_json",
528
+ ]
529
+
530
+ [[package]]
531
+ name = "semver"
532
+ version = "1.0.27"
533
+ source = "registry+https://github.com/rust-lang/crates.io-index"
534
+ checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
535
+
536
+ [[package]]
537
+ name = "serde"
538
+ version = "1.0.228"
539
+ source = "registry+https://github.com/rust-lang/crates.io-index"
540
+ checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
541
+ dependencies = [
542
+ "serde_core",
543
+ "serde_derive",
544
+ ]
545
+
546
+ [[package]]
547
+ name = "serde_core"
548
+ version = "1.0.228"
549
+ source = "registry+https://github.com/rust-lang/crates.io-index"
550
+ checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
551
+ dependencies = [
552
+ "serde_derive",
553
+ ]
554
+
555
+ [[package]]
556
+ name = "serde_derive"
557
+ version = "1.0.228"
558
+ source = "registry+https://github.com/rust-lang/crates.io-index"
559
+ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
560
+ dependencies = [
561
+ "proc-macro2",
562
+ "quote",
563
+ "syn",
564
+ ]
565
+
566
+ [[package]]
567
+ name = "serde_json"
568
+ version = "1.0.149"
569
+ source = "registry+https://github.com/rust-lang/crates.io-index"
570
+ checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
571
+ dependencies = [
572
+ "itoa",
573
+ "memchr",
574
+ "serde",
575
+ "serde_core",
576
+ "zmij",
577
+ ]
578
+
579
+ [[package]]
580
+ name = "serde_spanned"
581
+ version = "0.6.9"
582
+ source = "registry+https://github.com/rust-lang/crates.io-index"
583
+ checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
584
+ dependencies = [
585
+ "serde",
586
+ ]
587
+
588
+ [[package]]
589
+ name = "serde_with"
590
+ version = "3.17.0"
591
+ source = "registry+https://github.com/rust-lang/crates.io-index"
592
+ checksum = "381b283ce7bc6b476d903296fb59d0d36633652b633b27f64db4fb46dcbfc3b9"
593
+ dependencies = [
594
+ "base64 0.22.1",
595
+ "chrono",
596
+ "hex",
597
+ "indexmap 1.9.3",
598
+ "indexmap 2.13.0",
599
+ "schemars 0.8.22",
600
+ "schemars 0.9.0",
601
+ "schemars 1.2.1",
602
+ "serde_core",
603
+ "serde_json",
604
+ "serde_with_macros",
605
+ "time",
606
+ ]
607
+
608
+ [[package]]
609
+ name = "serde_with_macros"
610
+ version = "3.17.0"
611
+ source = "registry+https://github.com/rust-lang/crates.io-index"
612
+ checksum = "a6d4e30573c8cb306ed6ab1dca8423eec9a463ea0e155f45399455e0368b27e0"
613
+ dependencies = [
614
+ "darling",
615
+ "proc-macro2",
616
+ "quote",
617
+ "syn",
618
+ ]
619
+
620
+ [[package]]
621
+ name = "sha2"
622
+ version = "0.9.9"
623
+ source = "registry+https://github.com/rust-lang/crates.io-index"
624
+ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
625
+ dependencies = [
626
+ "block-buffer 0.9.0",
627
+ "cfg-if",
628
+ "cpufeatures",
629
+ "digest 0.9.0",
630
+ "opaque-debug",
631
+ ]
632
+
633
+ [[package]]
634
+ name = "sha2"
635
+ version = "0.10.9"
636
+ source = "registry+https://github.com/rust-lang/crates.io-index"
637
+ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
638
+ dependencies = [
639
+ "cfg-if",
640
+ "cpufeatures",
641
+ "digest 0.10.7",
642
+ ]
643
+
644
+ [[package]]
645
+ name = "shlex"
646
+ version = "1.3.0"
647
+ source = "registry+https://github.com/rust-lang/crates.io-index"
648
+ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
649
+
650
+ [[package]]
651
+ name = "soroban-spec"
652
+ version = "25.1.1"
653
+ source = "registry+https://github.com/rust-lang/crates.io-index"
654
+ checksum = "53a1c9f6ccc6aa78518545e3cf542bd26f11d9085328a2e1c06c90514733fe15"
655
+ dependencies = [
656
+ "base64 0.22.1",
657
+ "stellar-xdr",
658
+ "thiserror",
659
+ "wasmparser",
660
+ ]
661
+
662
+ [[package]]
663
+ name = "soroban-spec-typescript"
664
+ version = "25.1.0"
665
+ source = "registry+https://github.com/rust-lang/crates.io-index"
666
+ checksum = "25684cb264ba39bac049ba93fc66fd241993c9aefb82d60d60417736408ec61a"
667
+ dependencies = [
668
+ "base64 0.21.7",
669
+ "heck",
670
+ "include_dir",
671
+ "itertools",
672
+ "prettyplease",
673
+ "serde",
674
+ "serde_derive",
675
+ "serde_json",
676
+ "sha2 0.9.9",
677
+ "soroban-spec",
678
+ "stellar-xdr",
679
+ "thiserror",
680
+ ]
681
+
682
+ [[package]]
683
+ name = "stellar-strkey"
684
+ version = "0.0.13"
685
+ source = "registry+https://github.com/rust-lang/crates.io-index"
686
+ checksum = "ee1832fb50c651ad10f734aaf5d31ca5acdfb197a6ecda64d93fcdb8885af913"
687
+ dependencies = [
688
+ "crate-git-revision",
689
+ "data-encoding",
690
+ ]
691
+
692
+ [[package]]
693
+ name = "stellar-ts-bindings-gen"
694
+ version = "0.0.1"
695
+ dependencies = [
696
+ "anyhow",
697
+ "base64 0.22.1",
698
+ "serde",
699
+ "sha2 0.10.9",
700
+ "soroban-spec-typescript",
701
+ "toml",
702
+ ]
703
+
704
+ [[package]]
705
+ name = "stellar-xdr"
706
+ version = "25.0.0"
707
+ source = "registry+https://github.com/rust-lang/crates.io-index"
708
+ checksum = "10d20dafed80076b227d4b17c0c508a4bbc4d5e4c3d4c1de7cd42242df4b1eaf"
709
+ dependencies = [
710
+ "base64 0.22.1",
711
+ "cfg_eval",
712
+ "crate-git-revision",
713
+ "escape-bytes",
714
+ "ethnum",
715
+ "hex",
716
+ "serde",
717
+ "serde_with",
718
+ "sha2 0.10.9",
719
+ "stellar-strkey",
720
+ ]
721
+
722
+ [[package]]
723
+ name = "strsim"
724
+ version = "0.11.1"
725
+ source = "registry+https://github.com/rust-lang/crates.io-index"
726
+ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
727
+
728
+ [[package]]
729
+ name = "syn"
730
+ version = "2.0.117"
731
+ source = "registry+https://github.com/rust-lang/crates.io-index"
732
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
733
+ dependencies = [
734
+ "proc-macro2",
735
+ "quote",
736
+ "unicode-ident",
737
+ ]
738
+
739
+ [[package]]
740
+ name = "thiserror"
741
+ version = "1.0.69"
742
+ source = "registry+https://github.com/rust-lang/crates.io-index"
743
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
744
+ dependencies = [
745
+ "thiserror-impl",
746
+ ]
747
+
748
+ [[package]]
749
+ name = "thiserror-impl"
750
+ version = "1.0.69"
751
+ source = "registry+https://github.com/rust-lang/crates.io-index"
752
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
753
+ dependencies = [
754
+ "proc-macro2",
755
+ "quote",
756
+ "syn",
757
+ ]
758
+
759
+ [[package]]
760
+ name = "time"
761
+ version = "0.3.47"
762
+ source = "registry+https://github.com/rust-lang/crates.io-index"
763
+ checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
764
+ dependencies = [
765
+ "deranged",
766
+ "itoa",
767
+ "num-conv",
768
+ "powerfmt",
769
+ "serde_core",
770
+ "time-core",
771
+ "time-macros",
772
+ ]
773
+
774
+ [[package]]
775
+ name = "time-core"
776
+ version = "0.1.8"
777
+ source = "registry+https://github.com/rust-lang/crates.io-index"
778
+ checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
779
+
780
+ [[package]]
781
+ name = "time-macros"
782
+ version = "0.2.27"
783
+ source = "registry+https://github.com/rust-lang/crates.io-index"
784
+ checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
785
+ dependencies = [
786
+ "num-conv",
787
+ "time-core",
788
+ ]
789
+
790
+ [[package]]
791
+ name = "toml"
792
+ version = "0.8.23"
793
+ source = "registry+https://github.com/rust-lang/crates.io-index"
794
+ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
795
+ dependencies = [
796
+ "serde",
797
+ "serde_spanned",
798
+ "toml_datetime",
799
+ "toml_edit",
800
+ ]
801
+
802
+ [[package]]
803
+ name = "toml_datetime"
804
+ version = "0.6.11"
805
+ source = "registry+https://github.com/rust-lang/crates.io-index"
806
+ checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
807
+ dependencies = [
808
+ "serde",
809
+ ]
810
+
811
+ [[package]]
812
+ name = "toml_edit"
813
+ version = "0.22.27"
814
+ source = "registry+https://github.com/rust-lang/crates.io-index"
815
+ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
816
+ dependencies = [
817
+ "indexmap 2.13.0",
818
+ "serde",
819
+ "serde_spanned",
820
+ "toml_datetime",
821
+ "toml_write",
822
+ "winnow",
823
+ ]
824
+
825
+ [[package]]
826
+ name = "toml_write"
827
+ version = "0.1.2"
828
+ source = "registry+https://github.com/rust-lang/crates.io-index"
829
+ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
830
+
831
+ [[package]]
832
+ name = "typenum"
833
+ version = "1.19.0"
834
+ source = "registry+https://github.com/rust-lang/crates.io-index"
835
+ checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
836
+
837
+ [[package]]
838
+ name = "unicode-ident"
839
+ version = "1.0.24"
840
+ source = "registry+https://github.com/rust-lang/crates.io-index"
841
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
842
+
843
+ [[package]]
844
+ name = "version_check"
845
+ version = "0.9.5"
846
+ source = "registry+https://github.com/rust-lang/crates.io-index"
847
+ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
848
+
849
+ [[package]]
850
+ name = "wasm-bindgen"
851
+ version = "0.2.114"
852
+ source = "registry+https://github.com/rust-lang/crates.io-index"
853
+ checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
854
+ dependencies = [
855
+ "cfg-if",
856
+ "once_cell",
857
+ "rustversion",
858
+ "wasm-bindgen-macro",
859
+ "wasm-bindgen-shared",
860
+ ]
861
+
862
+ [[package]]
863
+ name = "wasm-bindgen-macro"
864
+ version = "0.2.114"
865
+ source = "registry+https://github.com/rust-lang/crates.io-index"
866
+ checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"
867
+ dependencies = [
868
+ "quote",
869
+ "wasm-bindgen-macro-support",
870
+ ]
871
+
872
+ [[package]]
873
+ name = "wasm-bindgen-macro-support"
874
+ version = "0.2.114"
875
+ source = "registry+https://github.com/rust-lang/crates.io-index"
876
+ checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"
877
+ dependencies = [
878
+ "bumpalo",
879
+ "proc-macro2",
880
+ "quote",
881
+ "syn",
882
+ "wasm-bindgen-shared",
883
+ ]
884
+
885
+ [[package]]
886
+ name = "wasm-bindgen-shared"
887
+ version = "0.2.114"
888
+ source = "registry+https://github.com/rust-lang/crates.io-index"
889
+ checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"
890
+ dependencies = [
891
+ "unicode-ident",
892
+ ]
893
+
894
+ [[package]]
895
+ name = "wasmparser"
896
+ version = "0.116.1"
897
+ source = "registry+https://github.com/rust-lang/crates.io-index"
898
+ checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50"
899
+ dependencies = [
900
+ "indexmap 2.13.0",
901
+ "semver",
902
+ ]
903
+
904
+ [[package]]
905
+ name = "windows-core"
906
+ version = "0.62.2"
907
+ source = "registry+https://github.com/rust-lang/crates.io-index"
908
+ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
909
+ dependencies = [
910
+ "windows-implement",
911
+ "windows-interface",
912
+ "windows-link",
913
+ "windows-result",
914
+ "windows-strings",
915
+ ]
916
+
917
+ [[package]]
918
+ name = "windows-implement"
919
+ version = "0.60.2"
920
+ source = "registry+https://github.com/rust-lang/crates.io-index"
921
+ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
922
+ dependencies = [
923
+ "proc-macro2",
924
+ "quote",
925
+ "syn",
926
+ ]
927
+
928
+ [[package]]
929
+ name = "windows-interface"
930
+ version = "0.59.3"
931
+ source = "registry+https://github.com/rust-lang/crates.io-index"
932
+ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
933
+ dependencies = [
934
+ "proc-macro2",
935
+ "quote",
936
+ "syn",
937
+ ]
938
+
939
+ [[package]]
940
+ name = "windows-link"
941
+ version = "0.2.1"
942
+ source = "registry+https://github.com/rust-lang/crates.io-index"
943
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
944
+
945
+ [[package]]
946
+ name = "windows-result"
947
+ version = "0.4.1"
948
+ source = "registry+https://github.com/rust-lang/crates.io-index"
949
+ checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
950
+ dependencies = [
951
+ "windows-link",
952
+ ]
953
+
954
+ [[package]]
955
+ name = "windows-strings"
956
+ version = "0.5.1"
957
+ source = "registry+https://github.com/rust-lang/crates.io-index"
958
+ checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
959
+ dependencies = [
960
+ "windows-link",
961
+ ]
962
+
963
+ [[package]]
964
+ name = "winnow"
965
+ version = "0.7.14"
966
+ source = "registry+https://github.com/rust-lang/crates.io-index"
967
+ checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
968
+ dependencies = [
969
+ "memchr",
970
+ ]
971
+
972
+ [[package]]
973
+ name = "zmij"
974
+ version = "1.0.21"
975
+ source = "registry+https://github.com/rust-lang/crates.io-index"
976
+ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
package/Cargo.toml ADDED
@@ -0,0 +1,17 @@
1
+ [package]
2
+ name = "stellar-ts-bindings-gen"
3
+ version = "0.0.1"
4
+ edition = "2021"
5
+ license = "MIT"
6
+
7
+ [[bin]]
8
+ name = "stellar-ts-bindings-gen"
9
+ path = "src/main.rs"
10
+
11
+ [dependencies]
12
+ soroban-spec-typescript = "25.1.0"
13
+ anyhow = "1.0"
14
+ sha2 = "0.10"
15
+ base64 = "0.22"
16
+ toml = "0.8"
17
+ serde = { version = "1.0", features = ["derive"] }
package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+ Copyright (c) 2026 - LayerZero Labs Ltd.
2
+
3
+ Permission is hereby granted, free of charge, to any
4
+ person obtaining a copy of this software and associated
5
+ documentation files (the "Software"), to deal in the
6
+ Software without restriction, including without
7
+ limitation the rights to use, copy, modify, merge,
8
+ publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software
10
+ is furnished to do so, subject to the following
11
+ conditions:
12
+ The above copyright notice and this permission notice
13
+ shall be included in all copies or substantial portions
14
+ of the Software.
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
16
+ ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
17
+ TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
18
+ PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
19
+ SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
22
+ IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23
+ DEALINGS IN THE SOFTWARE.
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@layerzerolabs/stellar-ts-bindings-gen",
3
+ "version": "0.2.65",
4
+ "private": false,
5
+ "description": "Generates TypeScript bindings from Stellar Soroban contract WASM files",
6
+ "license": "MIT",
7
+ "bin": {
8
+ "stellar-ts-bindings-gen": "src/generate.ts"
9
+ },
10
+ "dependencies": {
11
+ "tsx": "^4.19.3",
12
+ "@layerzerolabs/vm-tooling-stellar": "0.2.65"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public",
16
+ "registry": "https://registry.npmjs.org/"
17
+ },
18
+ "externalRepoConfig": {
19
+ "targets": [
20
+ "audit-external",
21
+ "onesig-client"
22
+ ]
23
+ },
24
+ "implicitDependencies": {
25
+ "@layerzerolabs/vm-tooling-stellar": "workspace:*",
26
+ "tsx": "catalog:"
27
+ }
28
+ }
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env tsx
2
+
3
+ import { execSync } from 'child_process';
4
+ import path from 'path';
5
+ import { fileURLToPath } from 'url';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+
10
+ const args = process.argv.slice(2);
11
+ const configIdx = args.indexOf('--config');
12
+
13
+ if (configIdx === -1 || !args[configIdx + 1]) {
14
+ console.error('Usage: stellar-ts-bindings-gen --config <path>');
15
+ process.exit(1);
16
+ }
17
+
18
+ const configPath = args[configIdx + 1];
19
+
20
+ // Compute relative path from CWD to this package's Cargo.toml
21
+ const cargoManifest = path.relative(process.cwd(), path.resolve(__dirname, '..', 'Cargo.toml'));
22
+
23
+ const script = `cargo run --manifest-path ${cargoManifest} -- --config ${configPath}`;
24
+
25
+ try {
26
+ const lzTool = path.resolve(__dirname, '..', 'node_modules', '.bin', 'lz-tool');
27
+ execSync(`${lzTool} --script "${script}" stellar`, { stdio: 'inherit' });
28
+ } catch (e) {
29
+ process.exit((e as { status?: number }).status || 1);
30
+ }
package/src/main.rs ADDED
@@ -0,0 +1,250 @@
1
+ use anyhow::{Context, Result};
2
+ use base64::{engine::general_purpose::STANDARD as BASE64, Engine};
3
+ use serde::Deserialize;
4
+ use sha2::{Digest, Sha256};
5
+ use soroban_spec_typescript::generate_from_file;
6
+ use std::{env, fs, path::Path};
7
+
8
+ const IMPORTS_HEADER: &str = r#"import { Buffer } from "buffer";
9
+ import { Address } from '@stellar/stellar-sdk';
10
+ import {
11
+ AssembledTransaction,
12
+ AssembledTransactionOptions,
13
+ Client as ContractClient,
14
+ ClientOptions as ContractClientOptions,
15
+ MethodOptions,
16
+ Result,
17
+ Spec as ContractSpec,
18
+ } from '@stellar/stellar-sdk/contract';
19
+ import type {
20
+ u32,
21
+ i32,
22
+ u64,
23
+ i64,
24
+ u128,
25
+ i128,
26
+ u256,
27
+ i256,
28
+ Option,
29
+ Typepoint,
30
+ Duration,
31
+ } from '@stellar/stellar-sdk/contract';
32
+ export * from '@stellar/stellar-sdk'
33
+ export * as contract from '@stellar/stellar-sdk/contract'
34
+ export * as rpc from '@stellar/stellar-sdk/rpc'
35
+
36
+ // Soroban SDK types referenced in contract specs but not defined in the contract itself.
37
+ // InvokerContractAuthEntry is a Soroban built-in encoded as ScVal:
38
+ // scvVec([symbol("Contract"), scvMap({
39
+ // context: scvMap({ args, contract, fn_name }),
40
+ // sub_invocations: scvVec([...])
41
+ // })])
42
+ // Must be manually constructed — the contract spec's nativeToScVal cannot serialize it.
43
+ import type { xdr } from '@stellar/stellar-sdk';
44
+ export type InvokerContractAuthEntry = xdr.ScVal;
45
+
46
+ "#;
47
+
48
+ #[derive(Deserialize)]
49
+ struct Config {
50
+ /// Path to the directory containing compiled `.wasm` files
51
+ #[serde(default = "default_wasm_dir")]
52
+ wasm_dir: String,
53
+ /// Path to the output directory for generated `.ts` files
54
+ #[serde(default = "default_output_dir")]
55
+ output_dir: String,
56
+ /// List of contracts to generate bindings for
57
+ contracts: Vec<ContractEntry>,
58
+ }
59
+
60
+ #[derive(Deserialize)]
61
+ struct ContractEntry {
62
+ /// The WASM filename without extension (e.g., "endpoint_v2")
63
+ wasm_name: String,
64
+ /// The output TypeScript filename (e.g., "endpoint.ts")
65
+ output_name: String,
66
+ }
67
+
68
+ fn default_wasm_dir() -> String {
69
+ "target/wasm32v1-none/release".to_string()
70
+ }
71
+
72
+ fn default_output_dir() -> String {
73
+ "sdk/src/generated".to_string()
74
+ }
75
+
76
+ /// Generate embedded WASM code section containing base64-encoded bytecode,
77
+ /// pre-computed SHA-256 hash, and a helper function to decode the buffer.
78
+ fn generate_wasm_embed(wasm_bytes: &[u8]) -> String {
79
+ let wasm_hash = Sha256::digest(wasm_bytes);
80
+ let wasm_hash_hex = format!("{:x}", wasm_hash);
81
+ let wasm_base64 = BASE64.encode(wasm_bytes);
82
+
83
+ format!(
84
+ r#"/**
85
+ * Embedded WASM bytecode (base64-encoded)
86
+ * Size: {} bytes ({:.2} KB)
87
+ */
88
+ export const WASM_BASE64 = "{}";
89
+
90
+ /**
91
+ * Pre-computed WASM hash (SHA-256)
92
+ * Use this when the WASM is already uploaded on-chain
93
+ */
94
+ export const WASM_HASH = "{}";
95
+
96
+ /**
97
+ * Get the WASM bytecode as a Buffer
98
+ * Use this to upload the WASM to the network
99
+ */
100
+ export function getWasmBuffer(): Buffer {{
101
+ return Buffer.from(WASM_BASE64, 'base64');
102
+ }}
103
+
104
+ "#,
105
+ wasm_bytes.len(),
106
+ wasm_bytes.len() as f64 / 1024.0,
107
+ wasm_base64,
108
+ wasm_hash_hex
109
+ )
110
+ }
111
+
112
+ /// Replace `options?` parameter names with `txnOptions?` in generated TypeScript
113
+ /// to avoid naming conflicts with user-defined `options` parameters.
114
+ fn rename_options_parameter(ts_code: &str) -> String {
115
+ let ts_code = ts_code.replace(
116
+ r#"options?: {
117
+ /**
118
+ * The fee to pay for the transaction. Default: BASE_FEE
119
+ */
120
+ fee?: number;
121
+
122
+ /**
123
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
124
+ */
125
+ timeoutInSeconds?: number;
126
+
127
+ /**
128
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
129
+ */
130
+ simulate?: boolean;
131
+ }"#,
132
+ r#"txnOptions?: {
133
+ /**
134
+ * The fee to pay for the transaction. Default: BASE_FEE
135
+ */
136
+ fee?: number;
137
+
138
+ /**
139
+ * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
140
+ */
141
+ timeoutInSeconds?: number;
142
+
143
+ /**
144
+ * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
145
+ */
146
+ simulate?: boolean;
147
+ }"#,
148
+ );
149
+
150
+ ts_code.replace(
151
+ ", options?: MethodOptions)",
152
+ ", txnOptions?: MethodOptions)",
153
+ )
154
+ }
155
+
156
+ fn print_usage() {
157
+ eprintln!("Usage: stellar-ts-bindings-gen --config <path>");
158
+ eprintln!();
159
+ eprintln!("Flags:");
160
+ eprintln!(" --config <path> Path to TOML config file (required)");
161
+ }
162
+
163
+ fn main() -> Result<()> {
164
+ let args: Vec<String> = env::args().collect();
165
+
166
+ let config_path = match args.iter().position(|a| a == "--config") {
167
+ Some(i) => args
168
+ .get(i + 1)
169
+ .context("--config requires a path argument")?,
170
+ None => {
171
+ print_usage();
172
+ anyhow::bail!("--config flag is required");
173
+ }
174
+ };
175
+
176
+ let config_content =
177
+ fs::read_to_string(config_path).context(format!("Failed to read config: {}", config_path))?;
178
+ let config: Config =
179
+ toml::from_str(&config_content).context(format!("Failed to parse config: {}", config_path))?;
180
+
181
+ let wasm_base = Path::new(&config.wasm_dir);
182
+ let output_dir = Path::new(&config.output_dir);
183
+
184
+ println!(
185
+ "Generating TypeScript bindings for {} contract(s)...\n",
186
+ config.contracts.len()
187
+ );
188
+
189
+ fs::create_dir_all(output_dir)?;
190
+
191
+ let mut generated = Vec::new();
192
+
193
+ for entry in &config.contracts {
194
+ let wasm_path = wasm_base.join(format!("{}.wasm", entry.wasm_name));
195
+ let output_file = output_dir.join(&entry.output_name);
196
+
197
+ println!("Processing contract: {}", entry.wasm_name);
198
+ println!(" WASM: {}", wasm_path.display());
199
+ println!(" Output: {}", output_file.display());
200
+
201
+ if !wasm_path.exists() {
202
+ eprintln!(" WASM file not found: {}", wasm_path.display());
203
+ eprintln!(
204
+ " Skipping {}. Build the contract first with:",
205
+ entry.wasm_name
206
+ );
207
+ eprintln!(" stellar contract build -p {}\n", entry.wasm_name);
208
+ continue;
209
+ }
210
+
211
+ let wasm_bytes = fs::read(&wasm_path)?;
212
+ println!(
213
+ " WASM size: {} bytes ({:.2} KB)",
214
+ wasm_bytes.len(),
215
+ wasm_bytes.len() as f64 / 1024.0
216
+ );
217
+
218
+ let wasm_embed = generate_wasm_embed(&wasm_bytes);
219
+
220
+ println!(" Generating bindings...");
221
+ let wasm_path_str = wasm_path
222
+ .to_str()
223
+ .ok_or_else(|| anyhow::anyhow!("Invalid path: {}", wasm_path.display()))?;
224
+ let ts_code = generate_from_file(wasm_path_str, None)?;
225
+ let ts_code = rename_options_parameter(&ts_code);
226
+
227
+ let complete_code = format!("{}{}{}", IMPORTS_HEADER, wasm_embed, ts_code);
228
+ fs::write(&output_file, &complete_code)?;
229
+ println!(" Generated: {}", output_file.display());
230
+
231
+ let module_name = entry.output_name.trim_end_matches(".ts");
232
+ generated.push(module_name.to_string());
233
+ }
234
+
235
+ println!(
236
+ "\nTypeScript binding generation complete! Generated {} contract(s) with embedded WASM",
237
+ generated.len()
238
+ );
239
+
240
+ if generated.is_empty() {
241
+ println!("\nTip: Build your contracts first before generating bindings.");
242
+ } else {
243
+ println!("\nGenerated files in {}:", output_dir.display());
244
+ for name in &generated {
245
+ println!(" - {}.ts", name);
246
+ }
247
+ }
248
+
249
+ Ok(())
250
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2023",
4
+ "module": "ESNext",
5
+ "moduleResolution": "Bundler",
6
+ "esModuleInterop": true,
7
+ "strict": true,
8
+ "rootDir": "./src",
9
+ "outDir": "./dist"
10
+ },
11
+ "include": ["src/**/*"]
12
+ }