tealrb 0.8.0 → 0.9.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 +4 -4
- data/lib/tealrb/contract.rb +25 -4
- data/lib/tealrb/opcode_modules.rb +298 -183
- data/lib/tealrb/opcodes.rb +478 -476
- data/lib/tealrb/rewriters.rb +16 -3
- data/lib/tealrb/scratch.rb +0 -16
- data/lib/tealrb.rb +2 -2
- metadata +19 -5
data/lib/tealrb/opcodes.rb
CHANGED
@@ -41,621 +41,623 @@ module TEALrb
|
|
41
41
|
'!': 'zero?'
|
42
42
|
}.freeze
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
module TEALOpcodes
|
45
|
+
def acct_params_get(field, _account = nil)
|
46
|
+
TEAL.instance << "acct_params_get #{field}"
|
47
|
+
end
|
48
|
+
|
49
|
+
def add(_a = nil, _b = nil)
|
50
|
+
TEAL.instance << '+'
|
51
|
+
end
|
52
|
+
|
53
|
+
def addr(address)
|
54
|
+
TEAL.instance << "addr #{address}"
|
55
|
+
end
|
56
|
+
|
57
|
+
def addw(_a = nil, _b = nil)
|
58
|
+
TEAL.instance << 'addw'
|
59
|
+
end
|
60
|
+
|
61
|
+
def app_global_del(_key = nil)
|
62
|
+
TEAL.instance << 'app_global_del'
|
63
|
+
end
|
64
|
+
|
65
|
+
def app_global_get(_key = nil)
|
66
|
+
TEAL.instance << 'app_global_get'
|
67
|
+
end
|
68
|
+
|
69
|
+
def app_global_get_ex(_app = nil, _key = nil)
|
70
|
+
TEAL.instance << 'app_global_get_ex'
|
71
|
+
end
|
72
|
+
|
73
|
+
def app_global_put(_key = nil, _value = nil)
|
74
|
+
TEAL.instance << 'app_global_put'
|
75
|
+
end
|
76
|
+
|
77
|
+
def app_local_del(_account = nil, _key = nil)
|
78
|
+
TEAL.instance << 'app_local_del'
|
79
|
+
end
|
80
|
+
|
81
|
+
def app_local_get(_account = nil, _key = nil)
|
82
|
+
TEAL.instance << 'app_local_get'
|
83
|
+
end
|
84
|
+
|
85
|
+
def app_local_get_ex(_account = nil, _application = nil, _key = nil)
|
86
|
+
TEAL.instance << 'app_local_get_ex'
|
87
|
+
end
|
88
|
+
|
89
|
+
def app_local_put(_account = nil, _key = nil, _value = nil)
|
90
|
+
TEAL.instance << 'app_local_put'
|
91
|
+
end
|
92
|
+
|
93
|
+
def app_opted_in(_account = nil, _app = nil)
|
94
|
+
TEAL.instance << 'app_opted_in'
|
95
|
+
end
|
96
|
+
|
97
|
+
def app_params_get(field, _app_id = nil)
|
98
|
+
TEAL.instance << "app_params_get #{field}"
|
99
|
+
end
|
100
|
+
|
101
|
+
def approve
|
102
|
+
TEAL.instance << 'int 1'
|
103
|
+
TEAL.instance << 'return'
|
104
|
+
end
|
47
105
|
|
48
|
-
|
49
|
-
|
50
|
-
|
106
|
+
def arg(index)
|
107
|
+
TEAL.instance << "arg #{index}"
|
108
|
+
end
|
51
109
|
|
52
|
-
|
53
|
-
|
54
|
-
|
110
|
+
def arg_0 # rubocop:disable Naming/VariableNumber
|
111
|
+
TEAL.instance << 'arg_0'
|
112
|
+
end
|
55
113
|
|
56
|
-
|
57
|
-
|
58
|
-
|
114
|
+
def arg_1 # rubocop:disable Naming/VariableNumber
|
115
|
+
TEAL.instance << 'arg_1'
|
116
|
+
end
|
59
117
|
|
60
|
-
|
61
|
-
|
62
|
-
|
118
|
+
def arg_2 # rubocop:disable Naming/VariableNumber
|
119
|
+
TEAL.instance << 'arg_2'
|
120
|
+
end
|
63
121
|
|
64
|
-
|
65
|
-
|
66
|
-
|
122
|
+
def arg_3 # rubocop:disable Naming/VariableNumber
|
123
|
+
TEAL.instance << 'arg_3'
|
124
|
+
end
|
67
125
|
|
68
|
-
|
69
|
-
|
70
|
-
|
126
|
+
def args(_index = nil)
|
127
|
+
TEAL.instance << 'args'
|
128
|
+
end
|
71
129
|
|
72
|
-
|
73
|
-
|
74
|
-
|
130
|
+
def assert(_expr = nil)
|
131
|
+
TEAL.instance << 'assert'
|
132
|
+
end
|
75
133
|
|
76
|
-
|
77
|
-
|
78
|
-
|
134
|
+
def asset_holding_get(field, _account = nil, _asset = nil)
|
135
|
+
TEAL.instance << "asset_holding_get #{field}"
|
136
|
+
end
|
79
137
|
|
80
|
-
|
81
|
-
|
82
|
-
|
138
|
+
def asset_params_get(field, _asset = nil)
|
139
|
+
TEAL.instance << "asset_params_get #{field}"
|
140
|
+
end
|
83
141
|
|
84
|
-
|
85
|
-
|
86
|
-
|
142
|
+
def b(target)
|
143
|
+
TEAL.instance << "#{__method__} #{target}"
|
144
|
+
end
|
87
145
|
|
88
|
-
|
89
|
-
|
90
|
-
|
146
|
+
def base32(input)
|
147
|
+
TEAL.instance << "byte base32(#{input})"
|
148
|
+
end
|
91
149
|
|
92
|
-
|
93
|
-
|
94
|
-
|
150
|
+
def balance(_account = nil)
|
151
|
+
TEAL.instance << 'balance'
|
152
|
+
end
|
95
153
|
|
96
|
-
|
97
|
-
|
98
|
-
|
154
|
+
def big_endian_add(_a = nil, _b = nil)
|
155
|
+
TEAL.instance << 'b+'
|
156
|
+
end
|
99
157
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
end
|
158
|
+
def big_endian_divide(_a = nil, _b = nil)
|
159
|
+
TEAL.instance << 'b/'
|
160
|
+
end
|
104
161
|
|
105
|
-
|
106
|
-
|
107
|
-
|
162
|
+
def big_endian_equal(_a = nil, _b = nil)
|
163
|
+
TEAL.instance << 'b=='
|
164
|
+
end
|
108
165
|
|
109
|
-
|
110
|
-
|
111
|
-
|
166
|
+
def big_endian_less(_a = nil, _b = nil)
|
167
|
+
TEAL.instance << 'b<'
|
168
|
+
end
|
112
169
|
|
113
|
-
|
114
|
-
|
115
|
-
|
170
|
+
def big_endian_less_eq(_a = nil, _b = nil)
|
171
|
+
TEAL.instance << 'b<='
|
172
|
+
end
|
116
173
|
|
117
|
-
|
118
|
-
|
119
|
-
|
174
|
+
def big_endian_modulo(_a = nil, _b = nil)
|
175
|
+
TEAL.instance << 'b%'
|
176
|
+
end
|
120
177
|
|
121
|
-
|
122
|
-
|
123
|
-
|
178
|
+
def big_endian_more(_a = nil, _b = nil)
|
179
|
+
TEAL.instance << 'b>'
|
180
|
+
end
|
124
181
|
|
125
|
-
|
126
|
-
|
127
|
-
|
182
|
+
def big_endian_more_eq(_a = nil, _b = nil)
|
183
|
+
TEAL.instance << 'b>='
|
184
|
+
end
|
128
185
|
|
129
|
-
|
130
|
-
|
131
|
-
|
186
|
+
def big_endian_multiply(_a = nil, _b = nil)
|
187
|
+
TEAL.instance << 'b*'
|
188
|
+
end
|
132
189
|
|
133
|
-
|
134
|
-
|
135
|
-
|
190
|
+
def big_endian_not_equal(_a = nil, _b = nil)
|
191
|
+
TEAL.instance << 'b!='
|
192
|
+
end
|
136
193
|
|
137
|
-
|
138
|
-
|
139
|
-
|
194
|
+
def big_endian_subtract(_a = nil, _b = nil)
|
195
|
+
TEAL.instance << 'b-'
|
196
|
+
end
|
140
197
|
|
141
|
-
|
142
|
-
|
143
|
-
|
198
|
+
def bitlen(_input = nil)
|
199
|
+
TEAL.instance << 'bitlen'
|
200
|
+
end
|
144
201
|
|
145
|
-
|
146
|
-
|
147
|
-
|
202
|
+
def bitwise_and(_a = nil, _b = nil)
|
203
|
+
TEAL.instance << '&'
|
204
|
+
end
|
148
205
|
|
149
|
-
|
150
|
-
|
151
|
-
|
206
|
+
def bitwise_byte_invert(_a = nil, _b = nil)
|
207
|
+
TEAL.instance << 'b~'
|
208
|
+
end
|
152
209
|
|
153
|
-
|
154
|
-
|
155
|
-
|
210
|
+
def bitwise_invert(_a = nil, _b = nil)
|
211
|
+
TEAL.instance << '~'
|
212
|
+
end
|
156
213
|
|
157
|
-
|
158
|
-
|
159
|
-
|
214
|
+
def bitwise_or(_a = nil, _b = nil)
|
215
|
+
TEAL.instance << '|'
|
216
|
+
end
|
160
217
|
|
161
|
-
|
162
|
-
|
163
|
-
|
218
|
+
def bitwise_xor(_a = nil, _b = nil)
|
219
|
+
TEAL.instance << '^'
|
220
|
+
end
|
164
221
|
|
165
|
-
|
166
|
-
|
167
|
-
|
222
|
+
def bnz(target)
|
223
|
+
TEAL.instance << "#{__method__} #{target}"
|
224
|
+
end
|
168
225
|
|
169
|
-
|
170
|
-
|
171
|
-
|
226
|
+
def bsqrt(_big_endian_uint = nil)
|
227
|
+
TEAL.instance << 'bsqrt'
|
228
|
+
end
|
172
229
|
|
173
|
-
|
174
|
-
|
175
|
-
|
230
|
+
def btoi(_bytes = nil)
|
231
|
+
TEAL.instance << 'btoi'
|
232
|
+
end
|
176
233
|
|
177
|
-
|
178
|
-
|
179
|
-
|
234
|
+
def byte(string)
|
235
|
+
TEAL.instance << "byte \"#{string}\""
|
236
|
+
end
|
180
237
|
|
181
|
-
|
182
|
-
|
183
|
-
|
238
|
+
def bytec(index)
|
239
|
+
TEAL.instance << "bytec #{index}"
|
240
|
+
end
|
184
241
|
|
185
|
-
|
186
|
-
|
187
|
-
|
242
|
+
def bytec_0 # rubocop:disable Naming/VariableNumber
|
243
|
+
TEAL.instance << 'bytec_0'
|
244
|
+
end
|
188
245
|
|
189
|
-
|
190
|
-
|
191
|
-
|
246
|
+
def bytec_1 # rubocop:disable Naming/VariableNumber
|
247
|
+
TEAL.instance << 'bytec_1'
|
248
|
+
end
|
192
249
|
|
193
|
-
|
194
|
-
|
195
|
-
|
250
|
+
def bytec_2 # rubocop:disable Naming/VariableNumber
|
251
|
+
TEAL.instance << 'bytec_2'
|
252
|
+
end
|
196
253
|
|
197
|
-
|
198
|
-
|
199
|
-
|
254
|
+
def bytec_3 # rubocop:disable Naming/VariableNumber
|
255
|
+
TEAL.instance << 'bytec_3'
|
256
|
+
end
|
200
257
|
|
201
|
-
|
202
|
-
|
203
|
-
|
258
|
+
def bytecblock(*bytes)
|
259
|
+
TEAL.instance << "bytecblock #{bytes.join(' ')}"
|
260
|
+
end
|
204
261
|
|
205
|
-
|
206
|
-
|
207
|
-
|
262
|
+
def bz(target)
|
263
|
+
TEAL.instance << "#{__method__} #{target}"
|
264
|
+
end
|
208
265
|
|
209
|
-
|
210
|
-
|
211
|
-
|
266
|
+
def bzero(_length = nil)
|
267
|
+
TEAL.instance << 'bzero'
|
268
|
+
end
|
212
269
|
|
213
|
-
|
214
|
-
|
215
|
-
|
270
|
+
def callsub(name, *_args)
|
271
|
+
TEAL.instance << "callsub #{name}"
|
272
|
+
end
|
216
273
|
|
217
|
-
|
218
|
-
|
219
|
-
|
274
|
+
def concat(_a = nil, _b = nil)
|
275
|
+
TEAL.instance << 'concat'
|
276
|
+
end
|
220
277
|
|
221
|
-
|
222
|
-
|
223
|
-
|
278
|
+
def cover(count)
|
279
|
+
TEAL.instance << "cover #{count}"
|
280
|
+
end
|
224
281
|
|
225
|
-
|
226
|
-
|
227
|
-
|
282
|
+
def dig(index)
|
283
|
+
TEAL.instance << "dig #{index}"
|
284
|
+
end
|
228
285
|
|
229
|
-
|
230
|
-
|
231
|
-
|
286
|
+
def divide(_a = nil, _b = nil)
|
287
|
+
TEAL.instance << '/'
|
288
|
+
end
|
232
289
|
|
233
|
-
|
234
|
-
|
235
|
-
|
290
|
+
def divmodw(_a = nil, _b = nil)
|
291
|
+
TEAL.instance << 'divmodw'
|
292
|
+
end
|
236
293
|
|
237
|
-
|
238
|
-
|
239
|
-
|
294
|
+
def divw(_a = nil, _b = nil)
|
295
|
+
TEAL.instance << 'divw'
|
296
|
+
end
|
240
297
|
|
241
|
-
|
242
|
-
|
243
|
-
|
298
|
+
def dup(_expr = nil)
|
299
|
+
TEAL.instance << 'dup'
|
300
|
+
end
|
244
301
|
|
245
|
-
|
246
|
-
|
247
|
-
|
302
|
+
def dup2(_expr_a = nil, _expr_b = nil)
|
303
|
+
TEAL.instance << 'dup2'
|
304
|
+
end
|
248
305
|
|
249
|
-
|
250
|
-
|
251
|
-
|
306
|
+
def ecdsa_pk_decompress(index, _input = nil)
|
307
|
+
TEAL.instance << "ecdsa_pk_decompress #{index}"
|
308
|
+
end
|
252
309
|
|
253
|
-
|
254
|
-
|
255
|
-
|
310
|
+
def ecdsa_pk_recover(index, _input = nil)
|
311
|
+
TEAL.instance << "ecdsa_pk_recover #{index}"
|
312
|
+
end
|
256
313
|
|
257
|
-
|
258
|
-
|
259
|
-
|
314
|
+
def ecdsa_verify(index, _input = nil)
|
315
|
+
TEAL.instance << "ecdsa_verify #{index}"
|
316
|
+
end
|
260
317
|
|
261
|
-
|
262
|
-
|
263
|
-
|
318
|
+
def ed25519verify(_input = nil)
|
319
|
+
TEAL.instance << 'ed25519verify'
|
320
|
+
end
|
264
321
|
|
265
|
-
|
266
|
-
|
267
|
-
|
322
|
+
def equal(_a = nil, _b = nil)
|
323
|
+
TEAL.instance << '=='
|
324
|
+
end
|
268
325
|
|
269
|
-
|
270
|
-
|
271
|
-
|
326
|
+
def err
|
327
|
+
TEAL.instance << 'err'
|
328
|
+
end
|
272
329
|
|
273
|
-
|
274
|
-
|
275
|
-
|
330
|
+
def exp(_a = nil, _b = nil)
|
331
|
+
TEAL.instance << 'exp'
|
332
|
+
end
|
276
333
|
|
277
|
-
|
278
|
-
|
279
|
-
|
334
|
+
def expw(_a = nil, _b = nil)
|
335
|
+
TEAL.instance << 'expw'
|
336
|
+
end
|
280
337
|
|
281
|
-
|
282
|
-
|
283
|
-
|
338
|
+
def extract(start, length, _byte_array = nil)
|
339
|
+
TEAL.instance << "extract #{start} #{length}"
|
340
|
+
end
|
284
341
|
|
285
|
-
|
286
|
-
|
287
|
-
|
342
|
+
def extract3(_byte_array = nil, _start = nil, _exclusive_end = nil)
|
343
|
+
TEAL.instance << 'extract3'
|
344
|
+
end
|
288
345
|
|
289
|
-
|
290
|
-
|
291
|
-
|
346
|
+
def extract_uint16(_byte_array = nil, _start = nil)
|
347
|
+
TEAL.instance << 'extract_uint16'
|
348
|
+
end
|
292
349
|
|
293
|
-
|
294
|
-
|
295
|
-
|
350
|
+
def extract_uint32(_byte_array = nil, _start = nil)
|
351
|
+
TEAL.instance << 'extract_uint32'
|
352
|
+
end
|
296
353
|
|
297
|
-
|
298
|
-
|
299
|
-
|
354
|
+
def extract_uint64(_byte_array = nil, _start = nil)
|
355
|
+
TEAL.instance << 'extract_uint64'
|
356
|
+
end
|
300
357
|
|
301
|
-
|
302
|
-
|
303
|
-
|
358
|
+
def gaid(transaction_index)
|
359
|
+
TEAL.instance << "gaid #{transaction_index}"
|
360
|
+
end
|
304
361
|
|
305
|
-
|
306
|
-
|
307
|
-
|
362
|
+
def gaids(_transaction = nil)
|
363
|
+
TEAL.instance << 'gaids'
|
364
|
+
end
|
308
365
|
|
309
|
-
|
310
|
-
|
311
|
-
|
366
|
+
def getbit(_input = nil, _bit_index = nil)
|
367
|
+
TEAL.instance << 'getbit'
|
368
|
+
end
|
312
369
|
|
313
|
-
|
314
|
-
|
315
|
-
|
370
|
+
def getbyte(_input = nil, _byte_index = nil)
|
371
|
+
TEAL.instance << 'getbyte'
|
372
|
+
end
|
316
373
|
|
317
|
-
|
318
|
-
|
319
|
-
|
374
|
+
def gitxn(transaction_index, field)
|
375
|
+
TEAL.instance << "gitxn #{transaction_index} #{field}"
|
376
|
+
end
|
320
377
|
|
321
|
-
|
322
|
-
|
323
|
-
|
378
|
+
def gitxna(transaction_index, field, index)
|
379
|
+
TEAL.instance << "gitxna #{transaction_index} #{field} #{index}"
|
380
|
+
end
|
324
381
|
|
325
|
-
|
326
|
-
|
327
|
-
|
382
|
+
def gitxnas(transaction_index, field, _index = nil)
|
383
|
+
TEAL.instance << "gitxnas #{transaction_index} #{field}"
|
384
|
+
end
|
328
385
|
|
329
|
-
|
330
|
-
|
331
|
-
|
386
|
+
def gload(transaction_index, index)
|
387
|
+
TEAL.instance << "gload #{transaction_index} #{index}"
|
388
|
+
end
|
332
389
|
|
333
|
-
|
334
|
-
|
335
|
-
|
390
|
+
def gloads(index, _transaction_index = nil)
|
391
|
+
TEAL.instance << "gloads #{index}"
|
392
|
+
end
|
336
393
|
|
337
|
-
|
338
|
-
|
339
|
-
|
394
|
+
def gloadss(_transaction = nil, _index = nil)
|
395
|
+
TEAL.instance << 'gloadss'
|
396
|
+
end
|
340
397
|
|
341
|
-
|
342
|
-
|
343
|
-
|
398
|
+
def global(field)
|
399
|
+
TEAL.instance << "global #{field}"
|
400
|
+
end
|
344
401
|
|
345
|
-
|
346
|
-
|
347
|
-
|
402
|
+
def greater(_a = nil, _b = nil)
|
403
|
+
TEAL.instance << '>'
|
404
|
+
end
|
348
405
|
|
349
|
-
|
350
|
-
|
351
|
-
|
406
|
+
def greater_eq(_a = nil, _b = nil)
|
407
|
+
TEAL.instance << '>='
|
408
|
+
end
|
352
409
|
|
353
|
-
|
354
|
-
|
355
|
-
|
410
|
+
def gtxn(index, field)
|
411
|
+
TEAL.instance << "gtxn #{index} #{field}"
|
412
|
+
end
|
356
413
|
|
357
|
-
|
358
|
-
|
359
|
-
|
414
|
+
def gtxna(transaction_index, field, index)
|
415
|
+
TEAL.instance << "gtxna #{transaction_index} #{field} #{index}"
|
416
|
+
end
|
360
417
|
|
361
|
-
|
362
|
-
|
363
|
-
|
418
|
+
def gtxns(field, _transaction_index = nil)
|
419
|
+
TEAL.instance << "gtxns #{field}"
|
420
|
+
end
|
364
421
|
|
365
|
-
|
366
|
-
|
367
|
-
|
422
|
+
def gtxnsa(field, index, _transaction_index = nil)
|
423
|
+
TEAL.instance << "gtxnsa #{field} #{index}"
|
424
|
+
end
|
368
425
|
|
369
|
-
|
370
|
-
|
371
|
-
|
426
|
+
def gtxnas(transaction_index, field, _index = nil)
|
427
|
+
TEAL.instance << "gtxnas #{transaction_index} #{field}"
|
428
|
+
end
|
372
429
|
|
373
|
-
|
374
|
-
|
375
|
-
|
430
|
+
def gtxnsas(field, _transaction_index = nil, _index = nil)
|
431
|
+
TEAL.instance << "gtxnsas #{field}"
|
432
|
+
end
|
376
433
|
|
377
|
-
|
378
|
-
|
379
|
-
|
434
|
+
def int(integer)
|
435
|
+
TEAL.instance << "int #{integer}"
|
436
|
+
end
|
380
437
|
|
381
|
-
|
382
|
-
|
383
|
-
|
438
|
+
def intc(index)
|
439
|
+
TEAL.instance << "intc #{index}"
|
440
|
+
end
|
384
441
|
|
385
|
-
|
386
|
-
|
387
|
-
|
442
|
+
def intc_0 # rubocop:disable Naming/VariableNumber
|
443
|
+
TEAL.instance << 'intc_0'
|
444
|
+
end
|
388
445
|
|
389
|
-
|
390
|
-
|
391
|
-
|
446
|
+
def intc_1 # rubocop:disable Naming/VariableNumber
|
447
|
+
TEAL.instance << 'intc_1'
|
448
|
+
end
|
392
449
|
|
393
|
-
|
394
|
-
|
395
|
-
|
450
|
+
def intc_2 # rubocop:disable Naming/VariableNumber
|
451
|
+
TEAL.instance << 'intc_2'
|
452
|
+
end
|
396
453
|
|
397
|
-
|
398
|
-
|
399
|
-
|
454
|
+
def intc_3 # rubocop:disable Naming/VariableNumber
|
455
|
+
TEAL.instance << 'intc_3'
|
456
|
+
end
|
400
457
|
|
401
|
-
|
402
|
-
|
403
|
-
|
458
|
+
def intcblock(*ints)
|
459
|
+
TEAL.instance << "intcblock #{ints.join(' ')}"
|
460
|
+
end
|
404
461
|
|
405
|
-
|
406
|
-
|
407
|
-
|
462
|
+
def itob(_bytes = nil)
|
463
|
+
TEAL.instance << 'itob'
|
464
|
+
end
|
408
465
|
|
409
|
-
|
410
|
-
|
411
|
-
|
466
|
+
def itxn_begin
|
467
|
+
TEAL.instance << 'itxn_begin'
|
468
|
+
end
|
412
469
|
|
413
|
-
|
414
|
-
|
415
|
-
|
470
|
+
def itxn_field(field, _value = nil)
|
471
|
+
TEAL.instance << "itxn_field #{field}"
|
472
|
+
end
|
416
473
|
|
417
|
-
|
418
|
-
|
419
|
-
|
474
|
+
def itxn_next
|
475
|
+
TEAL.instance << 'itxn_next'
|
476
|
+
end
|
420
477
|
|
421
|
-
|
422
|
-
|
423
|
-
|
478
|
+
def itxn_submit
|
479
|
+
TEAL.instance << 'itxn_submit'
|
480
|
+
end
|
424
481
|
|
425
|
-
|
426
|
-
|
427
|
-
|
482
|
+
def itxna(field, index)
|
483
|
+
TEAL.instance << "itxna #{field} #{index}"
|
484
|
+
end
|
428
485
|
|
429
|
-
|
430
|
-
|
431
|
-
|
486
|
+
def itxnas(field, _index = nil)
|
487
|
+
TEAL.instance << "itxnas #{field}"
|
488
|
+
end
|
432
489
|
|
433
|
-
|
434
|
-
|
435
|
-
|
490
|
+
def keccak256(_input = nil)
|
491
|
+
TEAL.instance << 'keccak256'
|
492
|
+
end
|
436
493
|
|
437
|
-
|
438
|
-
|
439
|
-
|
494
|
+
def label(label_name)
|
495
|
+
TEAL.instance << "#{label_name}:"
|
496
|
+
end
|
440
497
|
|
441
|
-
|
442
|
-
|
443
|
-
|
498
|
+
def len(_input = nil)
|
499
|
+
TEAL.instance << 'len'
|
500
|
+
end
|
444
501
|
|
445
|
-
|
446
|
-
|
447
|
-
|
502
|
+
def less(_a = nil, _b = nil)
|
503
|
+
TEAL.instance << '<'
|
504
|
+
end
|
448
505
|
|
449
|
-
|
450
|
-
|
451
|
-
|
506
|
+
def less_eq(_a = nil, _b = nil)
|
507
|
+
TEAL.instance << '<='
|
508
|
+
end
|
452
509
|
|
453
|
-
|
454
|
-
|
455
|
-
|
510
|
+
def load(index)
|
511
|
+
TEAL.instance << "load #{index}"
|
512
|
+
end
|
456
513
|
|
457
|
-
|
458
|
-
|
459
|
-
|
514
|
+
def loads(_index = nil)
|
515
|
+
TEAL.instance << 'loads'
|
516
|
+
end
|
460
517
|
|
461
|
-
|
462
|
-
|
463
|
-
|
518
|
+
def log(_byte_array = nil)
|
519
|
+
TEAL.instance << 'log'
|
520
|
+
end
|
464
521
|
|
465
|
-
|
466
|
-
|
467
|
-
|
522
|
+
def method_signature(signature)
|
523
|
+
TEAL.instance << %(method "#{signature}")
|
524
|
+
end
|
468
525
|
|
469
|
-
|
470
|
-
|
471
|
-
|
526
|
+
def min_balance(_account = nil)
|
527
|
+
TEAL.instance << 'min_balance'
|
528
|
+
end
|
472
529
|
|
473
|
-
|
474
|
-
|
475
|
-
|
530
|
+
def modulo(_a = nil, _b = nil)
|
531
|
+
TEAL.instance << '%'
|
532
|
+
end
|
476
533
|
|
477
|
-
|
478
|
-
|
479
|
-
|
534
|
+
def multiply(_a = nil, _b = nil)
|
535
|
+
TEAL.instance << '*'
|
536
|
+
end
|
480
537
|
|
481
|
-
|
482
|
-
|
483
|
-
|
538
|
+
def mulw(_a = nil, _b = nil)
|
539
|
+
TEAL.instance << 'mulw'
|
540
|
+
end
|
484
541
|
|
485
|
-
|
486
|
-
|
487
|
-
|
542
|
+
def zero?(_expr = nil)
|
543
|
+
TEAL.instance << '!'
|
544
|
+
end
|
488
545
|
|
489
|
-
|
490
|
-
|
491
|
-
|
546
|
+
def not_equal(_a = nil, _b = nil)
|
547
|
+
TEAL.instance << '!='
|
548
|
+
end
|
492
549
|
|
493
|
-
|
494
|
-
|
495
|
-
|
550
|
+
def padded_bitwise_and(_a = nil, _b = nil)
|
551
|
+
TEAL.instance << 'b&'
|
552
|
+
end
|
496
553
|
|
497
|
-
|
498
|
-
|
499
|
-
|
554
|
+
def padded_bitwise_or(_a = nil, _b = nil)
|
555
|
+
TEAL.instance << 'b|'
|
556
|
+
end
|
500
557
|
|
501
|
-
|
502
|
-
|
503
|
-
|
558
|
+
def padded_bitwise_xor(_a = nil, _b = nil)
|
559
|
+
TEAL.instance << 'b^'
|
560
|
+
end
|
504
561
|
|
505
|
-
|
506
|
-
|
507
|
-
|
562
|
+
def pop(_expr = nil)
|
563
|
+
TEAL.instance << 'pop'
|
564
|
+
end
|
508
565
|
|
509
|
-
|
510
|
-
|
511
|
-
|
566
|
+
def pushbytes(string)
|
567
|
+
TEAL.instance << "pushbytes \"#{string}\""
|
568
|
+
end
|
512
569
|
|
513
|
-
|
514
|
-
|
515
|
-
|
570
|
+
def pushint(integer)
|
571
|
+
TEAL.instance << "pushint #{integer}"
|
572
|
+
end
|
516
573
|
|
517
|
-
|
518
|
-
|
519
|
-
|
574
|
+
def retsub
|
575
|
+
TEAL.instance << 'retsub'
|
576
|
+
end
|
520
577
|
|
521
|
-
|
522
|
-
|
523
|
-
|
578
|
+
def select(_expr_a = nil, _expr_b = nil, _expr_c = nil)
|
579
|
+
TEAL.instance << 'select'
|
580
|
+
end
|
524
581
|
|
525
|
-
|
526
|
-
|
527
|
-
|
582
|
+
def setbit(_input = nil, _bit_index = nil, _value = nil)
|
583
|
+
TEAL.instance << 'setbit'
|
584
|
+
end
|
528
585
|
|
529
|
-
|
530
|
-
|
531
|
-
|
586
|
+
def setbyte(_byte_array = nil, _byte_index = nil, _value = nil)
|
587
|
+
TEAL.instance << 'setbyte'
|
588
|
+
end
|
532
589
|
|
533
|
-
|
534
|
-
|
535
|
-
|
590
|
+
def sha256(_input = nil)
|
591
|
+
TEAL.instance << 'sha256'
|
592
|
+
end
|
536
593
|
|
537
|
-
|
538
|
-
|
539
|
-
|
594
|
+
def sha512_256(_input = nil) # rubocop:disable Naming/VariableNumber
|
595
|
+
TEAL.instance << 'sha512_256'
|
596
|
+
end
|
540
597
|
|
541
|
-
|
542
|
-
|
543
|
-
|
598
|
+
def shl(_a = nil, _b = nil)
|
599
|
+
TEAL.instance << 'shl'
|
600
|
+
end
|
544
601
|
|
545
|
-
|
546
|
-
|
547
|
-
|
602
|
+
def shr(_a = nil, _b = nil)
|
603
|
+
TEAL.instance << 'shr'
|
604
|
+
end
|
548
605
|
|
549
|
-
|
550
|
-
|
551
|
-
|
606
|
+
def sqrt(_integer = nil)
|
607
|
+
TEAL.instance << 'sqrt'
|
608
|
+
end
|
552
609
|
|
553
|
-
|
554
|
-
|
555
|
-
|
610
|
+
def store(index, _value = nil)
|
611
|
+
TEAL.instance << "store #{index}"
|
612
|
+
end
|
556
613
|
|
557
|
-
|
558
|
-
|
559
|
-
|
614
|
+
def stores(_index = nil, _value = nil)
|
615
|
+
TEAL.instance << 'stores'
|
616
|
+
end
|
560
617
|
|
561
|
-
|
562
|
-
|
563
|
-
|
618
|
+
def substring(start, exclusive_end, _byte_array = nil)
|
619
|
+
TEAL.instance << "substring #{start} #{exclusive_end}"
|
620
|
+
end
|
564
621
|
|
565
|
-
|
566
|
-
|
567
|
-
|
622
|
+
def substring3(_byte_array = nil, _start = nil, _exclusive_end = nil)
|
623
|
+
TEAL.instance << 'substring3'
|
624
|
+
end
|
568
625
|
|
569
|
-
|
570
|
-
|
571
|
-
|
626
|
+
def subtract(_a = nil, _b = nil)
|
627
|
+
TEAL.instance << '-'
|
628
|
+
end
|
572
629
|
|
573
|
-
|
574
|
-
|
575
|
-
|
630
|
+
def swap(_expr_a = nil, _expr_b = nil)
|
631
|
+
TEAL.instance << 'swap'
|
632
|
+
end
|
576
633
|
|
577
|
-
|
578
|
-
|
579
|
-
|
634
|
+
def teal_return(_expr = nil)
|
635
|
+
TEAL.instance << 'return'
|
636
|
+
end
|
580
637
|
|
581
|
-
|
582
|
-
|
583
|
-
|
638
|
+
def txn(field)
|
639
|
+
TEAL.instance << "txn #{field}"
|
640
|
+
end
|
584
641
|
|
585
|
-
|
586
|
-
|
587
|
-
|
642
|
+
def txna(field, index)
|
643
|
+
TEAL.instance << "txna #{field} #{index}"
|
644
|
+
end
|
588
645
|
|
589
|
-
|
590
|
-
|
591
|
-
|
646
|
+
def txnas(field, _index = nil)
|
647
|
+
TEAL.instance << "txnas #{field}"
|
648
|
+
end
|
592
649
|
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
def shl(_a = nil, _b = nil)
|
598
|
-
TEAL.instance << 'shl'
|
599
|
-
end
|
600
|
-
|
601
|
-
def shr(_a = nil, _b = nil)
|
602
|
-
TEAL.instance << 'shr'
|
603
|
-
end
|
650
|
+
def uncover(count)
|
651
|
+
TEAL.instance << "uncover #{count}"
|
652
|
+
end
|
604
653
|
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
def store(index, _value = nil)
|
610
|
-
TEAL.instance << "store #{index}"
|
611
|
-
end
|
612
|
-
|
613
|
-
def stores(_index = nil, _value = nil)
|
614
|
-
TEAL.instance << 'stores'
|
615
|
-
end
|
616
|
-
|
617
|
-
def substring(start, exclusive_end, _byte_array = nil)
|
618
|
-
TEAL.instance << "substring #{start} #{exclusive_end}"
|
619
|
-
end
|
620
|
-
|
621
|
-
def substring3(_byte_array = nil, _start = nil, _exclusive_end = nil)
|
622
|
-
TEAL.instance << 'substring3'
|
623
|
-
end
|
624
|
-
|
625
|
-
def subtract(_a = nil, _b = nil)
|
626
|
-
TEAL.instance << '-'
|
627
|
-
end
|
628
|
-
|
629
|
-
def swap(_expr_a = nil, _expr_b = nil)
|
630
|
-
TEAL.instance << 'swap'
|
631
|
-
end
|
632
|
-
|
633
|
-
def teal_return(_expr = nil)
|
634
|
-
TEAL.instance << 'return'
|
635
|
-
end
|
636
|
-
|
637
|
-
def txn(field)
|
638
|
-
TEAL.instance << "txn #{field}"
|
639
|
-
end
|
640
|
-
|
641
|
-
def txna(field, index)
|
642
|
-
TEAL.instance << "txna #{field} #{index}"
|
643
|
-
end
|
644
|
-
|
645
|
-
def txnas(field, _index = nil)
|
646
|
-
TEAL.instance << "txnas #{field}"
|
647
|
-
end
|
648
|
-
|
649
|
-
def uncover(count)
|
650
|
-
TEAL.instance << "uncover #{count}"
|
651
|
-
end
|
652
|
-
|
653
|
-
def boolean_and(_a = nil, _b = nil)
|
654
|
-
TEAL.instance << '&&'
|
655
|
-
end
|
654
|
+
def boolean_and(_a = nil, _b = nil)
|
655
|
+
TEAL.instance << '&&'
|
656
|
+
end
|
656
657
|
|
657
|
-
|
658
|
-
|
658
|
+
def boolean_or(_a = nil, _b = nil)
|
659
|
+
TEAL.instance << '||'
|
660
|
+
end
|
659
661
|
end
|
660
662
|
end
|
661
663
|
end
|