tealrb 0.11.0 → 0.12.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/abi.rb +1 -1
- data/lib/tealrb/account.rb +78 -0
- data/lib/tealrb/algod.rb +19 -0
- data/lib/tealrb/app.rb +132 -0
- data/lib/tealrb/app_args.rb +10 -0
- data/lib/tealrb/asset.rb +106 -0
- data/lib/tealrb/box.rb +17 -0
- data/lib/tealrb/byte_opcodes.rb +13 -0
- data/lib/tealrb/contract.rb +332 -121
- data/lib/tealrb/enums.rb +45 -0
- data/lib/tealrb/global.rb +94 -0
- data/lib/tealrb/group_txn.rb +42 -0
- data/lib/tealrb/if_block.rb +17 -24
- data/lib/tealrb/inner_txn.rb +95 -0
- data/lib/tealrb/local.rb +27 -0
- data/lib/tealrb/logs.rb +10 -0
- data/lib/tealrb/maybe_ops.rb +96 -0
- data/lib/tealrb/opcode_type.rb +31 -0
- data/lib/tealrb/opcodes.rb +541 -260
- data/lib/tealrb/rewriters.rb +71 -66
- data/lib/tealrb/scratch.rb +5 -4
- data/lib/tealrb/this_txn.rb +13 -0
- data/lib/tealrb/txn_fields.rb +333 -0
- data/lib/tealrb.rb +47 -18
- metadata +47 -3
- data/lib/tealrb/opcode_modules.rb +0 -904
data/lib/tealrb/opcodes.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# rubocop:disable Lint/UnusedMethodArgument
|
4
|
+
|
3
5
|
module TEALrb
|
4
6
|
module Opcodes
|
5
7
|
BINARY_OPCODE_METHOD_MAPPING = {
|
@@ -42,622 +44,901 @@ module TEALrb
|
|
42
44
|
}.freeze
|
43
45
|
|
44
46
|
module TEALOpcodes
|
45
|
-
def acct_params_get(field,
|
46
|
-
|
47
|
+
def acct_params_get(field, account = nil)
|
48
|
+
@contract.teal << "acct_params_get #{field}"
|
49
|
+
@contract
|
47
50
|
end
|
48
51
|
|
49
|
-
def add(
|
50
|
-
|
52
|
+
def add(a = nil, b = nil)
|
53
|
+
@contract.teal << '+'
|
54
|
+
@contract
|
51
55
|
end
|
52
56
|
|
53
57
|
def addr(address)
|
54
|
-
|
58
|
+
@contract.teal << "addr #{address}"
|
59
|
+
@contract
|
55
60
|
end
|
56
61
|
|
57
|
-
def addw(
|
58
|
-
|
62
|
+
def addw(a = nil, b = nil)
|
63
|
+
@contract.teal << 'addw'
|
64
|
+
@contract
|
59
65
|
end
|
60
66
|
|
61
|
-
def app_global_del(
|
62
|
-
|
67
|
+
def app_global_del(key = nil)
|
68
|
+
@contract.teal << 'app_global_del'
|
69
|
+
@contract
|
63
70
|
end
|
64
71
|
|
65
|
-
def app_global_get(
|
66
|
-
|
72
|
+
def app_global_get(key = nil)
|
73
|
+
@contract.teal << 'app_global_get'
|
74
|
+
@contract
|
67
75
|
end
|
68
76
|
|
69
|
-
def app_global_get_ex(
|
70
|
-
|
77
|
+
def app_global_get_ex(app = nil, key = nil)
|
78
|
+
@contract.teal << 'app_global_get_ex'
|
79
|
+
@contract
|
71
80
|
end
|
72
81
|
|
73
|
-
def app_global_put(
|
74
|
-
|
82
|
+
def app_global_put(key = nil, value = nil)
|
83
|
+
@contract.teal << 'app_global_put'
|
84
|
+
@contract
|
75
85
|
end
|
76
86
|
|
77
|
-
def app_local_del(
|
78
|
-
|
87
|
+
def app_local_del(account = nil, key = nil)
|
88
|
+
@contract.teal << 'app_local_del'
|
89
|
+
@contract
|
79
90
|
end
|
80
91
|
|
81
|
-
def app_local_get(
|
82
|
-
|
92
|
+
def app_local_get(account = nil, key = nil)
|
93
|
+
@contract.teal << 'app_local_get'
|
94
|
+
@contract
|
83
95
|
end
|
84
96
|
|
85
|
-
def app_local_get_ex(
|
86
|
-
|
97
|
+
def app_local_get_ex(account = nil, application = nil, key = nil)
|
98
|
+
@contract.teal << 'app_local_get_ex'
|
99
|
+
@contract
|
87
100
|
end
|
88
101
|
|
89
|
-
def app_local_put(
|
90
|
-
|
102
|
+
def app_local_put(account = nil, key = nil, value = nil)
|
103
|
+
@contract.teal << 'app_local_put'
|
104
|
+
@contract
|
91
105
|
end
|
92
106
|
|
93
|
-
def app_opted_in(
|
94
|
-
|
107
|
+
def app_opted_in(account = nil, app = nil)
|
108
|
+
@contract.teal << 'app_opted_in'
|
109
|
+
@contract
|
95
110
|
end
|
96
111
|
|
97
|
-
def app_params_get(field,
|
98
|
-
|
112
|
+
def app_params_get(field, app_id = nil)
|
113
|
+
@contract.teal << "app_params_get #{field}"
|
114
|
+
@contract
|
99
115
|
end
|
100
116
|
|
101
117
|
def approve
|
102
|
-
|
103
|
-
|
118
|
+
@contract.teal << 'int 1'
|
119
|
+
@contract.teal << 'return'
|
120
|
+
@contract
|
104
121
|
end
|
105
122
|
|
106
123
|
def arg(index)
|
107
|
-
|
124
|
+
@contract.teal << "arg #{index}"
|
125
|
+
@contract
|
108
126
|
end
|
109
127
|
|
110
128
|
def arg_0 # rubocop:disable Naming/VariableNumber
|
111
|
-
|
129
|
+
@contract.teal << 'arg_0'
|
130
|
+
@contract
|
112
131
|
end
|
113
132
|
|
114
133
|
def arg_1 # rubocop:disable Naming/VariableNumber
|
115
|
-
|
134
|
+
@contract.teal << 'arg_1'
|
135
|
+
@contract
|
116
136
|
end
|
117
137
|
|
118
138
|
def arg_2 # rubocop:disable Naming/VariableNumber
|
119
|
-
|
139
|
+
@contract.teal << 'arg_2'
|
140
|
+
@contract
|
120
141
|
end
|
121
142
|
|
122
143
|
def arg_3 # rubocop:disable Naming/VariableNumber
|
123
|
-
|
144
|
+
@contract.teal << 'arg_3'
|
145
|
+
@contract
|
124
146
|
end
|
125
147
|
|
126
|
-
def args(
|
127
|
-
|
148
|
+
def args(index = nil)
|
149
|
+
@contract.teal << 'args'
|
150
|
+
@contract
|
128
151
|
end
|
129
152
|
|
130
|
-
def assert(
|
131
|
-
|
153
|
+
def assert(expr = nil)
|
154
|
+
@contract.teal << 'assert'
|
155
|
+
@contract
|
132
156
|
end
|
133
157
|
|
134
|
-
def asset_holding_get(field,
|
135
|
-
|
158
|
+
def asset_holding_get(field, account = nil, asset = nil)
|
159
|
+
@contract.teal << "asset_holding_get #{field}"
|
160
|
+
@contract
|
136
161
|
end
|
137
162
|
|
138
|
-
def asset_params_get(field,
|
139
|
-
|
163
|
+
def asset_params_get(field, asset = nil)
|
164
|
+
@contract.teal << "asset_params_get #{field}"
|
165
|
+
@contract
|
140
166
|
end
|
141
167
|
|
142
168
|
def b(target)
|
143
|
-
|
169
|
+
@contract.teal << "#{__method__} #{target}"
|
170
|
+
@contract
|
144
171
|
end
|
145
172
|
|
146
173
|
def base32(input)
|
147
|
-
|
174
|
+
@contract.teal << "byte base32(#{input})"
|
175
|
+
@contract
|
176
|
+
end
|
177
|
+
|
178
|
+
def base64_decode(encoding, input = nil)
|
179
|
+
@contract.teal << "base64_decode #{encoding}"
|
180
|
+
@contract
|
148
181
|
end
|
149
182
|
|
150
|
-
def balance(
|
151
|
-
|
183
|
+
def balance(account = nil)
|
184
|
+
@contract.teal << 'balance'
|
185
|
+
@contract
|
152
186
|
end
|
153
187
|
|
154
|
-
def big_endian_add(
|
155
|
-
|
188
|
+
def big_endian_add(a = nil, b = nil)
|
189
|
+
@contract.teal << 'b+'
|
190
|
+
@contract
|
156
191
|
end
|
157
192
|
|
158
|
-
def big_endian_divide(
|
159
|
-
|
193
|
+
def big_endian_divide(a = nil, b = nil)
|
194
|
+
@contract.teal << 'b/'
|
195
|
+
@contract
|
160
196
|
end
|
161
197
|
|
162
|
-
def big_endian_equal(
|
163
|
-
|
198
|
+
def big_endian_equal(a = nil, b = nil)
|
199
|
+
@contract.teal << 'b=='
|
200
|
+
@contract
|
164
201
|
end
|
165
202
|
|
166
|
-
def big_endian_less(
|
167
|
-
|
203
|
+
def big_endian_less(a = nil, b = nil)
|
204
|
+
@contract.teal << 'b<'
|
205
|
+
@contract
|
168
206
|
end
|
169
207
|
|
170
|
-
def big_endian_less_eq(
|
171
|
-
|
208
|
+
def big_endian_less_eq(a = nil, b = nil)
|
209
|
+
@contract.teal << 'b<='
|
210
|
+
@contract
|
172
211
|
end
|
173
212
|
|
174
|
-
def big_endian_modulo(
|
175
|
-
|
213
|
+
def big_endian_modulo(a = nil, b = nil)
|
214
|
+
@contract.teal << 'b%'
|
215
|
+
@contract
|
176
216
|
end
|
177
217
|
|
178
|
-
def big_endian_more(
|
179
|
-
|
218
|
+
def big_endian_more(a = nil, b = nil)
|
219
|
+
@contract.teal << 'b>'
|
220
|
+
@contract
|
180
221
|
end
|
181
222
|
|
182
|
-
def big_endian_more_eq(
|
183
|
-
|
223
|
+
def big_endian_more_eq(a = nil, b = nil)
|
224
|
+
@contract.teal << 'b>='
|
225
|
+
@contract
|
184
226
|
end
|
185
227
|
|
186
|
-
def big_endian_multiply(
|
187
|
-
|
228
|
+
def big_endian_multiply(a = nil, b = nil)
|
229
|
+
@contract.teal << 'b*'
|
230
|
+
@contract
|
188
231
|
end
|
189
232
|
|
190
|
-
def big_endian_not_equal(
|
191
|
-
|
233
|
+
def big_endian_not_equal(a = nil, b = nil)
|
234
|
+
@contract.teal << 'b!='
|
235
|
+
@contract
|
192
236
|
end
|
193
237
|
|
194
|
-
def big_endian_subtract(
|
195
|
-
|
238
|
+
def big_endian_subtract(a = nil, b = nil)
|
239
|
+
@contract.teal << 'b-'
|
240
|
+
@contract
|
196
241
|
end
|
197
242
|
|
198
|
-
def bitlen(
|
199
|
-
|
243
|
+
def bitlen(input = nil)
|
244
|
+
@contract.teal << 'bitlen'
|
245
|
+
@contract
|
200
246
|
end
|
201
247
|
|
202
|
-
def bitwise_and(
|
203
|
-
|
248
|
+
def bitwise_and(a = nil, b = nil)
|
249
|
+
@contract.teal << '&'
|
250
|
+
@contract
|
204
251
|
end
|
205
252
|
|
206
|
-
def bitwise_byte_invert(
|
207
|
-
|
253
|
+
def bitwise_byte_invert(a = nil, b = nil)
|
254
|
+
@contract.teal << 'b~'
|
255
|
+
@contract
|
208
256
|
end
|
209
257
|
|
210
|
-
def bitwise_invert(
|
211
|
-
|
258
|
+
def bitwise_invert(a = nil, b = nil)
|
259
|
+
@contract.teal << '~'
|
260
|
+
@contract
|
212
261
|
end
|
213
262
|
|
214
|
-
def bitwise_or(
|
215
|
-
|
263
|
+
def bitwise_or(a = nil, b = nil)
|
264
|
+
@contract.teal << '|'
|
265
|
+
@contract
|
216
266
|
end
|
217
267
|
|
218
|
-
def bitwise_xor(
|
219
|
-
|
268
|
+
def bitwise_xor(a = nil, b = nil)
|
269
|
+
@contract.teal << '^'
|
270
|
+
@contract
|
220
271
|
end
|
221
272
|
|
222
273
|
def bnz(target)
|
223
|
-
|
274
|
+
@contract.teal << "#{__method__} #{target}"
|
275
|
+
@contract
|
276
|
+
end
|
277
|
+
|
278
|
+
def box_create(name = nil, length = nil)
|
279
|
+
@contract.teal << 'box_create'
|
280
|
+
@contract
|
281
|
+
end
|
282
|
+
|
283
|
+
def box_extract(name = nil, offset = nil, length = nil)
|
284
|
+
@contract.teal << 'box_extract'
|
285
|
+
@contract
|
286
|
+
end
|
287
|
+
|
288
|
+
def box_replace(name = nil, offset = nil, value = nil)
|
289
|
+
@contract.teal << 'box_replace'
|
290
|
+
@contract
|
291
|
+
end
|
292
|
+
|
293
|
+
def box_del(name = nil)
|
294
|
+
@contract.teal << 'box_del'
|
295
|
+
@contract
|
296
|
+
end
|
297
|
+
|
298
|
+
def box_len(name = nil)
|
299
|
+
@contract.teal << 'box_len'
|
300
|
+
@contract
|
224
301
|
end
|
225
302
|
|
226
|
-
def
|
227
|
-
|
303
|
+
def box_get(name = nil)
|
304
|
+
@contract.teal << 'box_get'
|
305
|
+
@contract
|
228
306
|
end
|
229
307
|
|
230
|
-
def
|
231
|
-
|
308
|
+
def box_put(name = nil, value = nil)
|
309
|
+
@contract.teal << 'box_put'
|
310
|
+
@contract
|
311
|
+
end
|
312
|
+
|
313
|
+
def bsqrt(big_endian_uint = nil)
|
314
|
+
@contract.teal << 'bsqrt'
|
315
|
+
@contract
|
316
|
+
end
|
317
|
+
|
318
|
+
def btoi(bytes = nil)
|
319
|
+
@contract.teal << 'btoi'
|
320
|
+
@contract
|
232
321
|
end
|
233
322
|
|
234
323
|
def byte(string)
|
235
|
-
|
324
|
+
@contract.teal << "byte \"#{string}\""
|
325
|
+
@contract
|
236
326
|
end
|
237
327
|
|
238
328
|
def bytec(index)
|
239
|
-
|
329
|
+
@contract.teal << "bytec #{index}"
|
330
|
+
@contract
|
240
331
|
end
|
241
332
|
|
242
333
|
def bytec_0 # rubocop:disable Naming/VariableNumber
|
243
|
-
|
334
|
+
@contract.teal << 'bytec_0'
|
335
|
+
@contract
|
244
336
|
end
|
245
337
|
|
246
338
|
def bytec_1 # rubocop:disable Naming/VariableNumber
|
247
|
-
|
339
|
+
@contract.teal << 'bytec_1'
|
340
|
+
@contract
|
248
341
|
end
|
249
342
|
|
250
343
|
def bytec_2 # rubocop:disable Naming/VariableNumber
|
251
|
-
|
344
|
+
@contract.teal << 'bytec_2'
|
345
|
+
@contract
|
252
346
|
end
|
253
347
|
|
254
348
|
def bytec_3 # rubocop:disable Naming/VariableNumber
|
255
|
-
|
349
|
+
@contract.teal << 'bytec_3'
|
350
|
+
@contract
|
256
351
|
end
|
257
352
|
|
258
353
|
def bytecblock(*bytes)
|
259
|
-
|
354
|
+
@contract.teal << "bytecblock #{bytes.join(' ')}"
|
355
|
+
@contract
|
260
356
|
end
|
261
357
|
|
262
358
|
def bz(target)
|
263
|
-
|
359
|
+
@contract.teal << "#{__method__} #{target}"
|
360
|
+
@contract
|
264
361
|
end
|
265
362
|
|
266
|
-
def bzero(
|
267
|
-
|
363
|
+
def bzero(length = nil)
|
364
|
+
@contract.teal << 'bzero'
|
365
|
+
@contract
|
268
366
|
end
|
269
367
|
|
270
368
|
def callsub(name, *_args)
|
271
|
-
|
369
|
+
@contract.teal << "callsub #{name}"
|
370
|
+
@contract
|
272
371
|
end
|
273
372
|
|
274
|
-
def concat(
|
275
|
-
|
373
|
+
def concat(a = nil, b = nil)
|
374
|
+
@contract.teal << 'concat'
|
375
|
+
@contract
|
276
376
|
end
|
277
377
|
|
278
378
|
def cover(count)
|
279
|
-
|
379
|
+
@contract.teal << "cover #{count}"
|
380
|
+
@contract
|
280
381
|
end
|
281
382
|
|
282
383
|
def dig(index)
|
283
|
-
|
384
|
+
@contract.teal << "dig #{index}"
|
385
|
+
@contract
|
284
386
|
end
|
285
387
|
|
286
|
-
def divide(
|
287
|
-
|
388
|
+
def divide(a = nil, b = nil)
|
389
|
+
@contract.teal << '/'
|
390
|
+
@contract
|
288
391
|
end
|
289
392
|
|
290
|
-
def divmodw(
|
291
|
-
|
393
|
+
def divmodw(a = nil, b = nil)
|
394
|
+
@contract.teal << 'divmodw'
|
395
|
+
@contract
|
292
396
|
end
|
293
397
|
|
294
|
-
def divw(
|
295
|
-
|
398
|
+
def divw(a = nil, b = nil)
|
399
|
+
@contract.teal << 'divw'
|
400
|
+
@contract
|
296
401
|
end
|
297
402
|
|
298
|
-
def dup(
|
299
|
-
|
403
|
+
def dup(expr = nil)
|
404
|
+
@contract.teal << 'dup'
|
405
|
+
@contract
|
300
406
|
end
|
301
407
|
|
302
|
-
def dup2(
|
303
|
-
|
408
|
+
def dup2(expr_a = nil, expr_b = nil)
|
409
|
+
@contract.teal << 'dup2'
|
410
|
+
@contract
|
304
411
|
end
|
305
412
|
|
306
|
-
def ecdsa_pk_decompress(index,
|
307
|
-
|
413
|
+
def ecdsa_pk_decompress(index, input = nil)
|
414
|
+
@contract.teal << "ecdsa_pk_decompress #{index}"
|
415
|
+
@contract
|
308
416
|
end
|
309
417
|
|
310
|
-
def ecdsa_pk_recover(index,
|
311
|
-
|
418
|
+
def ecdsa_pk_recover(index, input = nil)
|
419
|
+
@contract.teal << "ecdsa_pk_recover #{index}"
|
420
|
+
@contract
|
312
421
|
end
|
313
422
|
|
314
|
-
def ecdsa_verify(index,
|
315
|
-
|
423
|
+
def ecdsa_verify(index, input = nil)
|
424
|
+
@contract.teal << "ecdsa_verify #{index}"
|
425
|
+
@contract
|
316
426
|
end
|
317
427
|
|
318
|
-
def ed25519verify(
|
319
|
-
|
428
|
+
def ed25519verify(input = nil)
|
429
|
+
@contract.teal << 'ed25519verify'
|
430
|
+
@contract
|
320
431
|
end
|
321
432
|
|
322
|
-
def
|
323
|
-
|
433
|
+
def ed25519verify_bare(input = nil)
|
434
|
+
@contract.teal << 'ed25519verify_bare'
|
435
|
+
@contract
|
436
|
+
end
|
437
|
+
|
438
|
+
def equal(a = nil, b = nil)
|
439
|
+
@contract.teal << '=='
|
440
|
+
@contract
|
324
441
|
end
|
325
442
|
|
326
443
|
def err
|
327
|
-
|
444
|
+
@contract.teal << 'err'
|
445
|
+
@contract
|
328
446
|
end
|
329
447
|
|
330
|
-
def exp(
|
331
|
-
|
448
|
+
def exp(a = nil, b = nil)
|
449
|
+
@contract.teal << 'exp'
|
450
|
+
@contract
|
332
451
|
end
|
333
452
|
|
334
|
-
def expw(
|
335
|
-
|
453
|
+
def expw(a = nil, b = nil)
|
454
|
+
@contract.teal << 'expw'
|
455
|
+
@contract
|
336
456
|
end
|
337
457
|
|
338
|
-
def extract(start, length,
|
339
|
-
|
458
|
+
def extract(start, length, byte_array = nil)
|
459
|
+
@contract.teal << "extract #{start} #{length}"
|
460
|
+
@contract
|
340
461
|
end
|
341
462
|
|
342
|
-
def extract3(
|
343
|
-
|
463
|
+
def extract3(byte_array = nil, start = nil, exclusive_end = nil)
|
464
|
+
@contract.teal << 'extract3'
|
465
|
+
@contract
|
344
466
|
end
|
345
467
|
|
346
|
-
def extract_uint16(
|
347
|
-
|
468
|
+
def extract_uint16(byte_array = nil, start = nil)
|
469
|
+
@contract.teal << 'extract_uint16'
|
470
|
+
@contract
|
348
471
|
end
|
349
472
|
|
350
|
-
def extract_uint32(
|
351
|
-
|
473
|
+
def extract_uint32(byte_array = nil, start = nil)
|
474
|
+
@contract.teal << 'extract_uint32'
|
475
|
+
@contract
|
352
476
|
end
|
353
477
|
|
354
|
-
def extract_uint64(
|
355
|
-
|
478
|
+
def extract_uint64(byte_array = nil, start = nil)
|
479
|
+
@contract.teal << 'extract_uint64'
|
480
|
+
@contract
|
356
481
|
end
|
357
482
|
|
358
483
|
def gaid(transaction_index)
|
359
|
-
|
484
|
+
@contract.teal << "gaid #{transaction_index}"
|
485
|
+
@contract
|
360
486
|
end
|
361
487
|
|
362
|
-
def gaids(
|
363
|
-
|
488
|
+
def gaids(transaction = nil)
|
489
|
+
@contract.teal << 'gaids'
|
490
|
+
@contract
|
364
491
|
end
|
365
492
|
|
366
|
-
def getbit(
|
367
|
-
|
493
|
+
def getbit(input = nil, bit_index = nil)
|
494
|
+
@contract.teal << 'getbit'
|
495
|
+
@contract
|
368
496
|
end
|
369
497
|
|
370
|
-
def getbyte(
|
371
|
-
|
498
|
+
def getbyte(input = nil, byte_index = nil)
|
499
|
+
@contract.teal << 'getbyte'
|
500
|
+
@contract
|
372
501
|
end
|
373
502
|
|
374
503
|
def gitxn(transaction_index, field)
|
375
|
-
|
504
|
+
@contract.teal << "gitxn #{transaction_index} #{field}"
|
505
|
+
@contract
|
376
506
|
end
|
377
507
|
|
378
508
|
def gitxna(transaction_index, field, index)
|
379
|
-
|
509
|
+
@contract.teal << "gitxna #{transaction_index} #{field} #{index}"
|
510
|
+
@contract
|
380
511
|
end
|
381
512
|
|
382
|
-
def gitxnas(transaction_index, field,
|
383
|
-
|
513
|
+
def gitxnas(transaction_index, field, index = nil)
|
514
|
+
@contract.teal << "gitxnas #{transaction_index} #{field}"
|
515
|
+
@contract
|
384
516
|
end
|
385
517
|
|
386
518
|
def gload(transaction_index, index)
|
387
|
-
|
519
|
+
@contract.teal << "gload #{transaction_index} #{index}"
|
520
|
+
@contract
|
388
521
|
end
|
389
522
|
|
390
|
-
def gloads(index,
|
391
|
-
|
523
|
+
def gloads(index, transaction_index = nil)
|
524
|
+
@contract.teal << "gloads #{index}"
|
525
|
+
@contract
|
392
526
|
end
|
393
527
|
|
394
|
-
def gloadss(
|
395
|
-
|
528
|
+
def gloadss(transaction = nil, index = nil)
|
529
|
+
@contract.teal << 'gloadss'
|
530
|
+
@contract
|
396
531
|
end
|
397
532
|
|
398
533
|
def global(field)
|
399
|
-
|
534
|
+
@contract.teal << "global #{field}"
|
535
|
+
@contract
|
400
536
|
end
|
401
537
|
|
402
|
-
def greater(
|
403
|
-
|
538
|
+
def greater(a = nil, b = nil)
|
539
|
+
@contract.teal << '>'
|
540
|
+
@contract
|
404
541
|
end
|
405
542
|
|
406
|
-
def greater_eq(
|
407
|
-
|
543
|
+
def greater_eq(a = nil, b = nil)
|
544
|
+
@contract.teal << '>='
|
545
|
+
@contract
|
408
546
|
end
|
409
547
|
|
410
548
|
def gtxn(index, field)
|
411
|
-
|
549
|
+
@contract.teal << "gtxn #{index} #{field}"
|
550
|
+
@contract
|
412
551
|
end
|
413
552
|
|
414
553
|
def gtxna(transaction_index, field, index)
|
415
|
-
|
554
|
+
@contract.teal << "gtxna #{transaction_index} #{field} #{index}"
|
555
|
+
@contract
|
416
556
|
end
|
417
557
|
|
418
|
-
def gtxns(field,
|
419
|
-
|
558
|
+
def gtxns(field, transaction_index = nil)
|
559
|
+
@contract.teal << "gtxns #{field}"
|
560
|
+
@contract
|
420
561
|
end
|
421
562
|
|
422
|
-
def gtxnsa(field, index,
|
423
|
-
|
563
|
+
def gtxnsa(field, index, transaction_index = nil)
|
564
|
+
@contract.teal << "gtxnsa #{field} #{index}"
|
565
|
+
@contract
|
424
566
|
end
|
425
567
|
|
426
|
-
def gtxnas(transaction_index, field,
|
427
|
-
|
568
|
+
def gtxnas(transaction_index, field, index = nil)
|
569
|
+
@contract.teal << "gtxnas #{transaction_index} #{field}"
|
570
|
+
@contract
|
428
571
|
end
|
429
572
|
|
430
|
-
def gtxnsas(field,
|
431
|
-
|
573
|
+
def gtxnsas(field, transaction_index = nil, index = nil)
|
574
|
+
@contract.teal << "gtxnsas #{field}"
|
575
|
+
@contract
|
432
576
|
end
|
433
577
|
|
434
578
|
def int(integer)
|
435
|
-
|
579
|
+
@contract.teal << "int #{integer}"
|
580
|
+
@contract
|
436
581
|
end
|
437
582
|
|
438
583
|
def intc(index)
|
439
|
-
|
584
|
+
@contract.teal << "intc #{index}"
|
585
|
+
@contract
|
440
586
|
end
|
441
587
|
|
442
588
|
def intc_0 # rubocop:disable Naming/VariableNumber
|
443
|
-
|
589
|
+
@contract.teal << 'intc_0'
|
590
|
+
@contract
|
444
591
|
end
|
445
592
|
|
446
593
|
def intc_1 # rubocop:disable Naming/VariableNumber
|
447
|
-
|
594
|
+
@contract.teal << 'intc_1'
|
595
|
+
@contract
|
448
596
|
end
|
449
597
|
|
450
598
|
def intc_2 # rubocop:disable Naming/VariableNumber
|
451
|
-
|
599
|
+
@contract.teal << 'intc_2'
|
600
|
+
@contract
|
452
601
|
end
|
453
602
|
|
454
603
|
def intc_3 # rubocop:disable Naming/VariableNumber
|
455
|
-
|
604
|
+
@contract.teal << 'intc_3'
|
605
|
+
@contract
|
456
606
|
end
|
457
607
|
|
458
608
|
def intcblock(*ints)
|
459
|
-
|
609
|
+
@contract.teal << "intcblock #{ints.join(' ')}"
|
610
|
+
@contract
|
460
611
|
end
|
461
612
|
|
462
|
-
def itob(
|
463
|
-
|
613
|
+
def itob(bytes = nil)
|
614
|
+
@contract.teal << 'itob'
|
615
|
+
@contract
|
464
616
|
end
|
465
617
|
|
466
618
|
def itxn_begin
|
467
|
-
|
619
|
+
@contract.teal << 'itxn_begin'
|
620
|
+
@contract
|
468
621
|
end
|
469
622
|
|
470
|
-
def itxn_field(field,
|
471
|
-
|
623
|
+
def itxn_field(field, value = nil)
|
624
|
+
@contract.teal << "itxn_field #{field}"
|
625
|
+
@contract
|
472
626
|
end
|
473
627
|
|
474
628
|
def itxn_next
|
475
|
-
|
629
|
+
@contract.teal << 'itxn_next'
|
630
|
+
@contract
|
476
631
|
end
|
477
632
|
|
478
633
|
def itxn_submit
|
479
|
-
|
634
|
+
@contract.teal << 'itxn_submit'
|
635
|
+
@contract
|
480
636
|
end
|
481
637
|
|
482
638
|
def itxna(field, index)
|
483
|
-
|
639
|
+
@contract.teal << "itxna #{field} #{index}"
|
640
|
+
@contract
|
484
641
|
end
|
485
642
|
|
486
|
-
def itxnas(field,
|
487
|
-
|
643
|
+
def itxnas(field, index = nil)
|
644
|
+
@contract.teal << "itxnas #{field}"
|
645
|
+
@contract
|
488
646
|
end
|
489
647
|
|
490
|
-
def
|
491
|
-
|
648
|
+
def json_ref(type, object = nil, key = nil)
|
649
|
+
@contract.teal << "json_ref #{type}"
|
650
|
+
@contract
|
651
|
+
end
|
652
|
+
|
653
|
+
def keccak256(input = nil)
|
654
|
+
@contract.teal << 'keccak256'
|
655
|
+
@contract
|
492
656
|
end
|
493
657
|
|
494
658
|
def label(label_name)
|
495
|
-
|
659
|
+
@contract.teal << "#{label_name}:"
|
660
|
+
@contract
|
496
661
|
end
|
497
662
|
|
498
|
-
def len(
|
499
|
-
|
663
|
+
def len(input = nil)
|
664
|
+
@contract.teal << 'len'
|
665
|
+
@contract
|
500
666
|
end
|
501
667
|
|
502
|
-
def less(
|
503
|
-
|
668
|
+
def less(a = nil, b = nil)
|
669
|
+
@contract.teal << '<'
|
670
|
+
@contract
|
504
671
|
end
|
505
672
|
|
506
|
-
def less_eq(
|
507
|
-
|
673
|
+
def less_eq(a = nil, b = nil)
|
674
|
+
@contract.teal << '<='
|
675
|
+
@contract
|
508
676
|
end
|
509
677
|
|
510
678
|
def load(index)
|
511
|
-
|
679
|
+
@contract.teal << "load #{index}"
|
680
|
+
@contract
|
512
681
|
end
|
513
682
|
|
514
|
-
def loads(
|
515
|
-
|
683
|
+
def loads(index = nil)
|
684
|
+
@contract.teal << 'loads'
|
685
|
+
@contract
|
516
686
|
end
|
517
687
|
|
518
|
-
def log(
|
519
|
-
|
688
|
+
def log(byte_array = nil)
|
689
|
+
@contract.teal << 'log'
|
690
|
+
@contract
|
520
691
|
end
|
521
692
|
|
522
693
|
def method_signature(signature)
|
523
|
-
|
694
|
+
@contract.teal << %(method "#{signature}")
|
695
|
+
@contract
|
524
696
|
end
|
525
697
|
|
526
|
-
def min_balance(
|
527
|
-
|
698
|
+
def min_balance(account = nil)
|
699
|
+
@contract.teal << 'min_balance'
|
700
|
+
@contract
|
528
701
|
end
|
529
702
|
|
530
|
-
def modulo(
|
531
|
-
|
703
|
+
def modulo(a = nil, b = nil)
|
704
|
+
@contract.teal << '%'
|
705
|
+
@contract
|
532
706
|
end
|
533
707
|
|
534
|
-
def multiply(
|
535
|
-
|
708
|
+
def multiply(a = nil, b = nil)
|
709
|
+
@contract.teal << '*'
|
710
|
+
@contract
|
536
711
|
end
|
537
712
|
|
538
|
-
def mulw(
|
539
|
-
|
713
|
+
def mulw(a = nil, b = nil)
|
714
|
+
@contract.teal << 'mulw'
|
715
|
+
@contract
|
540
716
|
end
|
541
717
|
|
542
|
-
def zero?(
|
543
|
-
|
718
|
+
def zero?(expr = nil)
|
719
|
+
@contract.teal << '!'
|
720
|
+
@contract
|
544
721
|
end
|
545
722
|
|
546
|
-
def not_equal(
|
547
|
-
|
723
|
+
def not_equal(a = nil, b = nil)
|
724
|
+
@contract.teal << '!='
|
725
|
+
@contract
|
548
726
|
end
|
549
727
|
|
550
|
-
def padded_bitwise_and(
|
551
|
-
|
728
|
+
def padded_bitwise_and(a = nil, b = nil)
|
729
|
+
@contract.teal << 'b&'
|
730
|
+
@contract
|
552
731
|
end
|
553
732
|
|
554
|
-
def padded_bitwise_or(
|
555
|
-
|
733
|
+
def padded_bitwise_or(a = nil, b = nil)
|
734
|
+
@contract.teal << 'b|'
|
735
|
+
@contract
|
556
736
|
end
|
557
737
|
|
558
|
-
def padded_bitwise_xor(
|
559
|
-
|
738
|
+
def padded_bitwise_xor(a = nil, b = nil)
|
739
|
+
@contract.teal << 'b^'
|
740
|
+
@contract
|
560
741
|
end
|
561
742
|
|
562
|
-
def pop(
|
563
|
-
|
743
|
+
def pop(expr = nil)
|
744
|
+
@contract.teal << 'pop'
|
745
|
+
@contract
|
564
746
|
end
|
565
747
|
|
566
748
|
def pushbytes(string)
|
567
|
-
|
749
|
+
@contract.teal << "pushbytes \"#{string}\""
|
750
|
+
@contract
|
568
751
|
end
|
569
752
|
|
570
753
|
def pushint(integer)
|
571
|
-
|
754
|
+
@contract.teal << "pushint #{integer}"
|
755
|
+
@contract
|
756
|
+
end
|
757
|
+
|
758
|
+
def replace(a = nil, b = nil, c = nil)
|
759
|
+
@contract.teal << 'replace'
|
760
|
+
@contract
|
761
|
+
end
|
762
|
+
|
763
|
+
def replace2(start, a = nil, b = nil)
|
764
|
+
@contract.teal << "replace2 #{start}"
|
765
|
+
@contract
|
572
766
|
end
|
573
767
|
|
574
768
|
def retsub
|
575
|
-
|
769
|
+
@contract.teal << 'retsub'
|
770
|
+
@contract
|
576
771
|
end
|
577
772
|
|
578
|
-
def select(
|
579
|
-
|
773
|
+
def select(expr_a = nil, expr_b = nil, expr_c = nil)
|
774
|
+
@contract.teal << 'select'
|
775
|
+
@contract
|
580
776
|
end
|
581
777
|
|
582
|
-
def setbit(
|
583
|
-
|
778
|
+
def setbit(input = nil, bit_index = nil, value = nil)
|
779
|
+
@contract.teal << 'setbit'
|
780
|
+
@contract
|
584
781
|
end
|
585
782
|
|
586
|
-
def setbyte(
|
587
|
-
|
783
|
+
def setbyte(byte_array = nil, byte_index = nil, value = nil)
|
784
|
+
@contract.teal << 'setbyte'
|
785
|
+
@contract
|
588
786
|
end
|
589
787
|
|
590
|
-
def sha256(
|
591
|
-
|
788
|
+
def sha256(input = nil)
|
789
|
+
@contract.teal << 'sha256'
|
790
|
+
@contract
|
592
791
|
end
|
593
792
|
|
594
|
-
|
595
|
-
|
793
|
+
# rubocop:disable Naming/VariableNumber
|
794
|
+
def sha3_256(input = nil)
|
795
|
+
@contract.teal << 'sha3_256'
|
796
|
+
@contract
|
596
797
|
end
|
597
798
|
|
598
|
-
def
|
599
|
-
|
799
|
+
def sha512_256(input = nil)
|
800
|
+
@contract.teal << 'sha512_256'
|
801
|
+
@contract
|
600
802
|
end
|
601
803
|
|
602
|
-
|
603
|
-
|
804
|
+
# rubocop:enable Naming/VariableNumber
|
805
|
+
|
806
|
+
def shl(a = nil, b = nil)
|
807
|
+
@contract.teal << 'shl'
|
808
|
+
@contract
|
604
809
|
end
|
605
810
|
|
606
|
-
def
|
607
|
-
|
811
|
+
def shr(a = nil, b = nil)
|
812
|
+
@contract.teal << 'shr'
|
813
|
+
@contract
|
608
814
|
end
|
609
815
|
|
610
|
-
def
|
611
|
-
|
816
|
+
def sqrt(integer = nil)
|
817
|
+
@contract.teal << 'sqrt'
|
818
|
+
@contract
|
612
819
|
end
|
613
820
|
|
614
|
-
def
|
615
|
-
|
821
|
+
def store(index, value = nil)
|
822
|
+
@contract.teal << "store #{index}"
|
823
|
+
@contract
|
616
824
|
end
|
617
825
|
|
618
|
-
def
|
619
|
-
|
826
|
+
def stores(index = nil, value = nil)
|
827
|
+
@contract.teal << 'stores'
|
828
|
+
@contract
|
620
829
|
end
|
621
830
|
|
622
|
-
def
|
623
|
-
|
831
|
+
def substring(start, exclusive_end, byte_array = nil)
|
832
|
+
@contract.teal << "substring #{start} #{exclusive_end}"
|
833
|
+
@contract
|
624
834
|
end
|
625
835
|
|
626
|
-
def
|
627
|
-
|
836
|
+
def substring3(byte_array = nil, start = nil, exclusive_end = nil)
|
837
|
+
@contract.teal << 'substring3'
|
838
|
+
@contract
|
628
839
|
end
|
629
840
|
|
630
|
-
def
|
631
|
-
|
841
|
+
def subtract(a = nil, b = nil)
|
842
|
+
@contract.teal << '-'
|
843
|
+
@contract
|
632
844
|
end
|
633
845
|
|
634
|
-
def
|
635
|
-
|
846
|
+
def swap(expr_a = nil, expr_b = nil)
|
847
|
+
@contract.teal << 'swap'
|
848
|
+
@contract
|
849
|
+
end
|
850
|
+
|
851
|
+
def teal_return(expr = nil)
|
852
|
+
@contract.teal << 'return'
|
853
|
+
@contract
|
636
854
|
end
|
637
855
|
|
638
856
|
def txn(field)
|
639
|
-
|
857
|
+
@contract.teal << "txn #{field}"
|
858
|
+
@contract
|
640
859
|
end
|
641
860
|
|
642
861
|
def txna(field, index)
|
643
|
-
|
862
|
+
@contract.teal << "txna #{field} #{index}"
|
863
|
+
@contract
|
644
864
|
end
|
645
865
|
|
646
|
-
def txnas(field,
|
647
|
-
|
866
|
+
def txnas(field, index = nil)
|
867
|
+
@contract.teal << "txnas #{field}"
|
868
|
+
@contract
|
648
869
|
end
|
649
870
|
|
650
871
|
def uncover(count)
|
651
|
-
|
872
|
+
@contract.teal << "uncover #{count}"
|
873
|
+
@contract
|
874
|
+
end
|
875
|
+
|
876
|
+
def vrf_verify(standard, message = nil, proof = nil, public_key = nil)
|
877
|
+
@contract.teal << "vrf_verify #{standard}"
|
878
|
+
@contract
|
652
879
|
end
|
653
880
|
|
654
|
-
def boolean_and(
|
655
|
-
|
881
|
+
def boolean_and(a = nil, b = nil)
|
882
|
+
@contract.teal << '&&'
|
883
|
+
@contract
|
656
884
|
end
|
657
885
|
|
658
|
-
def boolean_or(
|
659
|
-
|
886
|
+
def boolean_or(a = nil, b = nil)
|
887
|
+
@contract.teal << '||'
|
888
|
+
@contract
|
889
|
+
end
|
890
|
+
|
891
|
+
def pushints(*ints)
|
892
|
+
@contract.teal << "pushints #{ints.join(' ')}"
|
893
|
+
@contract
|
894
|
+
end
|
895
|
+
|
896
|
+
def pushbytess(*bytes)
|
897
|
+
@contract.teal << "pushbytes #{bytes.map { "\"#{_1}\"" }.join(' ')}"
|
898
|
+
@contract
|
899
|
+
end
|
900
|
+
|
901
|
+
def proto(num_args, num_return)
|
902
|
+
@contract.teal << "proto #{num_args} #{num_return}"
|
903
|
+
@contract
|
904
|
+
end
|
905
|
+
|
906
|
+
def frame_dig(n)
|
907
|
+
@contract.teal << "frame_dig #{n}"
|
908
|
+
@contract
|
909
|
+
end
|
910
|
+
|
911
|
+
def frame_bury(n)
|
912
|
+
@contract.teal << "frame_bury #{n}"
|
913
|
+
@contract
|
914
|
+
end
|
915
|
+
|
916
|
+
def switch(*labels)
|
917
|
+
@contract.teal << "switch #{labels.join(' ')}"
|
918
|
+
@contract
|
919
|
+
end
|
920
|
+
|
921
|
+
def match(*labels)
|
922
|
+
@contract.teal << "match #{labels.join(' ')}"
|
923
|
+
@contract
|
924
|
+
end
|
925
|
+
|
926
|
+
def popn(n)
|
927
|
+
@contract.teal << "popn #{n}"
|
928
|
+
@contract
|
929
|
+
end
|
930
|
+
|
931
|
+
def dupn(n)
|
932
|
+
@contract.teal << "dupn #{n}"
|
933
|
+
@contract
|
934
|
+
end
|
935
|
+
|
936
|
+
def bury(n)
|
937
|
+
@contract.teal << "bury #{n}"
|
938
|
+
@contract
|
660
939
|
end
|
661
940
|
end
|
662
941
|
end
|
663
942
|
end
|
943
|
+
|
944
|
+
# rubocop:enable Lint/UnusedMethodArgument
|