ton_sdk_client 1.7.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,344 @@
1
+ module TonSdk
2
+ module Boc
3
+
4
+ #
5
+ # types
6
+ #
7
+
8
+ class ParamsOfParse
9
+ attr_reader :boc
10
+
11
+ def initialize(a)
12
+ @boc = a
13
+ end
14
+
15
+ def to_h = { boc: @boc }
16
+ end
17
+
18
+ class ResultOfParse
19
+ attr_reader :parsed
20
+
21
+ def initialize(a)
22
+ @parsed = a
23
+ end
24
+ end
25
+
26
+ class ParamsOfParseShardstate
27
+ attr_reader :boc, :id, :workchain_id
28
+
29
+ def initialize(boc:, id_:, workchain_id:)
30
+ @boc = boc
31
+ @id_ = id_
32
+ @workchain_id = workchain_id
33
+ end
34
+
35
+ def to_h
36
+ {
37
+ boc: @boc,
38
+ id: @id_,
39
+ workchain_id: @workchain_id
40
+ }
41
+ end
42
+ end
43
+
44
+ class ParamsOfGetBlockchainConfig
45
+ attr_reader :block_boc
46
+
47
+ def initialize(a)
48
+ @block_boc = a
49
+ end
50
+
51
+ def to_h
52
+ {
53
+ block_boc: @block_boc
54
+ }
55
+ end
56
+ end
57
+
58
+ class ResultOfGetBlockchainConfig
59
+ attr_reader :config_boc
60
+
61
+ def initialize(a)
62
+ @config_boc = a
63
+ end
64
+ end
65
+
66
+ class ParamsOfGetBocHash
67
+ attr_reader :boc
68
+
69
+ def initialize(a)
70
+ @boc = a
71
+ end
72
+
73
+ def to_h
74
+ {
75
+ boc: @boc
76
+ }
77
+ end
78
+ end
79
+
80
+ class ResultOfGetBocHash
81
+ attr_reader :hash
82
+
83
+ def initialize(a)
84
+ @hash = a
85
+ end
86
+ end
87
+
88
+ class ParamsOfGetCodeFromTvc
89
+ attr_reader :tvc
90
+
91
+ def initialize(a)
92
+ @tvc = a
93
+ end
94
+
95
+ def to_h
96
+ {
97
+ tvc: @tvc
98
+ }
99
+ end
100
+ end
101
+
102
+ class ResultOfGetCodeFromTvc
103
+ attr_reader :code
104
+
105
+ def initialize(a)
106
+ @code = a
107
+ end
108
+ end
109
+
110
+ class ParamsOfBocCacheGet
111
+ attr_reader :boc_ref
112
+
113
+ def initialize(a)
114
+ @boc_ref = a
115
+ end
116
+
117
+ def to_h = { boc_ref: @boc_ref }
118
+ end
119
+
120
+ class ResultOfBocCacheGet
121
+ attr_reader :boc
122
+
123
+ def initialize(boc: nil)
124
+ @boc = boc
125
+ end
126
+ end
127
+
128
+ class BocCacheType
129
+ TYPES = [
130
+ :pinned,
131
+ :unpinned
132
+ ]
133
+
134
+ attr_reader :type_, :pin
135
+
136
+ def new_with_type_pinned(pin)
137
+ @type_ = :pinned
138
+ @pin = pin
139
+ end
140
+
141
+ def new_with_type_unpinned
142
+ @type_ = :unpinned
143
+ end
144
+
145
+ def to_h
146
+ h1 = {
147
+ type: Helper.sym_to_capitalized_case_str(@type_)
148
+ }
149
+
150
+ h2 = if @type_ == :pinned
151
+ {
152
+ pin: @pin
153
+ }
154
+ else
155
+ { }
156
+ end
157
+
158
+ h1.merge(h2)
159
+ end
160
+ end
161
+
162
+ class ParamsOfBocCacheSet
163
+ attr_reader :boc, :cache_type
164
+
165
+ def initialize(boc:, cache_type:)
166
+ @boc = boc
167
+ @cache_type = cache_type
168
+ end
169
+
170
+ def to_h
171
+ {
172
+ boc: @boc,
173
+ cache_type: @cache_type.to_h
174
+ }
175
+ end
176
+ end
177
+
178
+ class ResultOfBocCacheGet
179
+ attr_reader :boc_ref
180
+
181
+ def initialize(a)
182
+ @boc_ref = a
183
+ end
184
+ end
185
+
186
+ class ParamsOfBocCacheUnpin
187
+ attr_reader :boc, :boc_ref
188
+
189
+ def initialize(boc:, boc_ref: nil)
190
+ @boc = boc
191
+ @boc_ref = boc_ref
192
+ end
193
+
194
+ def to_h
195
+ {
196
+ boc: @boc,
197
+ boc_ref: @boc_ref
198
+ }
199
+ end
200
+ end
201
+
202
+
203
+
204
+ #
205
+ # functions
206
+ #
207
+
208
+ def self.parse_message(ctx, params)
209
+ Interop::request_to_native_lib(ctx, "boc.parse_message", params.to_h.to_json) do |resp|
210
+ if resp.success?
211
+ yield NativeLibResponsetResult.new(
212
+ result: ResultOfParse.new(resp.result["parsed"])
213
+ )
214
+ else
215
+ yield resp
216
+ end
217
+ end
218
+ end
219
+
220
+ def self.parse_transaction(ctx, params)
221
+ Interop::request_to_native_lib(ctx, "boc.parse_transaction", params.to_h.to_json) do |resp|
222
+ if resp.success?
223
+ yield NativeLibResponsetResult.new(
224
+ result: ResultOfParse.new(resp.result["parsed"])
225
+ )
226
+ else
227
+ yield resp
228
+ end
229
+ end
230
+ end
231
+
232
+ def self.parse_account(ctx, params)
233
+ Interop::request_to_native_lib(ctx, "boc.parse_account", params.to_h.to_json) do |resp|
234
+ if resp.success?
235
+ yield NativeLibResponsetResult.new(
236
+ result: ResultOfParse.new(resp.result["parsed"])
237
+ )
238
+ else
239
+ yield resp
240
+ end
241
+ end
242
+ end
243
+
244
+ def self.parse_block(ctx, params)
245
+ Interop::request_to_native_lib(ctx, "boc.parse_block", params.to_h.to_json) do |resp|
246
+ if resp.success?
247
+ yield NativeLibResponsetResult.new(
248
+ result: ResultOfParse.new(resp.result["parsed"])
249
+ )
250
+ else
251
+ yield resp
252
+ end
253
+ end
254
+ end
255
+
256
+ def self.parse_shardstate(ctx, params)
257
+ Interop::request_to_native_lib(ctx, "boc.parse_shardstate", params.to_h.to_json) do |resp|
258
+ if resp.success?
259
+ yield NativeLibResponsetResult.new(
260
+ result: ResultOfParse.new(resp.result["parsed"])
261
+ )
262
+ else
263
+ yield resp
264
+ end
265
+ end
266
+ end
267
+
268
+ def self.get_blockchain_config(ctx, params)
269
+ Interop::request_to_native_lib(ctx, "boc.get_blockchain_config", params.to_h.to_json) do |resp|
270
+ if resp.success?
271
+ yield NativeLibResponsetResult.new(
272
+ result: ResultOfGetBlockchainConfig.new(resp.result["config_boc"])
273
+ )
274
+ else
275
+ yield resp
276
+ end
277
+ end
278
+ end
279
+
280
+ def self.get_boc_hash(ctx, params)
281
+ Interop::request_to_native_lib(ctx, "boc.get_boc_hash", params.to_h.to_json) do |resp|
282
+ if resp.success?
283
+ yield NativeLibResponsetResult.new(
284
+ result: ResultOfGetBocHash.new(resp.result["hash"])
285
+ )
286
+ else
287
+ yield resp
288
+ end
289
+ end
290
+ end
291
+
292
+ def self.get_code_from_tvc(ctx, params)
293
+ Interop::request_to_native_lib(ctx, "boc.get_code_from_tvc", params.to_h.to_json) do |resp|
294
+ if resp.success?
295
+ yield NativeLibResponsetResult.new(
296
+ result: ResultOfGetCodeFromTvc.new(resp.result["code"])
297
+ )
298
+ else
299
+ yield resp
300
+ end
301
+ end
302
+ end
303
+
304
+ def self.cache_get(ctx, params)
305
+ Interop::request_to_native_lib(ctx, "boc.cache_get", params.to_h.to_json) do |resp|
306
+ if resp.success?
307
+ yield NativeLibResponsetResult.new(
308
+ result: ResultOfBocCacheGet.new(
309
+ boc: resp.result["boc"]
310
+ )
311
+ )
312
+ else
313
+ yield resp
314
+ end
315
+ end
316
+ end
317
+
318
+ def self.cache_set(ctx, params)
319
+ Interop::request_to_native_lib(ctx, "boc.cache_set", params.to_h.to_json) do |resp|
320
+ if resp.success?
321
+ yield NativeLibResponsetResult.new(
322
+ result: ResultOfBocCacheSet.new(
323
+ boc_ref: resp.result["boc_ref"]
324
+ )
325
+ )
326
+ else
327
+ yield resp
328
+ end
329
+ end
330
+ end
331
+
332
+ def self.cache_unpin(ctx, params)
333
+ Interop::request_to_native_lib(ctx, "boc.cache_unpin", params.to_h.to_json) do |resp|
334
+ if resp.success?
335
+ yield NativeLibResponsetResult.new(
336
+ result: nil
337
+ )
338
+ else
339
+ yield resp
340
+ end
341
+ end
342
+ end
343
+ end
344
+ end
@@ -0,0 +1,208 @@
1
+ require 'json'
2
+ require_relative './interop.rb'
3
+
4
+ module TonSdk
5
+ module Client
6
+
7
+ #
8
+ # types
9
+ #
10
+
11
+ module ErrorCode
12
+ NOT_IMPLEMENTED = 1
13
+ INVALID_HEX = 2
14
+ INVALID_BASE64 = 3
15
+ INVALID_ADDRESS = 4
16
+ CALLBACK_PARAMS_CANT_BE_CONVERTED_TO_JSON = 5
17
+ WEBSOCKET_CONNECT_ERROR = 6
18
+ WEBSOCKET_RECEIVE_ERROR = 7
19
+ WEBSOCKET_SEND_ERROR = 8
20
+ HTTP_CLIENT_CREATE_ERROR = 9
21
+ HTTP_REQUEST_CREATE_ERROR = 10
22
+ HTTP_REQUEST_SEND_ERROR = 11
23
+ HTTP_REQUEST_PARSE_ERROR = 12
24
+ CALLBACKNOTREGISTERED = 13
25
+ NET_MODULE_NOT_INIT = 14
26
+ INVALID_CONFIG = 15
27
+ CANNOT_CREATE_RUNTIME = 16
28
+ INVALID_CONTEXT_HANDLE = 17
29
+ CANNOT_SERIALIZE_RESULT = 18
30
+ CANNOT_SERIALIZE_ERROR = 19
31
+ CANNOT_CONVERT_JS_VALUE_TO_JSON = 20
32
+ CANNOT_RECEIVE_SPAWNED_RESULT = 21
33
+ SET_TIMER_ERROR = 22
34
+ INVALID_PARAMS = 23
35
+ CONTRACTS_ADDRESS_CONVERSION_FAILED = 24
36
+ UNKNOWN_FUNCTION = 25
37
+ APP_REQUEST_ERROR = 26
38
+ NO_SUCH_REQUEST = 27
39
+ CANNOT_SEND_REQUEST_RESULT = 28
40
+ CANNOT_RECEIVE_REQUEST_RESULT = 29
41
+ CANNOT_PARSE_REQUEST_RESULT = 30
42
+ UNEXPECTED_CALLBACK_RESPONSE = 31
43
+ CANNOT_PARSE_NUMBER = 32
44
+ INTERNAL_ERROR = 33
45
+ end
46
+
47
+ class ResultOfVersion
48
+ attr_reader :version
49
+
50
+ def initialize(a)
51
+ @version = a
52
+ end
53
+ end
54
+
55
+ class ResultOfGetApiReference
56
+ attr_reader :api
57
+
58
+ def initialize(a)
59
+ @api = a
60
+ end
61
+ end
62
+
63
+ class BuildInfoDependency
64
+ attr_reader :name, :git_commit
65
+
66
+ def initialize(name:, git_commit:)
67
+ @name = name
68
+ @git_commit = git_commit
69
+ end
70
+
71
+ def self.from_json(j)
72
+ return nil if j.nil?
73
+
74
+ self.new(
75
+ name: j["name"],
76
+ git_commit: j["git_commit"]
77
+ )
78
+ end
79
+ end
80
+
81
+ class ResultOfBuildInfo
82
+ attr_reader :build_number, :dependencies
83
+
84
+ def initialize(build_number:, dependencies:)
85
+ @build_number = build_number
86
+ @dependencies = dependencies
87
+ end
88
+ end
89
+
90
+ class ParamsOfAppRequest
91
+ attr_reader :app_request_id, :request_data
92
+
93
+ def initialize(app_request_id:, request_data:)
94
+ @app_request_id = app_request_id
95
+ @request_data = request_data
96
+ end
97
+ end
98
+
99
+ class AppRequestResult
100
+ TYPES = [:ok, :error]
101
+ attr_reader :type_, :text, :result
102
+
103
+ def initialize(type_:, result: nil, text: nil)
104
+ unless TYPES.include?(type_)
105
+ raise ArgumentError.new("type #{type_} is unknown; known types: #{TYPES}")
106
+ end
107
+ @type_ = type_
108
+
109
+ if !result.nil? && !text.nil?
110
+ raise ArgumentError.new("both 'result' and 'text' may not contain values at the same time")
111
+ end
112
+
113
+ if @type_ == :ok
114
+ @result = result
115
+ elsif @type_ == :error
116
+ @text = text
117
+ end
118
+ end
119
+
120
+ def to_h
121
+ {
122
+ type: Helper.sym_to_capitalized_case_str(@type_),
123
+
124
+ # may be either one instead?
125
+ result: @result,
126
+ text: @text
127
+ }
128
+ end
129
+ end
130
+
131
+ class ParamsOfResolveAppRequest
132
+ attr_reader :app_request_id, :result
133
+
134
+ def initialize(app_request_id:, result:)
135
+ @app_request_id = app_request_id
136
+ @result = result
137
+ end
138
+
139
+ def to_h
140
+ {
141
+ app_request_id: @app_request_id,
142
+ result: @result.to_h
143
+ }
144
+ end
145
+ end
146
+
147
+
148
+ #
149
+ # functions
150
+ #
151
+
152
+
153
+ # returns a version of TON
154
+ # params:
155
+ # +ctx+:: +ClientContext+ object
156
+ def self.version(ctx)
157
+ Interop::request_to_native_lib(ctx, "client.version") do |resp|
158
+ if resp.success?
159
+ yield NativeLibResponsetResult.new(
160
+ result: ResultOfVersion.new(resp.result["version"])
161
+ )
162
+ else
163
+ yield resp
164
+ end
165
+ end
166
+ end
167
+
168
+ def self.get_api_reference(ctx)
169
+ Interop::request_to_native_lib(ctx, "client.get_api_reference") do |resp|
170
+ if resp.success?
171
+ yield NativeLibResponsetResult.new(
172
+ result: ResultOfGetApiReference.new(resp.result["api"])
173
+ )
174
+ else
175
+ yield resp
176
+ end
177
+ end
178
+ end
179
+
180
+ def self.build_info(ctx)
181
+ Interop::request_to_native_lib(ctx, "client.build_info") do |resp|
182
+ if resp.success?
183
+ dp_s = resp.result["dependencies"].map { |x| BuildInfoDependency.from_json(x) }
184
+ yield NativeLibResponsetResult.new(
185
+ result: ResultOfBuildInfo.new(
186
+ build_number: resp.result["build_number"],
187
+ dependencies: dp_s
188
+ )
189
+ )
190
+ else
191
+ yield resp
192
+ end
193
+ end
194
+ end
195
+
196
+ def self.resolve_app_request(ctx, params)
197
+ Interop::request_to_native_lib(ctx, "client.resolve_app_request", params.to_h.to_json) do |resp|
198
+ if resp.success?
199
+ yield NativeLibResponsetResult.new(
200
+ result: ""
201
+ )
202
+ else
203
+ yield resp
204
+ end
205
+ end
206
+ end
207
+ end
208
+ end