ton_sdk_client 1.12.0 → 1.17.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.
@@ -10,11 +10,11 @@ module TonSdk
10
10
  INVALID_KEY = 102
11
11
  INVALID_FACTORIZE_CHALLENGE = 106
12
12
  INVALID_BIGINT = 107
13
- SCRYPT_FAILED = 108,
13
+ SCRYPT_FAILED = 108
14
14
  INVALID_KEYSIZE = 109
15
- NACL_SECRET_BOX_FAILED = 110,
16
- NACL_BOX_FAILED = 111,
17
- NACL_SIGN_FAILED = 112,
15
+ NACL_SECRET_BOX_FAILED = 110
16
+ NACL_BOX_FAILED = 111
17
+ NACL_SIGN_FAILED = 112
18
18
  BIP39_INVALID_ENTROPY = 113
19
19
  BIP39_INVALID_PHRASE = 114
20
20
  BIP32_INVALID_KEY = 115
@@ -27,371 +27,71 @@ module TonSdk
27
27
  INVALID_SIGNATURE = 122
28
28
  end
29
29
 
30
- class ParamsOfFactorize
31
- attr_reader :composite
32
-
33
- def initialize(a)
34
- @composite = a
35
- end
36
-
37
- def to_h = { composite: @composite }
38
- end
39
-
30
+ ParamsOfFactorize = Struct.new(:composite)
40
31
  ResultOfFactorize = Struct.new(:factors)
41
-
42
- class ParamsOfModularPower
43
- attr_reader :base, :exponent, :modulus
44
-
45
- def initialize(base:, exponent:, modulus:)
46
- @base = base
47
- @exponent = exponent
48
- @modulus = modulus
49
- end
50
-
51
- def to_h
52
- {
53
- base: @base,
54
- exponent: @exponent,
55
- modulus: @modulus
56
- }
57
- end
58
- end
59
-
32
+ ParamsOfModularPower = Struct.new(:base, :exponent, :modulus, keyword_init: true)
60
33
  ResultOfModularPower = Struct.new(:modular_power)
61
-
62
- ParamsOfTonCrc16 = Struct.new(:data) do
63
- def to_h = { data: @data }
64
- end
34
+ ParamsOfTonCrc16 = Struct.new(:data)
65
35
 
66
36
  ResultOfTonCrc16 = Struct.new(:crc)
67
-
68
- ParamsOfGenerateRandomBytes = Struct.new(:length) do
69
- def to_h = { length: @length }
70
- end
71
-
37
+ ParamsOfGenerateRandomBytes = Struct.new(:length)
72
38
  ResultOfGenerateRandomBytes = Struct.new(:bytes)
73
-
74
- ParamsOfConvertPublicKeyToTonSafeFormat = Struct.new(:public_key) do
75
- def to_h = { public_key: @public_key }
76
- end
77
-
39
+ ParamsOfConvertPublicKeyToTonSafeFormat = Struct.new(:public_key)
78
40
  ResultOfConvertPublicKeyToTonSafeFormat = Struct.new(:ton_public_key)
79
41
 
80
- KeyPair = Struct.new(:public_, :secret) do
81
- def to_h
82
- {
83
- public: @public_,
84
- secret: @secret
85
- }
86
- end
87
- end
88
-
89
- ParamsOfSign = Struct.new(:unsigned, :keys) do
90
- def to_h
91
- {
92
- unsigned: @unsigned,
93
- keys: @keys.to_h
94
- }
95
- end
96
- end
97
-
42
+ KeyPair = Struct.new(:public_, :secret)
43
+ ParamsOfSign = Struct.new(:unsigned, :keys)
98
44
  ResultOfSign = Struct.new(:signed, :signature)
99
-
100
- class ParamsOfVerifySignature
101
- attr_reader :signed, :public_
102
-
103
- def initialize(signed:, public_:)
104
- @signed = signed
105
- @public_ = public_
106
- end
107
-
108
- def to_h
109
- {
110
- signed: @signed,
111
- public: @public_
112
- }
113
- end
114
- end
115
-
116
- class ResultOfVerifySignature
117
- attr_reader :unsigned
118
-
119
- def initialize(a)
120
- @unsigned = a
121
- end
122
- end
123
-
124
- class ParamsOfHash
125
- attr_reader :data
126
-
127
- def initialize(a)
128
- @data = a
129
- end
130
-
131
- def to_h
132
- {
133
- data: @data
134
- }
135
- end
136
- end
137
-
138
- class ResultOfHash
139
- attr_reader :hash
140
-
141
- def initialize(a)
142
- @hash = a
143
- end
144
- end
145
-
146
- class ParamsOfScrypt
147
- attr_reader :password, :salt, :log_n, :r, :p_, :dk_len
148
-
149
- def initialize(password:, salt:, log_n:, r:, p_:, dk_len:)
150
- @password = password
151
- @salt = salt
152
- @log_n = log_n
153
- @r = r
154
- @p_ = p_
155
- @dk_len = dk_len
156
- end
157
-
158
- def to_h
159
- {
160
- password: @password,
161
- salt: @salt,
162
- log_n: @log_n,
163
- r: @r,
164
- p: @p_,
165
- dk_len: @dk_len
166
- }
167
- end
168
- end
169
-
170
- class ResultOfScrypt
171
- attr_reader :key
172
-
173
- def initialize(a)
174
- @key = a
175
- end
176
- end
177
-
178
- class ParamsOfNaclSignKeyPairFromSecret
179
- attr_reader :secret
180
-
181
- def initialize(a)
182
- @secret = a
183
- end
184
-
185
- def to_h = { secret: @secret }
186
- end
187
-
188
- class ParamsOfNaclSign
189
- attr_reader :unsigned, :secret
190
-
191
- def initialize(unsigned:, secret:)
192
- @unsigned = unsigned
193
- @secret = secret
194
- end
195
-
196
- def to_h
197
- {
198
- unsigned: @unsigned,
199
- secret: @secret
200
- }
201
- end
202
- end
203
-
204
- class ResultOfNaclSign
205
- attr_reader :signed
206
-
207
- def initialize(a)
208
- @signed = a
209
- end
210
- end
211
-
212
- class ParamsOfNaclSignOpen
213
- attr_reader :signed, :public_
214
-
45
+ ParamsOfVerifySignature = Struct.new(:signed, :public_)
46
+ ResultOfVerifySignature = Struct.new(:unsigned)
47
+
48
+ ParamsOfHash = Struct.new(:data)
49
+ ResultOfHash = Struct.new(:hash)
50
+ ParamsOfScrypt = Struct.new(:password, :salt, :log_n, :r, :p_, :dk_len, keyword_init: true)
51
+ ResultOfScrypt = Struct.new(:key)
52
+ ParamsOfNaclSignKeyPairFromSecret = Struct.new(:secret)
53
+
54
+ ParamsOfNaclSign = Struct.new(:unsigned, :secret)
55
+ ResultOfNaclSign = Struct.new(:signed)
56
+ ParamsOfNaclSignOpen = Struct.new(:signed, :public_) do
215
57
  def initialize(signed:, public_:)
216
- @signed = signed
217
- @public_ = public_
218
- end
219
-
220
- def to_h
221
- {
222
- signed: @signed,
223
- public: @public_
224
- }
225
- end
226
- end
227
-
228
- class ResultOfNaclSignOpen
229
- attr_reader :unsigned
230
-
231
- def initialize(a)
232
- @unsigned = a
233
- end
234
- end
235
-
236
- class ResultOfNaclSignDetached
237
- attr_reader :signature
238
-
239
- def initialize(a)
240
- @signature = a
58
+ super
241
59
  end
242
60
  end
243
61
 
244
- class ParamsOfNaclBoxKeyPairFromSecret
245
- attr_reader :secret
246
-
247
- def initialize(a)
248
- @secret = a
249
- end
250
-
251
- def to_h
252
- {
253
- secret: @secret
254
- }
255
- end
256
- end
257
-
258
- class ParamsOfNaclBox
259
- attr_reader :decrypted, :nonce, :their_public, :secret
260
-
62
+ ResultOfNaclSignOpen = Struct.new(:unsigned)
63
+ ResultOfNaclSignDetached = Struct.new(:signature)
64
+ ParamsOfNaclBoxKeyPairFromSecret = Struct.new(:secret)
65
+ ParamsOfNaclBox = Struct.new(:decrypted, :nonce, :their_public, :secret) do
261
66
  def initialize(decrypted:, nonce:, their_public:, secret:)
262
- @decrypted = decrypted
263
- @nonce = nonce
264
- @their_public = their_public
265
- @secret = secret
266
- end
267
-
268
- def to_h
269
- {
270
- decrypted: @decrypted,
271
- nonce: @nonce,
272
- their_public: @their_public,
273
- secret: @secret
274
- }
67
+ super
275
68
  end
276
69
  end
277
70
 
278
- class ResultOfNaclBox
279
- attr_reader :encrypted
280
-
281
- def initialize(a)
282
- @encrypted = a
283
- end
284
- end
285
-
286
- class ParamsOfNaclBoxOpen
287
- attr_reader :encrypted, :nonce, :their_public, :secret
288
-
71
+ ResultOfNaclBox = Struct.new(:encrypted)
72
+ ParamsOfNaclBoxOpen = Struct.new(:encrypted, :nonce, :their_public, :secret) do
289
73
  def initialize(encrypted:, nonce:, their_public:, secret:)
290
- @encrypted = encrypted
291
- @nonce = nonce
292
- @their_public = their_public
293
- @secret = secret
294
- end
295
-
296
- def to_h
297
- {
298
- encrypted: @encrypted,
299
- nonce: @nonce,
300
- their_public: @their_public,
301
- secret: @secret
302
- }
303
- end
304
- end
305
-
306
- class ResultOfNaclBoxOpen
307
- attr_reader :decrypted
308
-
309
- def initialize(a)
310
- @decrypted = a
74
+ super
311
75
  end
312
76
  end
313
77
 
314
- class ParamsOfNaclSecretBox
315
- attr_reader :decrypted, :nonce, :key
316
-
78
+ ResultOfNaclBoxOpen = Struct.new(:decrypted)
79
+ ParamsOfNaclSecretBox = Struct.new(:decrypted, :nonce, :key) do
317
80
  def initialize(decrypted:, nonce:, key:)
318
- @decrypted = decrypted
319
- @nonce = nonce
320
- @key = key
321
- end
322
-
323
- def to_h
324
- {
325
- decrypted: @decrypted,
326
- nonce: @nonce,
327
- key: @key
328
- }
81
+ super
329
82
  end
330
83
  end
331
84
 
332
- class ParamsOfNaclSecretBoxOpen
333
- attr_reader :encrypted, :nonce, :key
334
-
85
+ ParamsOfNaclSecretBoxOpen = Struct.new(:encrypted, :nonce, :key) do
335
86
  def initialize(encrypted:, nonce:, key:)
336
- @encrypted = encrypted
337
- @nonce = nonce
338
- @key = key
339
- end
340
-
341
- def to_h
342
- {
343
- encrypted: @encrypted,
344
- nonce: @nonce,
345
- key: @key
346
- }
87
+ super
347
88
  end
348
89
  end
349
90
 
350
- class ParamsOfMnemonicWords
351
- attr_reader :dictionary
352
-
353
- def initialize(a: nil)
354
- @dictionary = a
355
- end
356
-
357
- def to_h
358
- {
359
- dictionary: @dictionary
360
- }
361
- end
362
- end
363
-
364
- class ResultOfMnemonicWords
365
- attr_reader :words
366
-
367
- def initialize(a)
368
- @words = a
369
- end
370
- end
371
-
372
- class ParamsOfMnemonicFromRandom
373
- attr_reader :dictionary, :word_count
374
-
375
- def initialize(dictionary: nil, word_count: nil)
376
- @dictionary = dictionary
377
- @word_count = word_count
378
- end
379
-
380
- def to_h
381
- {
382
- dictionary: @dictionary,
383
- word_count: @word_count
384
- }
385
- end
386
- end
387
-
388
- class ResultOfMnemonicFromRandom
389
- attr_reader :phrase
390
-
391
- def initialize(a)
392
- @phrase = a
393
- end
394
- end
91
+ ParamsOfMnemonicWords = Struct.new(:dictionary)
92
+ ResultOfMnemonicWords = Struct.new(:words)
93
+ ParamsOfMnemonicFromRandom = Struct.new(:dictionary, :word_count, keyword_init: true)
94
+ ResultOfMnemonicFromRandom = Struct.new(:phrase)
395
95
 
396
96
  class ParamsOfMnemonicFromEntropy
397
97
  attr_reader :entropy, :dictionary, :word_count
@@ -411,13 +111,7 @@ module TonSdk
411
111
  end
412
112
  end
413
113
 
414
- class ResultOfMnemonicFromEntropy
415
- attr_reader :phrase
416
-
417
- def initialize(a)
418
- @phrase = a
419
- end
420
- end
114
+ ResultOfMnemonicFromEntropy = Struct.new(:phrase)
421
115
 
422
116
  class ParamsOfMnemonicVerify
423
117
  attr_reader :phrase, :dictionary, :word_count
@@ -437,13 +131,7 @@ module TonSdk
437
131
  end
438
132
  end
439
133
 
440
- class ResultOfMnemonicVerify
441
- attr_reader :valid
442
-
443
- def initialize(a)
444
- @valid = a
445
- end
446
- end
134
+ ResultOfMnemonicVerify = Struct.new(:valid)
447
135
 
448
136
  class ParamsOfMnemonicDeriveSignKeys
449
137
  attr_reader :phrase, :path, :dictionary, :word_count
@@ -483,13 +171,7 @@ module TonSdk
483
171
  end
484
172
  end
485
173
 
486
- class ResultOfHDKeyXPrvFromMnemonic
487
- attr_reader :xprv
488
-
489
- def initialize(a)
490
- @xprv = a
491
- end
492
- end
174
+ ResultOfHDKeyXPrvFromMnemonic = Struct.new(:xprv)
493
175
 
494
176
  class ParamsOfHDKeyDeriveFromXPrv
495
177
  attr_reader :xprv, :child_index, :hardened
@@ -509,162 +191,37 @@ module TonSdk
509
191
  end
510
192
  end
511
193
 
512
- class ResultOfHDKeyDeriveFromXPrv
513
- attr_reader :xprv
514
-
515
- def initialize(a)
516
- @xprv = a
517
- end
518
-
519
- def to_h
520
- {
521
- xprv: @xprv,
522
- path: @path
523
- }
524
- end
525
- end
526
-
527
- class ParamsOfHDKeySecretFromXPrv
528
- attr_reader :xprv
529
-
530
- def initialize(a)
531
- @xprv = a
532
- end
533
-
534
- def to_h
535
- {
536
- xprv: @xprv
537
- }
538
- end
539
- end
540
-
541
- class ResultOfHDKeySecretFromXPrv
542
- attr_reader :secret
543
-
544
- def initialize(a)
545
- @secret = a
546
- end
547
- end
548
-
549
- class ParamsOfHDKeyPublicFromXPrv
550
- attr_reader :xprv
551
-
552
- def initialize(a)
553
- @xprv = a
554
- end
555
-
556
- def to_h
557
- {
558
- xprv: @xprv
559
- }
560
- end
561
- end
562
-
563
- class ResultOfHDKeyPublicFromXPrv
564
- attr_reader :public_
565
-
566
- def initialize(a)
567
- @public_ = a
568
- end
569
- end
570
-
571
- class ParamsOfHDKeyDeriveFromXPrvPath
572
- attr_reader :xprv, :path
194
+ ResultOfHDKeyDeriveFromXPrv = Struct.new(:xprv)
195
+ ParamsOfHDKeySecretFromXPrv = Struct.new(:xprv)
196
+ ResultOfHDKeySecretFromXPrv = Struct.new(:secret)
197
+ ParamsOfHDKeyPublicFromXPrv = Struct.new(:xprv)
198
+ ResultOfHDKeyPublicFromXPrv = Struct.new(:public_)
573
199
 
200
+ ParamsOfHDKeyDeriveFromXPrvPath = Struct.new(:xprv, :path) do
574
201
  def initialize(xprv:, path:)
575
- @xprv = xprv
576
- @path = path
577
- end
578
-
579
- def to_h
580
- {
581
- xprv: @xprv,
582
- path: @path
583
- }
202
+ super
584
203
  end
585
204
  end
586
205
 
587
- class ResultOfHDKeyDeriveFromXPrvPath
588
- attr_reader :xprv
589
-
590
- def initialize(a)
591
- @xprv = a
592
- end
593
- end
594
-
595
- class ParamsOfChaCha20
596
- attr_reader :data, :key, :nonce
206
+ ResultOfHDKeyDeriveFromXPrvPath = Struct.new(:xprv)
597
207
 
208
+ ParamsOfChaCha20 = Struct.new(:data, :key, :nonce) do
598
209
  def initialize(data:, key:, nonce:)
599
- @data = data
600
- @key = key
601
- @nonce = nonce
602
- end
603
-
604
- def to_h
605
- {
606
- data: @data,
607
- key: @key,
608
- nonce: @nonce
609
- }
210
+ super
610
211
  end
611
212
  end
612
213
 
613
- class ResultOfChaCha20
614
- attr_reader :data
615
-
616
- def initialize(a)
617
- @data = a
618
- end
619
- end
620
-
621
- class ParamsOfSigningBoxSign
622
- attr_reader :signing_box, :unsigned
214
+ ResultOfChaCha20 = Struct.new(:data)
623
215
 
216
+ ParamsOfSigningBoxSign = Struct.new(:signing_box, :unsigned) do
624
217
  def initialize(signing_box:, unsigned:)
625
- @signing_box = signing_box
626
- @unsigned = unsigned
627
- end
628
-
629
- def to_h
630
- {
631
- signing_box: @signing_box,
632
- unsigned: @unsigned
633
- }
218
+ super
634
219
  end
635
220
  end
636
221
 
637
- class ResultOfSigningBoxSign
638
- attr_reader :signature
639
-
640
- def initialize(a)
641
- @signature = a
642
- end
643
- end
644
-
645
- class RegisteredSigningBox
646
- attr_reader :handle
647
-
648
- def initialize(a)
649
- @handle = a
650
- end
651
-
652
- def to_h
653
- {
654
- handle: @handle
655
- }
656
- end
657
- end
658
-
659
- class ResultOfSigningBoxGetPublicKey
660
- attr_reader :pubkey
661
-
662
- def initialize(a)
663
- @pubkey = a
664
- end
665
-
666
- def to_h = { pubkey: @pubkey }
667
- end
222
+ ResultOfSigningBoxSign = Struct.new(:signature)
223
+ RegisteredSigningBox = Struct.new(:handle)
224
+ ResultOfSigningBoxGetPublicKey = Struct.new(:pubkey)
668
225
 
669
226
  class ParamsOfNaclSignDetachedVerify
670
227
  attr_reader :unsigned, :signature, :public
@@ -682,15 +239,7 @@ module TonSdk
682
239
  end
683
240
  end
684
241
 
685
- class ResultOfNaclSignDetachedVerify
686
- attr_reader :succeeded
687
-
688
- def initialize(a)
689
- @succeeded = a
690
- end
691
-
692
- def to_h = { succeeded: @succeeded }
693
- end
242
+ ResultOfNaclSignDetachedVerify = Struct.new(:succeeded)
694
243
 
695
244
  class ParamsOfAppSigningBox
696
245
  TYPES = [
@@ -716,14 +265,18 @@ module TonSdk
716
265
  end
717
266
  end
718
267
 
268
+ EncryptionBoxInfo = Struct.new(:hdpath, :algorithm, :options, :public, keyword_init: true)
269
+ ParamsOfEncryptionBoxGetInfo = Struct.new(:encryption_box)
270
+ ResultOfEncryptionBoxGetInfo = Struct.new(:info)
271
+ RegisteredEncryptionBox = Struct.new(:handle)
272
+
719
273
 
720
274
  #
721
275
  # functions
722
276
  #
723
277
 
724
278
  def self.factorize(ctx, params)
725
- pr_json = params.to_h.to_json
726
- Interop::request_to_native_lib(ctx, "crypto.factorize", pr_json) do |resp|
279
+ Interop::request_to_native_lib(ctx, "crypto.factorize", params) do |resp|
727
280
  if resp.success?
728
281
  yield NativeLibResponsetResult.new(
729
282
  result: ResultOfFactorize.new(resp.result["factors"])
@@ -735,8 +288,7 @@ module TonSdk
735
288
  end
736
289
 
737
290
  def self.modular_power(ctx, params)
738
- pr_json = params.to_h.to_json
739
- Interop::request_to_native_lib(ctx, "crypto.modular_power", pr_json) do |resp|
291
+ Interop::request_to_native_lib(ctx, "crypto.modular_power", params) do |resp|
740
292
  if resp.success?
741
293
  yield NativeLibResponsetResult.new(
742
294
  result: ResultOfModularPower.new(resp.result["modular_power"])
@@ -748,8 +300,7 @@ module TonSdk
748
300
  end
749
301
 
750
302
  def self.ton_crc16(ctx, params)
751
- pr_json = params.to_h.to_json
752
- Interop::request_to_native_lib(ctx, "crypto.ton_crc16", pr_json) do |resp|
303
+ Interop::request_to_native_lib(ctx, "crypto.ton_crc16", params) do |resp|
753
304
  if resp.success?
754
305
  yield NativeLibResponsetResult.new(
755
306
  result: ResultOfTonCrc16.new(resp.result["crc"])
@@ -761,8 +312,7 @@ module TonSdk
761
312
  end
762
313
 
763
314
  def self.generate_random_bytes(ctx, params)
764
- pr_json = params.to_h.to_json
765
- Interop::request_to_native_lib(ctx, "crypto.generate_random_bytes", pr_json) do |resp|
315
+ Interop::request_to_native_lib(ctx, "crypto.generate_random_bytes", params) do |resp|
766
316
  if resp.success?
767
317
  yield NativeLibResponsetResult.new(
768
318
  result: ResultOfGenerateRandomBytes.new(resp.result["bytes"])
@@ -774,8 +324,7 @@ module TonSdk
774
324
  end
775
325
 
776
326
  def self.convert_public_key_to_ton_safe_format(ctx, params)
777
- pr_json = params.to_h.to_json
778
- Interop::request_to_native_lib(ctx, "crypto.convert_public_key_to_ton_safe_format", pr_json) do |resp|
327
+ Interop::request_to_native_lib(ctx, "crypto.convert_public_key_to_ton_safe_format", params) do |resp|
779
328
  if resp.success?
780
329
  yield NativeLibResponsetResult.new(
781
330
  result: ResultOfConvertPublicKeyToTonSafeFormat.new(resp.result["ton_public_key"])
@@ -802,8 +351,7 @@ module TonSdk
802
351
  end
803
352
 
804
353
  def self.sign(ctx, params)
805
- pr_json = params.to_h.to_json
806
- Interop::request_to_native_lib(ctx, "crypto.sign", pr_json) do |resp|
354
+ Interop::request_to_native_lib(ctx, "crypto.sign", params) do |resp|
807
355
  if resp.success?
808
356
  yield NativeLibResponsetResult.new(
809
357
  result: ResultOfSign.new(
@@ -818,8 +366,7 @@ module TonSdk
818
366
  end
819
367
 
820
368
  def self.verify_signature(ctx, params)
821
- pr_json = params.to_h.to_json
822
- Interop::request_to_native_lib(ctx, "crypto.verify_signature", pr_json) do |resp|
369
+ Interop::request_to_native_lib(ctx, "crypto.verify_signature", params) do |resp|
823
370
  if resp.success?
824
371
  yield NativeLibResponsetResult.new(
825
372
  result: ResultOfVerifySignature.new(resp.result["unsigned"])
@@ -831,8 +378,7 @@ module TonSdk
831
378
  end
832
379
 
833
380
  def self.sha256(ctx, params)
834
- pr_json = params.to_h.to_json
835
- Interop::request_to_native_lib(ctx, "crypto.sha256", pr_json) do |resp|
381
+ Interop::request_to_native_lib(ctx, "crypto.sha256", params) do |resp|
836
382
  if resp.success?
837
383
  yield NativeLibResponsetResult.new(
838
384
  result: ResultOfHash.new(resp.result["hash"])
@@ -844,8 +390,7 @@ module TonSdk
844
390
  end
845
391
 
846
392
  def self.sha512(ctx, params)
847
- pr_json = params.to_h.to_json
848
- Interop::request_to_native_lib(ctx, "crypto.sha512", pr_json) do |resp|
393
+ Interop::request_to_native_lib(ctx, "crypto.sha512", params) do |resp|
849
394
  if resp.success?
850
395
  yield NativeLibResponsetResult.new(
851
396
  result: ResultOfHash.new(resp.result["hash"])
@@ -857,8 +402,7 @@ module TonSdk
857
402
  end
858
403
 
859
404
  def self.scrypt(ctx, params)
860
- pr_json = params.to_h.to_json
861
- Interop::request_to_native_lib(ctx, "crypto.scrypt", pr_json) do |resp|
405
+ Interop::request_to_native_lib(ctx, "crypto.scrypt", params) do |resp|
862
406
  if resp.success?
863
407
  yield NativeLibResponsetResult.new(
864
408
  result: ResultOfScrypt.new(resp.result["key"])
@@ -870,8 +414,7 @@ module TonSdk
870
414
  end
871
415
 
872
416
  def self.nacl_sign_keypair_from_secret_key(ctx, params)
873
- pr_json = params.to_h.to_json
874
- Interop::request_to_native_lib(ctx, "crypto.nacl_sign_keypair_from_secret_key", pr_json) do |resp|
417
+ Interop::request_to_native_lib(ctx, "crypto.nacl_sign_keypair_from_secret_key", params) do |resp|
875
418
  if resp.success?
876
419
  yield NativeLibResponsetResult.new(
877
420
  result: KeyPair.new(public_: resp.result["public"], secret: resp.result["secret"])
@@ -883,8 +426,7 @@ module TonSdk
883
426
  end
884
427
 
885
428
  def self.nacl_sign(ctx, params)
886
- pr_json = params.to_h.to_json
887
- Interop::request_to_native_lib(ctx, "crypto.nacl_sign", pr_json) do |resp|
429
+ Interop::request_to_native_lib(ctx, "crypto.nacl_sign", params) do |resp|
888
430
  if resp.success?
889
431
  yield NativeLibResponsetResult.new(
890
432
  result: ResultOfNaclSign.new(resp.result["signed"])
@@ -896,8 +438,7 @@ module TonSdk
896
438
  end
897
439
 
898
440
  def self.nacl_sign_open(ctx, params)
899
- pr_json = params.to_h.to_json
900
- Interop::request_to_native_lib(ctx, "crypto.nacl_sign_open", pr_json) do |resp|
441
+ Interop::request_to_native_lib(ctx, "crypto.nacl_sign_open", params) do |resp|
901
442
  if resp.success?
902
443
  yield NativeLibResponsetResult.new(
903
444
  result: ResultOfNaclSignOpen.new(resp.result["unsigned"])
@@ -909,8 +450,7 @@ module TonSdk
909
450
  end
910
451
 
911
452
  def self.nacl_sign_detached(ctx, params)
912
- pr_json = params.to_h.to_json
913
- Interop::request_to_native_lib(ctx, "crypto.nacl_sign_detached", pr_json) do |resp|
453
+ Interop::request_to_native_lib(ctx, "crypto.nacl_sign_detached", params) do |resp|
914
454
  if resp.success?
915
455
  yield NativeLibResponsetResult.new(
916
456
  result: ResultOfNaclSignDetached.new(resp.result["signature"])
@@ -921,8 +461,20 @@ module TonSdk
921
461
  end
922
462
  end
923
463
 
464
+ def self.nacl_sign_detached_verify(ctx, params)
465
+ Interop::request_to_native_lib(ctx, "crypto.nacl_sign_detached_verify", params) do |resp|
466
+ if resp.success?
467
+ yield NativeLibResponsetResult.new(
468
+ result: ResultOfNaclSignDetachedVerify.new(resp.result["succeeded"])
469
+ )
470
+ else
471
+ yield resp
472
+ end
473
+ end
474
+ end
475
+
924
476
  def self.nacl_box_keypair(ctx)
925
- Interop::request_to_native_lib(ctx, "crypto.nacl_box_keypair", "") do |resp|
477
+ Interop::request_to_native_lib(ctx, "crypto.nacl_box_keypair") do |resp|
926
478
  if resp.success?
927
479
  yield NativeLibResponsetResult.new(
928
480
  result: KeyPair.new(public_: resp.result["public"], secret: resp.result["secret"])
@@ -934,8 +486,7 @@ module TonSdk
934
486
  end
935
487
 
936
488
  def self.nacl_box_keypair_from_secret_key(ctx, params)
937
- pr_json = params.to_h.to_json
938
- Interop::request_to_native_lib(ctx, "crypto.nacl_box_keypair_from_secret_key", pr_json) do |resp|
489
+ Interop::request_to_native_lib(ctx, "crypto.nacl_box_keypair_from_secret_key", params) do |resp|
939
490
  if resp.success?
940
491
  yield NativeLibResponsetResult.new(
941
492
  result: KeyPair.new(public_: resp.result["public"], secret: resp.result["secret"])
@@ -947,8 +498,7 @@ module TonSdk
947
498
  end
948
499
 
949
500
  def self.nacl_box(ctx, params)
950
- pr_json = params.to_h.to_json
951
- Interop::request_to_native_lib(ctx, "crypto.nacl_box", pr_json) do |resp|
501
+ Interop::request_to_native_lib(ctx, "crypto.nacl_box", params) do |resp|
952
502
  if resp.success?
953
503
  yield NativeLibResponsetResult.new(
954
504
  result: ResultOfNaclBox.new(resp.result["encrypted"])
@@ -960,8 +510,7 @@ module TonSdk
960
510
  end
961
511
 
962
512
  def self.nacl_box_open(ctx, params)
963
- pr_json = params.to_h.to_json
964
- Interop::request_to_native_lib(ctx, "crypto.nacl_box_open", pr_json) do |resp|
513
+ Interop::request_to_native_lib(ctx, "crypto.nacl_box_open", params) do |resp|
965
514
  if resp.success?
966
515
  yield NativeLibResponsetResult.new(
967
516
  result: ResultOfNaclBoxOpen.new(resp.result["decrypted"])
@@ -973,8 +522,7 @@ module TonSdk
973
522
  end
974
523
 
975
524
  def self.nacl_secret_box(ctx, params)
976
- pr_json = params.to_h.to_json
977
- Interop::request_to_native_lib(ctx, "crypto.nacl_secret_box", pr_json) do |resp|
525
+ Interop::request_to_native_lib(ctx, "crypto.nacl_secret_box", params) do |resp|
978
526
  if resp.success?
979
527
  yield NativeLibResponsetResult.new(
980
528
  result: ResultOfNaclBox.new(resp.result["encrypted"])
@@ -986,8 +534,7 @@ module TonSdk
986
534
  end
987
535
 
988
536
  def self.nacl_secret_box_open(ctx, params)
989
- pr_json = params.to_h.to_json
990
- Interop::request_to_native_lib(ctx, "crypto.nacl_secret_box_open", pr_json) do |resp|
537
+ Interop::request_to_native_lib(ctx, "crypto.nacl_secret_box_open", params) do |resp|
991
538
  if resp.success?
992
539
  yield NativeLibResponsetResult.new(
993
540
  result: ResultOfNaclBoxOpen.new(resp.result["decrypted"])
@@ -999,8 +546,7 @@ module TonSdk
999
546
  end
1000
547
 
1001
548
  def self.mnemonic_words(ctx, params)
1002
- pr_json = params.to_h.to_json
1003
- Interop::request_to_native_lib(ctx, "crypto.mnemonic_words", pr_json) do |resp|
549
+ Interop::request_to_native_lib(ctx, "crypto.mnemonic_words", params) do |resp|
1004
550
  if resp.success?
1005
551
  yield NativeLibResponsetResult.new(
1006
552
  result: ResultOfMnemonicWords.new(resp.result["words"])
@@ -1012,8 +558,7 @@ module TonSdk
1012
558
  end
1013
559
 
1014
560
  def self.mnemonic_from_random(ctx, params)
1015
- pr_json = params.to_h.to_json
1016
- Interop::request_to_native_lib(ctx, "crypto.mnemonic_from_random", pr_json) do |resp|
561
+ Interop::request_to_native_lib(ctx, "crypto.mnemonic_from_random", params) do |resp|
1017
562
  if resp.success?
1018
563
  yield NativeLibResponsetResult.new(
1019
564
  result: ResultOfMnemonicFromRandom.new(resp.result["phrase"])
@@ -1025,8 +570,7 @@ module TonSdk
1025
570
  end
1026
571
 
1027
572
  def self.mnemonic_from_entropy(ctx, params)
1028
- pr_json = params.to_h.to_json
1029
- Interop::request_to_native_lib(ctx, "crypto.mnemonic_from_entropy", pr_json) do |resp|
573
+ Interop::request_to_native_lib(ctx, "crypto.mnemonic_from_entropy", params) do |resp|
1030
574
  if resp.success?
1031
575
  yield NativeLibResponsetResult.new(
1032
576
  result: ResultOfMnemonicFromEntropy.new(resp.result["phrase"])
@@ -1038,8 +582,7 @@ module TonSdk
1038
582
  end
1039
583
 
1040
584
  def self.mnemonic_verify(ctx, params)
1041
- pr_json = params.to_h.to_json
1042
- Interop::request_to_native_lib(ctx, "crypto.mnemonic_verify", pr_json) do |resp|
585
+ Interop::request_to_native_lib(ctx, "crypto.mnemonic_verify", params) do |resp|
1043
586
  if resp.success?
1044
587
  yield NativeLibResponsetResult.new(
1045
588
  result: ResultOfMnemonicVerify.new(resp.result["valid"])
@@ -1051,8 +594,7 @@ module TonSdk
1051
594
  end
1052
595
 
1053
596
  def self.mnemonic_derive_sign_keys(ctx, params)
1054
- pr_json = params.to_h.to_json
1055
- Interop::request_to_native_lib(ctx, "crypto.mnemonic_derive_sign_keys", pr_json) do |resp|
597
+ Interop::request_to_native_lib(ctx, "crypto.mnemonic_derive_sign_keys", params) do |resp|
1056
598
  if resp.success?
1057
599
  yield NativeLibResponsetResult.new(
1058
600
  result: KeyPair.new(public_: resp.result["public"], secret: resp.result["secret"])
@@ -1064,8 +606,7 @@ module TonSdk
1064
606
  end
1065
607
 
1066
608
  def self.hdkey_xprv_from_mnemonic(ctx, params)
1067
- pr_json = params.to_h.to_json
1068
- Interop::request_to_native_lib(ctx, "crypto.hdkey_xprv_from_mnemonic", pr_json) do |resp|
609
+ Interop::request_to_native_lib(ctx, "crypto.hdkey_xprv_from_mnemonic", params) do |resp|
1069
610
  if resp.success?
1070
611
  yield NativeLibResponsetResult.new(
1071
612
  result: ResultOfHDKeyXPrvFromMnemonic.new(resp.result["xprv"])
@@ -1077,8 +618,7 @@ module TonSdk
1077
618
  end
1078
619
 
1079
620
  def self.hdkey_derive_from_xprv(ctx, params)
1080
- pr_json = params.to_h.to_json
1081
- Interop::request_to_native_lib(ctx, "crypto.hdkey_derive_from_xprv", pr_json) do |resp|
621
+ Interop::request_to_native_lib(ctx, "crypto.hdkey_derive_from_xprv", params) do |resp|
1082
622
  if resp.success?
1083
623
  yield NativeLibResponsetResult.new(
1084
624
  result: ResultOfHDKeyDeriveFromXPrv.new(resp.result["xprv"])
@@ -1090,8 +630,7 @@ module TonSdk
1090
630
  end
1091
631
 
1092
632
  def self.hdkey_derive_from_xprv_path(ctx, params)
1093
- pr_json = params.to_h.to_json
1094
- Interop::request_to_native_lib(ctx, "crypto.hdkey_derive_from_xprv_path", pr_json) do |resp|
633
+ Interop::request_to_native_lib(ctx, "crypto.hdkey_derive_from_xprv_path", params) do |resp|
1095
634
  if resp.success?
1096
635
  yield NativeLibResponsetResult.new(
1097
636
  result: ResultOfHDKeyDeriveFromXPrvPath.new(resp.result["xprv"])
@@ -1103,8 +642,7 @@ module TonSdk
1103
642
  end
1104
643
 
1105
644
  def self.hdkey_secret_from_xprv(ctx, params)
1106
- pr_json = params.to_h.to_json
1107
- Interop::request_to_native_lib(ctx, "crypto.hdkey_secret_from_xprv", pr_json) do |resp|
645
+ Interop::request_to_native_lib(ctx, "crypto.hdkey_secret_from_xprv", params) do |resp|
1108
646
  if resp.success?
1109
647
  yield NativeLibResponsetResult.new(
1110
648
  result: ResultOfHDKeySecretFromXPrv.new(resp.result["secret"])
@@ -1116,8 +654,7 @@ module TonSdk
1116
654
  end
1117
655
 
1118
656
  def self.hdkey_public_from_xprv(ctx, params)
1119
- pr_json = params.to_h.to_json
1120
- Interop::request_to_native_lib(ctx, "crypto.hdkey_public_from_xprv", pr_json) do |resp|
657
+ Interop::request_to_native_lib(ctx, "crypto.hdkey_public_from_xprv", params) do |resp|
1121
658
  if resp.success?
1122
659
  yield NativeLibResponsetResult.new(
1123
660
  result: ResultOfHDKeyPublicFromXPrv.new(resp.result["public"])
@@ -1129,8 +666,7 @@ module TonSdk
1129
666
  end
1130
667
 
1131
668
  def self.chacha20(ctx, params)
1132
- pr_json = params.to_h.to_json
1133
- Interop::request_to_native_lib(ctx, "crypto.chacha20", pr_json) do |resp|
669
+ Interop::request_to_native_lib(ctx, "crypto.chacha20", params) do |resp|
1134
670
  if resp.success?
1135
671
  yield NativeLibResponsetResult.new(
1136
672
  result: ResultOfChaCha20.new(resp.result["data"])
@@ -1181,7 +717,7 @@ module TonSdk
1181
717
  end
1182
718
 
1183
719
  def self.get_signing_box(ctx, params)
1184
- Interop::request_to_native_lib(ctx, "crypto.get_signing_box", params.to_h.to_json) do |resp|
720
+ Interop::request_to_native_lib(ctx, "crypto.get_signing_box", params) do |resp|
1185
721
  if resp.success?
1186
722
  yield NativeLibResponsetResult.new(
1187
723
  result: RegisteredSigningBox.new(resp.result["handle"])
@@ -1196,7 +732,6 @@ module TonSdk
1196
732
  Interop::request_to_native_lib(
1197
733
  ctx,
1198
734
  "crypto.signing_box_get_public_key",
1199
- params.to_h.to_json,
1200
735
  is_single_thread_only: is_single_thread_only
1201
736
  ) do |resp|
1202
737
  if resp.success?
@@ -1210,7 +745,7 @@ module TonSdk
1210
745
  end
1211
746
 
1212
747
  def self.signing_box_sign(ctx, params)
1213
- Interop::request_to_native_lib(ctx, "crypto.signing_box_sign", params.to_h.to_json) do |resp|
748
+ Interop::request_to_native_lib(ctx, "crypto.signing_box_sign", params) do |resp|
1214
749
  if resp.success?
1215
750
  yield NativeLibResponsetResult.new(
1216
751
  result: ResultOfSigningBoxSign.new(resp.result["signature"])
@@ -1222,10 +757,10 @@ module TonSdk
1222
757
  end
1223
758
 
1224
759
  def self.remove_signing_box(ctx, params)
1225
- Interop::request_to_native_lib(ctx, "crypto.remove_signing_box", params.to_h.to_json) do |resp|
760
+ Interop::request_to_native_lib(ctx, "crypto.remove_signing_box", params) do |resp|
1226
761
  if resp.success?
1227
762
  yield NativeLibResponsetResult.new(
1228
- result: ResultOfSigningBoxSign.new(resp.result["signature"])
763
+ result: nil
1229
764
  )
1230
765
  else
1231
766
  yield resp
@@ -1233,11 +768,51 @@ module TonSdk
1233
768
  end
1234
769
  end
1235
770
 
1236
- def self.nacl_sign_detached_verify(ctx, params)
1237
- Interop::request_to_native_lib(ctx, "crypto.nacl_sign_detached_verify", params.to_h.to_json) do |resp|
771
+ def self.register_encryption_box(ctx, app_obj:)
772
+ client_callback = Proc.new do |type_, x|
773
+ app_res = app_obj.request(x["request_data"])
774
+ app_req_result = case app_res
775
+ in [:success, result]
776
+ TonSdk::Client::AppRequestResult.new(
777
+ type_: :ok,
778
+ result: result
779
+ )
780
+ in [:error, text]
781
+ TonSdk::Client::AppRequestResult.new(
782
+ type_: :error,
783
+ text: text
784
+ )
785
+ end
786
+
787
+ params = TonSdk::Client::ParamsOfResolveAppRequest.new(
788
+ app_request_id: x["app_request_id"],
789
+ result: app_req_result
790
+ )
791
+ TonSdk::Client.resolve_app_request(ctx, params)
792
+ end
793
+
794
+ Interop::request_to_native_lib(
795
+ ctx,
796
+ "crypto.register_encryption_box",
797
+ nil,
798
+ client_callback: client_callback,
799
+ is_single_thread_only: false
800
+ ) do |resp|
1238
801
  if resp.success?
1239
802
  yield NativeLibResponsetResult.new(
1240
- result: ResultOfNaclSignDetachedVerify.new(resp.result["succeeded"])
803
+ result: RegisteredEncryptionBox.new(resp.result["handle"])
804
+ )
805
+ else
806
+ yield resp
807
+ end
808
+ end
809
+ end
810
+
811
+ def self.encryption_box_get_info(ctx, params)
812
+ Interop::request_to_native_lib(ctx, "crypto.encryption_box_get_info", params) do |resp|
813
+ if resp.success?
814
+ yield NativeLibResponsetResult.new(
815
+ result: ResultOfEncryptionBoxGetInfo.new(resp.result["info"])
1241
816
  )
1242
817
  else
1243
818
  yield resp