ton_sdk_client 1.22.0 → 1.24.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8acd2e283e07e29ebb3ddf0d5517db4ff5417baa61d921c30bd190a12ba88e1a
4
- data.tar.gz: a66af55f8cb5d31e578dc770944a1334fa0b90e5b8043a67a3347f529cd5f011
3
+ metadata.gz: 7aa3942dcf8295136874ebced4c8e69b0bd5d5bf15537aa401a3fd362bc84adc
4
+ data.tar.gz: 592b046b0cb812b15573fcec3e63eb12c2006611a7a094e4194e3cb0290c5841
5
5
  SHA512:
6
- metadata.gz: 1851aa1391362eef92b4a646de3c0969ce6501010edd7ff66c266cc5f4d77f11fe11787c9ece962bd85bc6c31ea3f0b84861b33435137977d8cef1332145bdfd
7
- data.tar.gz: 4cc944c9d95d9441447cd7e137fc055d3438a09c8851a3a5ba5f5c630007476d153f622acda647fd9dd3caf3cccf3f25e4744a73e7b2ae794b5d5724439b37b3
6
+ metadata.gz: '023446187045b70c7d1afb984c58bf12ec550a631c1b1fa2ec44d2ad10661fce5e8aaa20bfb0d4d04a3b910d075663a543e98b680dbca65f921ed4b25263dff5'
7
+ data.tar.gz: 2debab81288b9ebbf77af113c7483420f6420ca4de721d317ce486b3b2e439f73008a918c5b89a8119904312fe3778f62f6f6f97e47e995ab271d894b6050237
data/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  all the changes are always according to the ones of the main TON SDK library; and on top on that, there may be additional ones
4
4
 
5
+ 1.24.0
6
+ -----
7
+ * Binaries updated to `1.24.0`;
8
+ * Changes `1.24.0` (https://github.com/tonlabs/TON-SDK/blob/master/CHANGELOG.md#1240--2021-10-18);
9
+ * **BREAKING CHANGE** All Params now require keyword arguments
10
+
5
11
  1.20.x
6
12
  -----
7
13
  * NetworkConfig and AbiContract have been changed (not mentioned explicitly in Changelog of TON SDK )
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # TON SDK client in Ruby and for Ruby
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/ton_sdk_client.png)](https://badge.fury.io/rb/ton_sdk_client)
4
- [![TON SDK version](https://img.shields.io/badge/TON%20SDK%20version-1.22.0-green)](https://github.com/tonlabs/TON-SDK/tree/1.22.0)
3
+ [![Gem Version](https://badge.fury.io/rb/ton_sdk_client.svg)](https://rubygems.org/gems/ton_sdk_client)
4
+ [![TON SDK version](https://img.shields.io/badge/TON%20SDK%20version-1.24.0-green)](https://github.com/tonlabs/TON-SDK/tree/1.24.0)
5
5
 
6
6
  Ruby gem-client bindings for [TON SDK](https://github.com/tonlabs/TON-SDK) which allows one to communicate with [FreeTON](https://freeton.org) blockchain in Ruby.
7
7
 
@@ -39,15 +39,23 @@ module TonSdk
39
39
  end
40
40
  end
41
41
 
42
- FunctionHeader = Struct.new(:expire, :time, :pubkey, keyword_init: true)
42
+ FunctionHeader = KwStruct.new(:expire, :time, :pubkey)
43
43
 
44
- CallSet = Struct.new(:function_name, :header, :input, keyword_init: true) do
44
+ CallSet = KwStruct.new(:function_name, :header, :input) do
45
45
  def initialize(function_name:, header: nil, input: nil)
46
46
  super
47
47
  end
48
+
49
+ def to_h
50
+ {
51
+ function_name: function_name,
52
+ header: header.to_h,
53
+ input: input
54
+ }
55
+ end
48
56
  end
49
57
 
50
- DeploySet = Struct.new(:tvc, :workchain_id, :initial_data, :initial_pubkey, keyword_init: true) do
58
+ DeploySet = KwStruct.new(:tvc, :workchain_id, :initial_data, :initial_pubkey) do
51
59
  def initialize(tvc:, workchain_id: nil, initial_data: nil, initial_pubkey: nil)
52
60
  super
53
61
  end
@@ -95,19 +103,19 @@ module TonSdk
95
103
  end
96
104
 
97
105
  STATIC_INIT_SOURCE_TYPES = [:message, :state_init, :tvc]
98
- StateInitSource = Struct.new(
99
- :type_,
106
+ # TODO: Refactor with subclasses?
107
+ StateInitSource = KwStruct.new(
108
+ :type,
100
109
  :source,
101
110
  :code,
102
111
  :data,
103
112
  :library,
104
113
  :tvc,
105
114
  :public_key,
106
- :init_params,
107
- keyword_init: true
115
+ :init_params
108
116
  ) do
109
117
  def initialize(
110
- type_:,
118
+ type:,
111
119
  source: nil,
112
120
  code: nil,
113
121
  data: nil,
@@ -116,42 +124,42 @@ module TonSdk
116
124
  public_key: nil,
117
125
  init_params: nil
118
126
  )
119
- unless STATIC_INIT_SOURCE_TYPES.include?(type_)
120
- raise ArgumentError.new("unknown type: #{type_}; known types: #{STATIC_INIT_SOURCE_TYPES}")
127
+ unless STATIC_INIT_SOURCE_TYPES.include?(type)
128
+ raise ArgumentError.new("unknown type: #{type}; known types: #{STATIC_INIT_SOURCE_TYPES}")
121
129
  end
122
130
  super
123
131
  end
124
132
 
125
133
  def to_h
126
134
  h1 = {
127
- type: Helper.sym_to_capitalized_case_str(@type_)
135
+ type: Helper.sym_to_capitalized_case_str(type)
128
136
  }
129
137
 
130
- h2 = case @type_
138
+ h2 = case type
131
139
  when :message
132
140
  {
133
- source: @source.to_h
141
+ source: source.to_h
134
142
  }
135
143
  when :state_init
136
144
  {
137
- code: @code,
138
- data: @data,
139
- library: @library
145
+ code: code,
146
+ data: data,
147
+ library: library
140
148
  }
141
149
  when :tvc
142
150
  {
143
- public_key: @public_key,
144
- init_params: @init_params.to_h
151
+ public_key: public_key,
152
+ init_params: init_params.to_h
145
153
  }
146
154
  else
147
- raise ArgumentError.new("unknown type: #{@type_}; known types: #{STATIC_INIT_SOURCE_TYPES}")
155
+ raise ArgumentError.new("unknown type: #{type}; known types: #{STATIC_INIT_SOURCE_TYPES}")
148
156
  end
149
157
 
150
158
  h1.merge(h2)
151
159
  end
152
160
  end
153
161
 
154
- StateInitParams = Struct.new(:abi, :value, keyword_init: true) do
162
+ StateInitParams = KwStruct.new(:abi, :value) do
155
163
  def initialize(abi:, value:)
156
164
  super
157
165
  end
@@ -159,19 +167,18 @@ module TonSdk
159
167
 
160
168
 
161
169
  MESSAGE_SOURCE_TYPES = [:encoded, :encoding_params]
162
- MessageSource = Struct.new(
163
- :type_,
170
+ MessageSource = KwStruct.new(
171
+ :type,
164
172
  :message,
165
173
  :abi,
166
174
  :address,
167
175
  :deploy_set,
168
176
  :call_set,
169
177
  :signer,
170
- :processing_try_index,
171
- keyword_init: true
178
+ :processing_try_index
172
179
  ) do
173
180
  def initialize(
174
- type_:,
181
+ type:,
175
182
  message: nil,
176
183
  abi: nil,
177
184
  address: nil,
@@ -180,8 +187,8 @@ module TonSdk
180
187
  signer: nil,
181
188
  processing_try_index: 0
182
189
  )
183
- unless MESSAGE_SOURCE_TYPES.include?(type_)
184
- raise ArgumentError.new("unknown type: #{type_}; known types: #{MESSAGE_SOURCE_TYPES}")
190
+ unless MESSAGE_SOURCE_TYPES.include?(type)
191
+ raise ArgumentError.new("unknown type: #{type}; known types: #{MESSAGE_SOURCE_TYPES}")
185
192
  end
186
193
 
187
194
  super
@@ -189,23 +196,23 @@ module TonSdk
189
196
 
190
197
  def to_h
191
198
  h1 = {
192
- type: Helper.sym_to_capitalized_case_str(@type_)
199
+ type: Helper.sym_to_capitalized_case_str(type)
193
200
  }
194
201
 
195
- h2 = case @type_
202
+ h2 = case type
196
203
  when :encoded
197
204
  {
198
- message: @message,
199
- abi: @abi.nil? ? nil : @abi.to_h
205
+ message: message,
206
+ abi: abi&.to_h
200
207
  }
201
208
  when :encoding_params
202
209
  {
203
- abi: @abi.to_h,
204
- address: @address,
205
- deploy_set: @deploy_set.nil? ? nil : @deploy_set.to_h,
206
- call_set: @call_set.nil? ? nil : @call_set.to_h,
207
- signer: @signer.to_h,
208
- processing_try_index: @processing_try_index
210
+ abi: abi.to_h,
211
+ address: address,
212
+ deploy_set: deploy_set&.to_h,
213
+ call_set: call_set&.to_h,
214
+ signer: signer&.to_h,
215
+ processing_try_index: processing_try_index
209
216
  }
210
217
  end
211
218
 
@@ -213,34 +220,50 @@ module TonSdk
213
220
  end
214
221
  end
215
222
 
216
- ParamsOfEncodeMessageBody = Struct.new(:abi, :call_set, :is_internal, :signer, :processing_try_index, keyword_init: true) do
217
- def initialize(abi:, call_set:, is_internal:, signer:, processing_try_index: 0)
218
- super
223
+ ParamsOfEncodeMessageBody = KwStruct.new(
224
+ :abi,
225
+ :call_set,
226
+ :is_internal,
227
+ :signer,
228
+ :processing_try_index
229
+ ) do
230
+ def to_h
231
+ {
232
+ abi: abi.to_h,
233
+ call_set: call_set.to_h,
234
+ is_internal: is_internal,
235
+ signer: signer.to_h,
236
+ processing_try_index: processing_try_index
237
+ }
219
238
  end
220
239
  end
221
240
 
222
- ResultOfEncodeMessageBody = Struct.new(:body, :data_to_sign, keyword_init: true) do
241
+ ResultOfEncodeMessageBody = KwStruct.new(:body, :data_to_sign) do
223
242
  def initialize(body:, data_to_sign: nil)
224
243
  super
225
244
  end
226
245
  end
227
246
 
228
- ParamsOfAttachSignatureToMessageBody = Struct.new(:abi, :public_key, :message, :signature, keyword_init: true) do
229
- def initialize(abi:, public_key:, message:, signature:)
230
- super
247
+ ParamsOfAttachSignatureToMessageBody = KwStruct.new(:abi, :public_key, :message, :signature) do
248
+ def to_h
249
+ {
250
+ abi: abi.to_h,
251
+ public_key: public_key,
252
+ message: message,
253
+ signature: signature
254
+ }
231
255
  end
232
256
  end
233
257
 
234
- ResultOfAttachSignatureToMessageBody = Struct.new(:body)
258
+ ResultOfAttachSignatureToMessageBody = KwStruct.new(:body)
235
259
 
236
- ParamsOfEncodeMessage = Struct.new(
260
+ ParamsOfEncodeMessage = KwStruct.new(
237
261
  :abi,
238
262
  :address,
239
263
  :deploy_set,
240
264
  :call_set,
241
265
  :signer,
242
- :processing_try_index,
243
- keyword_init: true
266
+ :processing_try_index
244
267
  ) do
245
268
  def initialize(
246
269
  abi:,
@@ -252,30 +275,57 @@ module TonSdk
252
275
  )
253
276
  super
254
277
  end
278
+
279
+ def to_h
280
+ {
281
+ abi: abi.to_h,
282
+ address: address,
283
+ deploy_set: deploy_set&.to_h,
284
+ call_set: call_set&.to_h,
285
+ signer: signer.to_h,
286
+ processing_try_index: processing_try_index
287
+ }
288
+ end
255
289
  end
256
290
 
257
- ResultOfEncodeMessage = Struct.new(:message, :data_to_sign, :address, :message_id, keyword_init: true) do
291
+ ResultOfEncodeMessage = KwStruct.new(:message, :data_to_sign, :address, :message_id) do
258
292
  def initialize(message:, data_to_sign: nil, address:, message_id:)
259
293
  super
260
294
  end
261
295
  end
262
296
 
263
- ParamsOfAttachSignature = Struct.new(:abi, :public_key, :message, :signature, keyword_init: true) do
297
+ ParamsOfAttachSignature = KwStruct.new(:abi, :public_key, :message, :signature) do
264
298
  def initialize(abi:, public_key:, message:, signature:)
265
299
  super
266
300
  end
301
+
302
+ def to_h
303
+ {
304
+ abi: abi&.to_h,
305
+ public_key: public_key,
306
+ message: message,
307
+ signature: signature
308
+ }
309
+ end
267
310
  end
268
311
 
269
- ResultOfAttachSignature = Struct.new(:message, :message_id, keyword_init: true) do
312
+ ResultOfAttachSignature = KwStruct.new(:message, :message_id) do
270
313
  def initialize(message:, message_id:)
271
314
  super
272
315
  end
273
316
  end
274
317
 
275
- ParamsOfDecodeMessage = Struct.new(:abi, :message, keyword_init: true) do
318
+ ParamsOfDecodeMessage = KwStruct.new(:abi, :message) do
276
319
  def initialize(abi:, message:)
277
320
  super
278
321
  end
322
+
323
+ def to_h
324
+ {
325
+ abi: abi&.to_h,
326
+ message: message
327
+ }
328
+ end
279
329
  end
280
330
 
281
331
  class DecodedMessageBody
@@ -341,19 +391,39 @@ module TonSdk
341
391
  end
342
392
  end
343
393
 
344
- ParamsOfDecodeMessageBody = Struct.new(:abi, :body, :is_internal, keyword_init: true) do
394
+ ParamsOfDecodeMessageBody = KwStruct.new(:abi, :body, :is_internal) do
345
395
  def initialize(abi:, body:, is_internal:)
346
396
  super
347
397
  end
398
+
399
+ def to_h
400
+ {
401
+ abi: abi&.to_h,
402
+ body: body,
403
+ is_internal: is_internal
404
+ }
405
+ end
348
406
  end
349
407
 
350
- ParamsOfEncodeAccount = Struct.new(:state_init, :balance, :last_trans_lt, :last_paid, keyword_init: true) do
351
- def initialize(state_init:, balance: nil, last_trans_lt: nil, last_paid: nil)
352
- super
408
+ ParamsOfEncodeAccount = KwStruct.new(
409
+ :state_init,
410
+ :balance,
411
+ :last_trans_lt,
412
+ :last_paid,
413
+ :boc_cache
414
+ ) do
415
+ def to_h
416
+ {
417
+ state_init: state_init.to_h,
418
+ balance: balance,
419
+ last_trans_lt: last_trans_lt,
420
+ last_paid: last_paid,
421
+ boc_cache: boc_cache&.to_h
422
+ }
353
423
  end
354
424
  end
355
425
 
356
- ResultOfEncodeAccount = Struct.new(:account, :id_, keyword_init: true) do
426
+ ResultOfEncodeAccount = KwStruct.new(:account, :id_) do
357
427
  def initialize(account:, id_:)
358
428
  super
359
429
  end
@@ -621,7 +691,7 @@ module TonSdk
621
691
  end
622
692
  end
623
693
 
624
- ParamsOfEncodeInternalMessage = Struct.new(
694
+ ParamsOfEncodeInternalMessage = KwStruct.new(
625
695
  :abi,
626
696
  :address,
627
697
  :src_address,
@@ -629,8 +699,7 @@ module TonSdk
629
699
  :call_set,
630
700
  :value,
631
701
  :bounce,
632
- :enable_ihr,
633
- keyword_init: true
702
+ :enable_ihr
634
703
  ) do
635
704
  def initialize(
636
705
  abi: nil,
@@ -646,20 +715,57 @@ module TonSdk
646
715
  end
647
716
  end
648
717
 
649
- ResultOfEncodeInternalMessage = Struct.new(
718
+ ResultOfEncodeInternalMessage = KwStruct.new(
650
719
  :message,
651
720
  :address,
652
- :message_id,
653
- keyword_init: true
721
+ :message_id
654
722
  ) do
655
723
  def initialize(message:, address:, message_id:)
656
724
  super
657
725
  end
658
726
  end
659
727
 
660
- ParamsOfDecodeAccountData = Struct.new(:abi, :data, keyword_init: true)
661
- ResultOfDecodeData = Struct.new(:data)
728
+ ParamsOfDecodeAccountData = KwStruct.new(:abi, :data) do
729
+ def to_h
730
+ {
731
+ abi: abi&.to_h,
732
+ data: data
733
+ }
734
+ end
735
+ end
736
+
737
+ ResultOfDecodeData = KwStruct.new(:data)
738
+
739
+ ParamsOfUpdateInitialData = KwStruct.new(
740
+ :data,
741
+ :abi,
742
+ :initial_data,
743
+ :initial_pubkey,
744
+ :boc_cache
745
+ ) do
746
+ def to_h
747
+ {
748
+ data: data,
749
+ abi: abi&.to_h,
750
+ initial_data: initial_data,
751
+ initial_pubkey: initial_pubkey,
752
+ boc_cache: boc_cache&.to_h
753
+ }
754
+ end
755
+ end
756
+
757
+ ResultOfUpdateInitialData = KwStruct.new(:data)
758
+
759
+ ParamsOfDecodeInitialData = KwStruct.new(:data, :abi) do
760
+ def to_h
761
+ {
762
+ data: data,
763
+ abi: abi&.to_h
764
+ }
765
+ end
766
+ end
662
767
 
768
+ ResultOfDecodeInitialData = KwStruct.new(:initial_pubkey, :initial_data)
663
769
 
664
770
  #
665
771
  # functions
@@ -683,7 +789,7 @@ module TonSdk
683
789
  Interop::request_to_native_lib(ctx, "abi.attach_signature_to_message_body", params) do |resp|
684
790
  if resp.success?
685
791
  yield NativeLibResponsetResult.new(
686
- result: ResultOfAttachSignatureToMessageBody.new(resp.result["body"])
792
+ result: ResultOfAttachSignatureToMessageBody.new(body: resp.result["body"])
687
793
  )
688
794
  else
689
795
  yield resp
@@ -782,7 +888,7 @@ module TonSdk
782
888
  if resp.success?
783
889
  yield NativeLibResponsetResult.new(
784
890
  result: ResultOfDecodeData.new(
785
- resp.result["data"]
891
+ data: resp.result["data"]
786
892
  )
787
893
  )
788
894
  else
@@ -791,7 +897,33 @@ module TonSdk
791
897
  end
792
898
  end
793
899
 
900
+ def self.update_initial_data(ctx, params)
901
+ Interop::request_to_native_lib(ctx, "abi.update_initial_data", params) do |resp|
902
+ if resp.success?
903
+ yield NativeLibResponsetResult.new(
904
+ result: ResultOfUpdateInitialData.new(
905
+ data: resp.result["data"]
906
+ )
907
+ )
908
+ else
909
+ yield resp
910
+ end
911
+ end
912
+ end
794
913
 
795
-
914
+ def self.decode_initial_data(ctx, params)
915
+ Interop::request_to_native_lib(ctx, "abi.decode_initial_data", params) do |resp|
916
+ if resp.success?
917
+ yield NativeLibResponsetResult.new(
918
+ result: ResultOfDecodeInitialData.new(
919
+ initial_pubkey: resp.result["initial_pubkey"],
920
+ initial_data: resp.result["initial_data"]
921
+ )
922
+ )
923
+ else
924
+ yield resp
925
+ end
926
+ end
927
+ end
796
928
  end
797
- end
929
+ end