ton_sdk_client 1.26.0 → 1.34.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -3
- data/README.md +24 -64
- data/lib/ton_sdk_client/abi.rb +75 -10
- data/lib/ton_sdk_client/boc.rb +29 -0
- data/lib/ton_sdk_client/client.rb +17 -0
- data/lib/ton_sdk_client/config.rb +11 -1
- data/lib/ton_sdk_client/crypto.rb +295 -61
- data/lib/ton_sdk_client/debot.rb +106 -105
- data/lib/ton_sdk_client/helper.rb +1 -1
- data/lib/ton_sdk_client/interop.rb +1 -1
- data/lib/ton_sdk_client/net.rb +25 -5
- data/lib/ton_sdk_client/processing.rb +95 -55
- data/lib/ton_sdk_client/tvm.rb +8 -2
- data/lib/ton_sdk_client/version.rb +2 -2
- metadata +2 -2
data/lib/ton_sdk_client/debot.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
module TonSdk
|
2
|
-
|
3
|
-
# NOTE
|
4
|
-
# as of 28 apr 2021, in the main repository this module is still unstable
|
5
2
|
module Debot
|
6
3
|
|
7
4
|
#
|
@@ -21,22 +18,23 @@ module TonSdk
|
|
21
18
|
EXTERNAL_CALL_FAILED = 810
|
22
19
|
BROWSER_CALLBACK_FAILED = 811
|
23
20
|
OPERATION_REJECTED = 812
|
21
|
+
DEBOT_NO_CODE = 813
|
24
22
|
end
|
25
23
|
|
26
24
|
DebotAction = KwStruct.new(:description, :name, :action_type, :to, :attributes, :misc) do
|
27
25
|
def to_h
|
28
26
|
{
|
29
|
-
description:
|
30
|
-
name:
|
31
|
-
action_type:
|
32
|
-
to:
|
33
|
-
attributes:
|
34
|
-
misc:
|
27
|
+
description: description,
|
28
|
+
name: name,
|
29
|
+
action_type: action_type,
|
30
|
+
to: to,
|
31
|
+
attributes: attributes,
|
32
|
+
misc: misc
|
35
33
|
}
|
36
34
|
end
|
37
35
|
|
38
36
|
def self.from_json(j)
|
39
|
-
return
|
37
|
+
return if j.nil?
|
40
38
|
|
41
39
|
self.new(
|
42
40
|
description: j["description"],
|
@@ -49,20 +47,59 @@ module TonSdk
|
|
49
47
|
end
|
50
48
|
end
|
51
49
|
|
52
|
-
|
50
|
+
DebotInfo = KwStruct.new(
|
51
|
+
:name,
|
52
|
+
:version,
|
53
|
+
:publisher,
|
54
|
+
:caption,
|
55
|
+
:author,
|
56
|
+
:support,
|
57
|
+
:hello,
|
58
|
+
:language,
|
59
|
+
:dabi,
|
60
|
+
:icon,
|
61
|
+
:interfaces,
|
62
|
+
:dabi_version
|
63
|
+
) do
|
64
|
+
def initialize(
|
65
|
+
name: nil,
|
66
|
+
version: nil,
|
67
|
+
publisher: nil,
|
68
|
+
caption: nil,
|
69
|
+
author: nil,
|
70
|
+
support: nil,
|
71
|
+
hello: nil,
|
72
|
+
language: nil,
|
73
|
+
dabi: nil,
|
74
|
+
icon: nil,
|
75
|
+
interfaces: [],
|
76
|
+
dabi_version: nil
|
77
|
+
)
|
78
|
+
super
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
class DebotActivity
|
83
|
+
attr_reader :type, :msg, :dst, :out, :fee, :setcode, :signkey, :signing_box_handle
|
84
|
+
end
|
85
|
+
|
86
|
+
Spending = KwStruct.new(:amount, :dst)
|
87
|
+
|
88
|
+
ParamsOfInit = KwStruct.new(:address)
|
53
89
|
|
54
90
|
RegisteredDebot = KwStruct.new(:debot_handle, :debot_abi, :info) do
|
55
|
-
def to_h
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
91
|
+
def to_h
|
92
|
+
{
|
93
|
+
debot_handle: debot_handle,
|
94
|
+
debot_abi: debot_abi,
|
95
|
+
info: info.to_h
|
96
|
+
}
|
97
|
+
end
|
60
98
|
end
|
61
99
|
|
62
100
|
class ParamsOfAppDebotBrowser
|
63
101
|
private_class_method :new
|
64
102
|
|
65
|
-
# todo remove?
|
66
103
|
TYPE_VALUES = [
|
67
104
|
:log,
|
68
105
|
:switch,
|
@@ -75,61 +112,61 @@ module TonSdk
|
|
75
112
|
:approve
|
76
113
|
]
|
77
114
|
|
78
|
-
attr_reader :
|
115
|
+
attr_reader :type, :msg, :context_id, :action, :prompt, :debot_addr, :message, :activity
|
79
116
|
|
80
117
|
def self.new_with_type_log(msg)
|
81
|
-
@
|
118
|
+
@type = :log
|
82
119
|
@msg = msg
|
83
120
|
end
|
84
121
|
|
85
122
|
def self.new_with_type_switch(context_id)
|
86
|
-
@
|
123
|
+
@type = :switch
|
87
124
|
@context_id = context_id
|
88
125
|
end
|
89
126
|
|
90
127
|
def self.new_with_type_switch_completed
|
91
|
-
@
|
128
|
+
@type = :switch_completed
|
92
129
|
end
|
93
130
|
|
94
131
|
def self.new_with_type_show_action(action)
|
95
|
-
@
|
132
|
+
@type = :show_action
|
96
133
|
@action = action
|
97
134
|
end
|
98
135
|
|
99
136
|
def self.new_with_type_input(prompt)
|
100
|
-
@
|
137
|
+
@type = :input
|
101
138
|
@prompt = prompt
|
102
139
|
end
|
103
140
|
|
104
141
|
def self.new_with_type_get_signing_box
|
105
|
-
@
|
142
|
+
@type = :get_signing_box
|
106
143
|
end
|
107
144
|
|
108
145
|
def self.new_with_type_invoke_debot(debot_addr, action)
|
109
|
-
@
|
146
|
+
@type = :invoke_debot
|
110
147
|
@debot_addr = debot_addr
|
111
148
|
@action = action
|
112
149
|
end
|
113
150
|
|
114
151
|
def self.new_with_type_send(message)
|
115
|
-
@
|
152
|
+
@type = :send
|
116
153
|
@message = message
|
117
154
|
end
|
118
155
|
|
119
156
|
def self.new_with_type_approve(activity)
|
120
|
-
@
|
157
|
+
@type = :approve
|
121
158
|
@activity = activity
|
122
159
|
end
|
123
160
|
|
124
161
|
def to_h
|
125
162
|
{
|
126
|
-
type: Helper.sym_to_capitalized_case_str(
|
127
|
-
msg:
|
128
|
-
context_id:
|
129
|
-
action:
|
130
|
-
prompt:
|
131
|
-
debot_addr:
|
132
|
-
message:
|
163
|
+
type: Helper.sym_to_capitalized_case_str(type),
|
164
|
+
msg: msg,
|
165
|
+
context_id: context_id,
|
166
|
+
action: action,
|
167
|
+
prompt: prompt,
|
168
|
+
debot_addr: debot_addr,
|
169
|
+
message: message
|
133
170
|
}
|
134
171
|
end
|
135
172
|
|
@@ -173,118 +210,79 @@ module TonSdk
|
|
173
210
|
private
|
174
211
|
|
175
212
|
def self.parse_type(type_str)
|
176
|
-
|
177
|
-
|
178
|
-
|
213
|
+
parsed_type = Helper.capitalized_case_str_to_snake_case_sym(type_str)
|
214
|
+
|
215
|
+
unless TYPE_VALUES.include?(type_str)
|
216
|
+
raise ArgumentError.new("type #{type_str} is unknown; known types: #{TYPE_VALUES}")
|
179
217
|
end
|
180
218
|
|
181
|
-
|
219
|
+
parsed_type
|
182
220
|
end
|
183
221
|
end
|
184
222
|
|
185
223
|
class ResultOfAppDebotBrowser
|
186
224
|
private_class_method :new
|
187
225
|
|
188
|
-
attr_reader :
|
226
|
+
attr_reader :type, :value, :signing_box, :is_approved
|
189
227
|
|
190
228
|
def self.new_with_type_input(a)
|
191
|
-
@
|
229
|
+
@type = :input
|
192
230
|
@value = a
|
193
231
|
end
|
194
232
|
|
195
233
|
def self.new_with_type_get_signing_box(a)
|
196
|
-
@
|
234
|
+
@type = :get_signing_box
|
197
235
|
@signing_box = signing_box
|
198
236
|
end
|
199
237
|
|
200
238
|
def self.new_with_type_invoke_debot
|
201
|
-
@
|
239
|
+
@type = :invoke_debot
|
202
240
|
end
|
203
241
|
|
204
242
|
def self.new_with_type_approve(a)
|
205
|
-
@
|
243
|
+
@type = :approve
|
206
244
|
@is_approved = a
|
207
245
|
end
|
208
246
|
end
|
209
247
|
|
248
|
+
ParamsOfStart = KwStruct.new(:debot_handle)
|
249
|
+
|
210
250
|
ParamsOfFetch = KwStruct.new(:address)
|
211
251
|
|
252
|
+
ResultOfFetch = KwStruct.new(:info)
|
253
|
+
|
212
254
|
ParamsOfExecute = KwStruct.new(:debot_handle, :action) do
|
213
255
|
def to_h
|
214
256
|
{
|
215
|
-
debot_handle:
|
216
|
-
action:
|
257
|
+
debot_handle: debot_handle,
|
258
|
+
action: action.to_h
|
217
259
|
}
|
218
260
|
end
|
219
261
|
end
|
220
262
|
|
221
263
|
ParamsOfSend = KwStruct.new(:debot_handle, :message)
|
222
|
-
ParamsOfInit = KwStruct.new(:address)
|
223
|
-
DebotInfo = KwStruct.new(
|
224
|
-
:name,
|
225
|
-
:version,
|
226
|
-
:publisher,
|
227
|
-
:caption,
|
228
|
-
:author,
|
229
|
-
:support,
|
230
|
-
:hello,
|
231
|
-
:language,
|
232
|
-
:dabi,
|
233
|
-
:icon,
|
234
|
-
:interfaces
|
235
|
-
) do
|
236
|
-
def initialize(
|
237
|
-
name: nil,
|
238
|
-
version: nil,
|
239
|
-
publisher: nil,
|
240
|
-
caption: nil,
|
241
|
-
author: nil,
|
242
|
-
support: nil,
|
243
|
-
hello: nil,
|
244
|
-
language: nil,
|
245
|
-
dabi: nil,
|
246
|
-
icon: nil,
|
247
|
-
interfaces: []
|
248
|
-
)
|
249
|
-
super
|
250
|
-
end
|
251
|
-
end
|
252
|
-
|
253
|
-
ResultOfFetch = KwStruct.new(:info)
|
254
|
-
Spending = KwStruct.new(:amount, :dst)
|
255
|
-
|
256
|
-
class DebotActivity
|
257
|
-
private_class_method :new
|
258
|
-
|
259
|
-
attr_reader :type_, :msg, :dst, :out, :fee, :setcode, :signkey, :signing_box_handle
|
260
|
-
|
261
|
-
def self.new_with_type_transaction(msg:, dst:, out:, fee:, setcode:, signkey:, signing_box_handle:)
|
262
|
-
@type_ = :transaction
|
263
|
-
@msg = msg
|
264
|
-
@dst = dst
|
265
|
-
@out = out
|
266
|
-
@fee = fee
|
267
|
-
@setcode = setcode
|
268
|
-
@signkey = signkey
|
269
|
-
@signing_box_handle = signing_box_handle
|
270
|
-
end
|
271
|
-
|
272
|
-
def self.from_json(j)
|
273
|
-
# todo
|
274
|
-
end
|
275
|
-
end
|
276
|
-
|
277
264
|
|
265
|
+
ParamsOfRemove = KwStruct.new(:debot_handle)
|
278
266
|
|
279
267
|
#
|
280
268
|
# functions
|
281
269
|
#
|
282
270
|
|
283
|
-
def self.init(ctx, params, app_browser_obj)
|
284
|
-
Interop::request_to_native_lib(
|
271
|
+
def self.init(ctx, params, app_browser_obj = nil)
|
272
|
+
Interop::request_to_native_lib(
|
273
|
+
ctx,
|
274
|
+
"debot.init",
|
275
|
+
params
|
276
|
+
) do |resp|
|
285
277
|
if resp.success?
|
278
|
+
debot_info = resp.result["info"].transform_keys(&:to_sym)
|
279
|
+
debot_info[:dabi_version] = debot_info.delete(:dabiVersion)
|
286
280
|
yield NativeLibResponseResult.new(
|
287
|
-
result:
|
281
|
+
result: RegisteredDebot.new(
|
282
|
+
debot_handle: resp.result["debot_handle"],
|
283
|
+
debot_abi: resp.result["debot_abi"],
|
284
|
+
info: DebotInfo.new(**debot_info)
|
285
|
+
)
|
288
286
|
)
|
289
287
|
else
|
290
288
|
yield resp
|
@@ -317,9 +315,12 @@ module TonSdk
|
|
317
315
|
is_single_thread_only: false
|
318
316
|
) do |resp|
|
319
317
|
if resp.success?
|
318
|
+
debot_info = resp.result["info"].transform_keys(&:to_sym)
|
319
|
+
debot_info[:dabi_version] = debot_info.delete(:dabiVersion)
|
320
320
|
yield NativeLibResponseResult.new(
|
321
|
-
|
322
|
-
|
321
|
+
result: ResultOfFetch.new(
|
322
|
+
info: DebotInfo.new(**debot_info)
|
323
|
+
)
|
323
324
|
)
|
324
325
|
else
|
325
326
|
yield resp
|
@@ -148,7 +148,7 @@ module TonSdk
|
|
148
148
|
|
149
149
|
# using @@request_counter here to pass a @@request_counter and handlers and then retrieve them
|
150
150
|
# is probably isn't needed.
|
151
|
-
# Thanks to the way Ruby is, the same affect can be
|
151
|
+
# Thanks to the way Ruby is, the same affect can be achieved by a block which is an easier way.
|
152
152
|
# Nonetheless, @@request_counter is incremented with each request and then sent out to a server
|
153
153
|
# in order to keep a server happy,
|
154
154
|
# because otherwise a server will, probably, reply in a wrong way.
|
data/lib/ton_sdk_client/net.rb
CHANGED
@@ -74,7 +74,10 @@ module TonSdk
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
ParamsOfSubscribe = KwStruct.new(:subscription, :variables)
|
78
|
+
|
77
79
|
ResultOfSubscribeCollection = KwStruct.new(:handle)
|
80
|
+
|
78
81
|
ParamsOfQuery = KwStruct.new(:query, :variables) do
|
79
82
|
def initialize(query:, variables: nil)
|
80
83
|
super
|
@@ -135,7 +138,7 @@ module TonSdk
|
|
135
138
|
|
136
139
|
def to_h
|
137
140
|
h = super
|
138
|
-
h[:fields] =
|
141
|
+
h[:fields] = fields.map(&:to_h)
|
139
142
|
h
|
140
143
|
end
|
141
144
|
end
|
@@ -222,7 +225,7 @@ module TonSdk
|
|
222
225
|
|
223
226
|
def to_h
|
224
227
|
h = super
|
225
|
-
h[:abi_registry] =
|
228
|
+
h[:abi_registry] = abi_registry&.map(&:to_h)
|
226
229
|
h
|
227
230
|
end
|
228
231
|
end
|
@@ -317,6 +320,24 @@ module TonSdk
|
|
317
320
|
end
|
318
321
|
end
|
319
322
|
|
323
|
+
def self.subscribe(ctx, params, client_callback: nil)
|
324
|
+
Interop::request_to_native_lib(
|
325
|
+
ctx,
|
326
|
+
"net.subscribe",
|
327
|
+
params,
|
328
|
+
client_callback: client_callback,
|
329
|
+
is_single_thread_only: false
|
330
|
+
) do |resp|
|
331
|
+
if resp.success?
|
332
|
+
yield NativeLibResponseResult.new(
|
333
|
+
result: ResultOfSubscribeCollection.new(handle: resp.result["handle"])
|
334
|
+
)
|
335
|
+
else
|
336
|
+
yield resp
|
337
|
+
end
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
320
341
|
def self.query(ctx, params)
|
321
342
|
Interop::request_to_native_lib(ctx, "net.query", params) do |resp|
|
322
343
|
if resp.success?
|
@@ -409,8 +430,8 @@ module TonSdk
|
|
409
430
|
end
|
410
431
|
end
|
411
432
|
|
412
|
-
def self.get_endpoints(ctx
|
413
|
-
Interop::request_to_native_lib(ctx, "net.get_endpoints"
|
433
|
+
def self.get_endpoints(ctx)
|
434
|
+
Interop::request_to_native_lib(ctx, "net.get_endpoints") do |resp|
|
414
435
|
if resp.success?
|
415
436
|
yield NativeLibResponseResult.new(
|
416
437
|
result: ResultOfGetEndpoints.new(
|
@@ -526,6 +547,5 @@ module TonSdk
|
|
526
547
|
end
|
527
548
|
end
|
528
549
|
end
|
529
|
-
|
530
550
|
end
|
531
551
|
end
|
@@ -1,10 +1,28 @@
|
|
1
1
|
module TonSdk
|
2
2
|
module Processing
|
3
|
-
|
4
3
|
#
|
5
4
|
# types
|
6
5
|
#
|
7
6
|
|
7
|
+
module ErrorCode
|
8
|
+
MESSAGE_ALREADY_EXPIRED = 501
|
9
|
+
MESSAGE_HAS_NOT_DESTINATION_ADDRESS = 502
|
10
|
+
CAN_NOT_BUILD_MESSAGE_CELL = 503
|
11
|
+
FETCH_BLOCK_FAILED = 504
|
12
|
+
SEND_MESSAGE_FAILED = 505
|
13
|
+
INVALID_MESSAGE_BOC = 506
|
14
|
+
MESSAGE_EXPIRED = 507
|
15
|
+
TRANSACTION_WAIT_TIMEOUT = 508
|
16
|
+
INVALID_BLOCK_RECEIVED = 509
|
17
|
+
CAN_NOT_CHECK_BLOCK_SHARD = 510
|
18
|
+
BLOCK_NOT_FOUND = 511
|
19
|
+
INVALID_DATA = 512
|
20
|
+
EXTERNAL_SIGNER_MUST_NOT_BE_USED = 513
|
21
|
+
MESSAGE_REJECTED = 514
|
22
|
+
INVALID_REMP_STATUS = 515
|
23
|
+
NEXT_REMP_STATUS_TIMEOUT = 516
|
24
|
+
end
|
25
|
+
|
8
26
|
class ParamsOfSendMessage
|
9
27
|
attr_reader :message, :abi, :send_events
|
10
28
|
|
@@ -16,9 +34,9 @@ module TonSdk
|
|
16
34
|
|
17
35
|
def to_h
|
18
36
|
{
|
19
|
-
message:
|
20
|
-
abi:
|
21
|
-
send_events:
|
37
|
+
message: message,
|
38
|
+
abi: abi&.to_h,
|
39
|
+
send_events: send_events
|
22
40
|
}
|
23
41
|
end
|
24
42
|
end
|
@@ -37,10 +55,10 @@ module TonSdk
|
|
37
55
|
|
38
56
|
def to_h
|
39
57
|
{
|
40
|
-
abi:
|
41
|
-
message:
|
42
|
-
shard_block_id:
|
43
|
-
send_events:
|
58
|
+
abi: abi&.to_h,
|
59
|
+
message: message,
|
60
|
+
shard_block_id: shard_block_id,
|
61
|
+
send_events: send_events
|
44
62
|
}
|
45
63
|
end
|
46
64
|
end
|
@@ -57,29 +75,34 @@ module TonSdk
|
|
57
75
|
|
58
76
|
def to_h
|
59
77
|
{
|
60
|
-
transaction:
|
61
|
-
out_messages:
|
62
|
-
decoded:
|
63
|
-
fees:
|
78
|
+
transaction: transaction,
|
79
|
+
out_messages: out_messages,
|
80
|
+
decoded: decoded,
|
81
|
+
fees: fees
|
64
82
|
}
|
65
83
|
end
|
66
84
|
end
|
67
85
|
|
68
86
|
class ProcessingEvent
|
69
|
-
TYPES = [
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
87
|
+
TYPES = %i[
|
88
|
+
will_fetch_first_block
|
89
|
+
fetch_first_block_failed
|
90
|
+
will_send
|
91
|
+
did_send
|
92
|
+
send_failed
|
93
|
+
will_fetch_next_block
|
94
|
+
fetch_next_block_failed
|
95
|
+
message_expired
|
96
|
+
remp_sent_to_validators
|
97
|
+
remp_included_into_block
|
98
|
+
remp_included_into_accepted_block
|
99
|
+
remp_other
|
100
|
+
remp_error
|
78
101
|
]
|
79
102
|
|
80
|
-
attr_reader :type_, :error, :shard_block_id, :message_id, :message
|
103
|
+
attr_reader :type_, :error, :shard_block_id, :message_id, :message, :args
|
81
104
|
|
82
|
-
def initialize(type_:, error: nil, shard_block_id: nil, message_id: nil, message: nil)
|
105
|
+
def initialize(type_:, error: nil, shard_block_id: nil, message_id: nil, message: nil, **args)
|
83
106
|
unless TYPES.include?(type_)
|
84
107
|
raise ArgumentError.new("type #{type_} is unknown; known types: #{TYPES}")
|
85
108
|
end
|
@@ -88,6 +111,7 @@ module TonSdk
|
|
88
111
|
@shard_block_id = shard_block_id
|
89
112
|
@message_id = message_id
|
90
113
|
@message = message
|
114
|
+
@args = args
|
91
115
|
end
|
92
116
|
|
93
117
|
def to_h
|
@@ -96,34 +120,40 @@ module TonSdk
|
|
96
120
|
}
|
97
121
|
|
98
122
|
h2 = case @type_
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
123
|
+
when :will_fetch_first_block
|
124
|
+
{ }
|
125
|
+
when :fetch_first_block_failed
|
126
|
+
{
|
127
|
+
error: @error
|
128
|
+
}
|
129
|
+
when :will_send, :did_send, :will_fetch_next_block
|
130
|
+
{
|
131
|
+
shard_block_id: @shard_block_id,
|
132
|
+
message_id: @message_id,
|
133
|
+
message: @message
|
134
|
+
}
|
135
|
+
when :send_failed, :fetch_next_block_failed
|
136
|
+
{
|
137
|
+
shard_block_id: @shard_block_id,
|
138
|
+
message_id: @message_id,
|
139
|
+
message: @message,
|
140
|
+
error: @error
|
141
|
+
}
|
142
|
+
when :message_expired
|
143
|
+
{
|
144
|
+
message_id: @message_id,
|
145
|
+
message: @message,
|
146
|
+
error: @error
|
147
|
+
}
|
148
|
+
when :remp_sent_to_validators, :remp_included_into_block, :remp_included_into_accepted_block, :remp_other, :remp_error
|
149
|
+
{
|
150
|
+
message_id: message_id,
|
151
|
+
timestamp: args[:timestamp],
|
152
|
+
json: args[:json]
|
153
|
+
}
|
154
|
+
else
|
155
|
+
raise ArgumentError.new("unsupported type: #{@type_}")
|
156
|
+
end
|
127
157
|
|
128
158
|
h1.merge(h2)
|
129
159
|
end
|
@@ -136,6 +166,10 @@ module TonSdk
|
|
136
166
|
end
|
137
167
|
|
138
168
|
ParamsOfProcessMessage = KwStruct.new(:message_encode_params, :send_events) do
|
169
|
+
def initialize(message_encode_params:, send_events:)
|
170
|
+
super
|
171
|
+
end
|
172
|
+
|
139
173
|
def to_h
|
140
174
|
{
|
141
175
|
message_encode_params: message_encode_params.to_h,
|
@@ -188,8 +222,11 @@ module TonSdk
|
|
188
222
|
result: ResultOfProcessMessage.new(
|
189
223
|
transaction: resp.result["transaction"],
|
190
224
|
out_messages: resp.result["out_messages"],
|
191
|
-
decoded:
|
192
|
-
|
225
|
+
decoded: DecodedOutput.new(
|
226
|
+
out_messages: resp.result.dig("decoded", "out_messages"),
|
227
|
+
output: resp.result.dig("decoded", "output")
|
228
|
+
),
|
229
|
+
fees: Tvm::TransactionFees.new(**resp.result["fees"].transform_keys(&:to_sym))
|
193
230
|
)
|
194
231
|
)
|
195
232
|
else
|
@@ -215,8 +252,11 @@ module TonSdk
|
|
215
252
|
result: ResultOfProcessMessage.new(
|
216
253
|
transaction: resp.result["transaction"],
|
217
254
|
out_messages: resp.result["out_messages"],
|
218
|
-
decoded:
|
219
|
-
|
255
|
+
decoded: DecodedOutput.new(
|
256
|
+
out_messages: resp.result.dig("decoded", "out_messages"),
|
257
|
+
output: resp.result.dig("decoded", "output")
|
258
|
+
),
|
259
|
+
fees: Tvm::TransactionFees.new(**resp.result["fees"].transform_keys(&:to_sym))
|
220
260
|
)
|
221
261
|
)
|
222
262
|
else
|
data/lib/ton_sdk_client/tvm.rb
CHANGED
@@ -162,7 +162,10 @@ module TonSdk
|
|
162
162
|
:gas_fee,
|
163
163
|
:out_msgs_fwd_fee,
|
164
164
|
:total_account_fees,
|
165
|
-
:total_output
|
165
|
+
:total_output,
|
166
|
+
:ext_in_msg_fee,
|
167
|
+
:total_fwd_fees,
|
168
|
+
:account_fees
|
166
169
|
) do
|
167
170
|
def initialize(
|
168
171
|
in_msg_fwd_fee:,
|
@@ -170,7 +173,10 @@ module TonSdk
|
|
170
173
|
gas_fee:,
|
171
174
|
out_msgs_fwd_fee:,
|
172
175
|
total_account_fees:,
|
173
|
-
total_output
|
176
|
+
total_output:,
|
177
|
+
ext_in_msg_fee:,
|
178
|
+
total_fwd_fees:,
|
179
|
+
account_fees:
|
174
180
|
)
|
175
181
|
super
|
176
182
|
end
|