tezos_client 1.4.3 → 1.4.4

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: fd58876a037528bff5019e089ead07ea6eaa2f4e68ec029f33c73735d4710370
4
- data.tar.gz: 588d6eb55a1a226cb824968033f181296572886cf08aae029d6227e824350db2
3
+ metadata.gz: 9ed76e36473e1470004f6e0b00e22be33b3d53a209d5864d50d6dbbf767912e7
4
+ data.tar.gz: 9ac9e6b31f46f5fc6fb9147a7394f9fc73b2131228342ed0ecfa74c7c9c3d2dd
5
5
  SHA512:
6
- metadata.gz: d6bdd249d4606aac1c18aad5acead48d4a2296816942e42b1cbe77ae4e5202efd4ce73fcaa088e17db500d7874988ae7452bc70d6dd1ee48485af0674f7362fb
7
- data.tar.gz: 88bb21809370468db816e00267ad93b6a727c90dbea8afe6a7f2aa67881acf120beb085287d8964e1217b605b9a1c05fbb0d7740ce65dd086e96d11e0b792621
6
+ metadata.gz: 2a0e8a4c78f84ee1ddad295860ebe2e50dbeaa885c490b35f76bf80d89bb8d848e5750981e8e9a8279e1b37121ff75c6efe42af39cb68d4c7a3d80e435797959
7
+ data.tar.gz: 9a2f2eec3f07caae8be2e274e74d2118e37312b38cedccc99ac7cfc643583617c1b45671efd03c0feccc135538ce781e8dc35d1273bce458f55a3440355119c4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tezos_client (1.4.2)
4
+ tezos_client (1.4.4)
5
5
  active_interaction (>= 3.8)
6
6
  activesupport (~> 6.0.0)
7
7
  base58 (~> 0.2.3)
data/demo_script.json ADDED
@@ -0,0 +1,427 @@
1
+ {
2
+ "code": [
3
+ {
4
+ "prim": "storage",
5
+ "args": [
6
+ {
7
+ "prim": "pair",
8
+ "args": [
9
+ {
10
+ "prim": "big_map",
11
+ "args": [
12
+ {
13
+ "prim": "string"
14
+ },
15
+ {
16
+ "prim": "int"
17
+ }
18
+ ],
19
+ "annots": [
20
+ "%big_map_first"
21
+ ]
22
+ },
23
+ {
24
+ "prim": "big_map",
25
+ "args": [
26
+ {
27
+ "prim": "string"
28
+ },
29
+ {
30
+ "prim": "string"
31
+ }
32
+ ],
33
+ "annots": [
34
+ "%big_map_second"
35
+ ]
36
+ }
37
+ ]
38
+ }
39
+ ]
40
+ },
41
+ {
42
+ "prim": "parameter",
43
+ "args": [
44
+ {
45
+ "prim": "or",
46
+ "args": [
47
+ {
48
+ "prim": "or",
49
+ "args": [
50
+ {
51
+ "prim": "pair",
52
+ "args": [
53
+ {
54
+ "prim": "string",
55
+ "annots": [
56
+ "%key"
57
+ ]
58
+ },
59
+ {
60
+ "prim": "int",
61
+ "annots": [
62
+ "%value"
63
+ ]
64
+ }
65
+ ],
66
+ "annots": [
67
+ "%add_first"
68
+ ]
69
+ },
70
+ {
71
+ "prim": "pair",
72
+ "args": [
73
+ {
74
+ "prim": "string",
75
+ "annots": [
76
+ "%key"
77
+ ]
78
+ },
79
+ {
80
+ "prim": "string",
81
+ "annots": [
82
+ "%value"
83
+ ]
84
+ }
85
+ ],
86
+ "annots": [
87
+ "%add_second"
88
+ ]
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "prim": "or",
94
+ "args": [
95
+ {
96
+ "prim": "pair",
97
+ "args": [
98
+ {
99
+ "prim": "pair",
100
+ "args": [
101
+ {
102
+ "prim": "string",
103
+ "annots": [
104
+ "%first"
105
+ ]
106
+ },
107
+ {
108
+ "prim": "string",
109
+ "annots": [
110
+ "%key"
111
+ ]
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ "prim": "pair",
117
+ "args": [
118
+ {
119
+ "prim": "string",
120
+ "annots": [
121
+ "%second"
122
+ ]
123
+ },
124
+ {
125
+ "prim": "string",
126
+ "annots": [
127
+ "%third"
128
+ ]
129
+ }
130
+ ]
131
+ }
132
+ ],
133
+ "annots": [
134
+ "%add_third"
135
+ ]
136
+ },
137
+ {
138
+ "prim": "nat",
139
+ "annots": [
140
+ "%always_fail"
141
+ ]
142
+ }
143
+ ]
144
+ }
145
+ ]
146
+ }
147
+ ]
148
+ },
149
+ {
150
+ "prim": "code",
151
+ "args": [
152
+ [
153
+ {
154
+ "prim": "UNPAIR"
155
+ },
156
+ {
157
+ "prim": "IF_LEFT",
158
+ "args": [
159
+ [
160
+ {
161
+ "prim": "IF_LEFT",
162
+ "args": [
163
+ [
164
+ {
165
+ "prim": "SWAP"
166
+ },
167
+ {
168
+ "prim": "UNPAIR"
169
+ },
170
+ {
171
+ "prim": "DUP",
172
+ "args": [
173
+ {
174
+ "int": "3"
175
+ }
176
+ ]
177
+ },
178
+ {
179
+ "prim": "CDR"
180
+ },
181
+ {
182
+ "prim": "SOME"
183
+ },
184
+ {
185
+ "prim": "DIG",
186
+ "args": [
187
+ {
188
+ "int": "3"
189
+ }
190
+ ]
191
+ },
192
+ {
193
+ "prim": "CAR"
194
+ },
195
+ {
196
+ "prim": "UPDATE"
197
+ },
198
+ {
199
+ "prim": "PAIR"
200
+ }
201
+ ],
202
+ [
203
+ {
204
+ "prim": "SWAP"
205
+ },
206
+ {
207
+ "prim": "UNPAIR"
208
+ },
209
+ {
210
+ "prim": "SWAP"
211
+ },
212
+ {
213
+ "prim": "DUP",
214
+ "args": [
215
+ {
216
+ "int": "3"
217
+ }
218
+ ]
219
+ },
220
+ {
221
+ "prim": "CDR"
222
+ },
223
+ {
224
+ "prim": "SOME"
225
+ },
226
+ {
227
+ "prim": "DIG",
228
+ "args": [
229
+ {
230
+ "int": "3"
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "prim": "CAR"
236
+ },
237
+ {
238
+ "prim": "UPDATE"
239
+ },
240
+ {
241
+ "prim": "SWAP"
242
+ },
243
+ {
244
+ "prim": "PAIR"
245
+ }
246
+ ]
247
+ ]
248
+ }
249
+ ],
250
+ [
251
+ {
252
+ "prim": "IF_LEFT",
253
+ "args": [
254
+ [
255
+ {
256
+ "prim": "SWAP"
257
+ },
258
+ {
259
+ "prim": "UNPAIR"
260
+ },
261
+ {
262
+ "prim": "SWAP"
263
+ },
264
+ {
265
+ "prim": "DIG",
266
+ "args": [
267
+ {
268
+ "int": "2"
269
+ }
270
+ ]
271
+ },
272
+ {
273
+ "prim": "DUP"
274
+ },
275
+ {
276
+ "prim": "GET",
277
+ "args": [
278
+ {
279
+ "int": "4"
280
+ }
281
+ ]
282
+ },
283
+ {
284
+ "prim": "SWAP"
285
+ },
286
+ {
287
+ "prim": "DUP"
288
+ },
289
+ {
290
+ "prim": "GET",
291
+ "args": [
292
+ {
293
+ "int": "3"
294
+ }
295
+ ]
296
+ },
297
+ {
298
+ "prim": "SWAP"
299
+ },
300
+ {
301
+ "prim": "DUP"
302
+ },
303
+ {
304
+ "prim": "DUG",
305
+ "args": [
306
+ {
307
+ "int": "5"
308
+ }
309
+ ]
310
+ },
311
+ {
312
+ "prim": "CAR"
313
+ },
314
+ {
315
+ "prim": "CAR"
316
+ },
317
+ {
318
+ "prim": "CONCAT"
319
+ },
320
+ {
321
+ "prim": "CONCAT"
322
+ },
323
+ {
324
+ "prim": "SOME"
325
+ },
326
+ {
327
+ "prim": "DIG",
328
+ "args": [
329
+ {
330
+ "int": "3"
331
+ }
332
+ ]
333
+ },
334
+ {
335
+ "prim": "CAR"
336
+ },
337
+ {
338
+ "prim": "CDR"
339
+ },
340
+ {
341
+ "prim": "UPDATE"
342
+ },
343
+ {
344
+ "prim": "SWAP"
345
+ },
346
+ {
347
+ "prim": "PAIR"
348
+ }
349
+ ],
350
+ [
351
+ {
352
+ "prim": "PUSH",
353
+ "args": [
354
+ {
355
+ "prim": "nat"
356
+ },
357
+ {
358
+ "int": "0"
359
+ }
360
+ ]
361
+ },
362
+ {
363
+ "prim": "SWAP"
364
+ },
365
+ {
366
+ "prim": "COMPARE"
367
+ },
368
+ {
369
+ "prim": "GE"
370
+ },
371
+ {
372
+ "prim": "IF",
373
+ "args": [
374
+ [
375
+ {
376
+ "prim": "PUSH",
377
+ "args": [
378
+ {
379
+ "prim": "string"
380
+ },
381
+ {
382
+ "string": "I'm failing"
383
+ }
384
+ ]
385
+ },
386
+ {
387
+ "prim": "FAILWITH"
388
+ }
389
+ ],
390
+ [
391
+
392
+ ]
393
+ ]
394
+ }
395
+ ]
396
+ ]
397
+ }
398
+ ]
399
+ ]
400
+ },
401
+ {
402
+ "prim": "NIL",
403
+ "args": [
404
+ {
405
+ "prim": "operation"
406
+ }
407
+ ]
408
+ },
409
+ {
410
+ "prim": "PAIR"
411
+ }
412
+ ]
413
+ ]
414
+ }
415
+ ],
416
+ "storage": {
417
+ "prim": "Pair",
418
+ "args": [
419
+ [
420
+
421
+ ],
422
+ [
423
+
424
+ ]
425
+ ]
426
+ }
427
+ }
@@ -5,16 +5,60 @@ class TezosClient
5
5
  class ConvertToHash < ActiveInteraction::Base
6
6
  class Pair < Base
7
7
  def decode
8
- raise "Not a 'Pair' type" unless data[:prim] == "Pair"
9
- raise "Difference detected between data and type \nDATA: #{data} \nTYPE:#{type} " unless data[:args].size == type[:args].size
8
+ raise "Not a 'Pair' type" unless normalized_data[:prim] == "Pair"
9
+ raise "Difference detected between data and type \nDATA: #{normalized_data} \nTYPE:#{normalized_type} " unless normalized_data[:args].size == normalized_type[:args].size
10
10
 
11
- (data[:args]).zip(type[:args]).map do |data_n, type_n|
11
+ (normalized_data[:args]).zip(normalized_type[:args]).map do |data_n, type_n|
12
12
  TezosClient::Tools::ConvertToHash::Base.new(
13
13
  data: data_n,
14
14
  type: type_n
15
15
  ).value
16
16
  end.reduce({}, &:merge)
17
17
  end
18
+
19
+ private
20
+
21
+ def normalized_type
22
+ if type[:args].size > 2
23
+ {
24
+ prim: "pair",
25
+ args: [
26
+ type[:args][0],
27
+ {
28
+ prim: "pair",
29
+ args: type[:args][1..]
30
+ }
31
+ ]
32
+ }
33
+ else
34
+ type
35
+ end
36
+ end
37
+
38
+ def expanded_data
39
+ if data.is_a?(Array)
40
+ {prim: "Pair", args: data}
41
+ else
42
+ data
43
+ end
44
+ end
45
+
46
+ def normalized_data
47
+ if expanded_data[:args].size > 2
48
+ {
49
+ prim: "Pair",
50
+ args: [
51
+ expanded_data[:args][0],
52
+ {
53
+ prim: "Pair",
54
+ args: expanded_data[:args][1..]
55
+ }
56
+ ]
57
+ }
58
+ else
59
+ expanded_data
60
+ end
61
+ end
18
62
  end
19
63
  end
20
64
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class TezosClient
4
- VERSION = "1.4.3"
4
+ VERSION = "1.4.4"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tezos_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.3
4
+ version: 1.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre Michard
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-02-10 00:00:00.000000000 Z
13
+ date: 2022-04-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -244,6 +244,7 @@ files:
244
244
  - Rakefile
245
245
  - bin/console
246
246
  - bin/setup
247
+ - demo_script.json
247
248
  - lib/tezos_client.rb
248
249
  - lib/tezos_client/client_interface/block_contextual.rb
249
250
  - lib/tezos_client/client_interface/client_wrapper.rb