ton_sdk_client 1.12.0 → 1.17.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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