Module: TEALrb::Opcodes::TEALOpcodes

Included in:
Contract
Defined in:
lib/tealrb/opcodes.rb

Instance Method Summary collapse

Instance Method Details

#acct_params_get(field, account = nil) ⇒ Object



47
48
49
50
# File 'lib/tealrb/opcodes.rb', line 47

def acct_params_get(field,  = nil)
  @contract.teal << "acct_params_get #{field}"
  @contract
end

#add(a = nil, b = nil) ⇒ Object



52
53
54
55
# File 'lib/tealrb/opcodes.rb', line 52

def add(a = nil, b = nil)
  @contract.teal << '+'
  @contract
end

#addr(address) ⇒ Object



57
58
59
60
# File 'lib/tealrb/opcodes.rb', line 57

def addr(address)
  @contract.teal << "addr #{address}"
  @contract
end

#addw(a = nil, b = nil) ⇒ Object



62
63
64
65
# File 'lib/tealrb/opcodes.rb', line 62

def addw(a = nil, b = nil)
  @contract.teal << 'addw'
  @contract
end

#app_global_del(key = nil) ⇒ Object



67
68
69
70
# File 'lib/tealrb/opcodes.rb', line 67

def app_global_del(key = nil)
  @contract.teal << 'app_global_del'
  @contract
end

#app_global_get(key = nil) ⇒ Object



72
73
74
75
# File 'lib/tealrb/opcodes.rb', line 72

def app_global_get(key = nil)
  @contract.teal << 'app_global_get'
  @contract
end

#app_global_get_ex(app = nil, key = nil) ⇒ Object



77
78
79
80
# File 'lib/tealrb/opcodes.rb', line 77

def app_global_get_ex(app = nil, key = nil)
  @contract.teal << 'app_global_get_ex'
  @contract
end

#app_global_put(key = nil, value = nil) ⇒ Object



82
83
84
85
# File 'lib/tealrb/opcodes.rb', line 82

def app_global_put(key = nil, value = nil)
  @contract.teal << 'app_global_put'
  @contract
end

#app_local_del(account = nil, key = nil) ⇒ Object



87
88
89
90
# File 'lib/tealrb/opcodes.rb', line 87

def app_local_del( = nil, key = nil)
  @contract.teal << 'app_local_del'
  @contract
end

#app_local_get(account = nil, key = nil) ⇒ Object



92
93
94
95
# File 'lib/tealrb/opcodes.rb', line 92

def app_local_get( = nil, key = nil)
  @contract.teal << 'app_local_get'
  @contract
end

#app_local_get_ex(account = nil, application = nil, key = nil) ⇒ Object



97
98
99
100
# File 'lib/tealrb/opcodes.rb', line 97

def app_local_get_ex( = nil, application = nil, key = nil)
  @contract.teal << 'app_local_get_ex'
  @contract
end

#app_local_put(account = nil, key = nil, value = nil) ⇒ Object



102
103
104
105
# File 'lib/tealrb/opcodes.rb', line 102

def app_local_put( = nil, key = nil, value = nil)
  @contract.teal << 'app_local_put'
  @contract
end

#app_opted_in(account = nil, app = nil) ⇒ Object



107
108
109
110
# File 'lib/tealrb/opcodes.rb', line 107

def app_opted_in( = nil, app = nil)
  @contract.teal << 'app_opted_in'
  @contract
end

#app_params_get(field, app_id = nil) ⇒ Object



112
113
114
115
# File 'lib/tealrb/opcodes.rb', line 112

def app_params_get(field, app_id = nil)
  @contract.teal << "app_params_get #{field}"
  @contract
end

#approveObject



117
118
119
120
121
# File 'lib/tealrb/opcodes.rb', line 117

def approve
  @contract.teal << 'int 1'
  @contract.teal << 'return'
  @contract
end

#arg(index) ⇒ Object



123
124
125
126
# File 'lib/tealrb/opcodes.rb', line 123

def arg(index)
  @contract.teal << "arg #{index}"
  @contract
end

#arg_0Object

rubocop:disable Naming/VariableNumber



128
129
130
131
# File 'lib/tealrb/opcodes.rb', line 128

def arg_0 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'arg_0'
  @contract
end

#arg_1Object

rubocop:disable Naming/VariableNumber



133
134
135
136
# File 'lib/tealrb/opcodes.rb', line 133

def arg_1 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'arg_1'
  @contract
end

#arg_2Object

rubocop:disable Naming/VariableNumber



138
139
140
141
# File 'lib/tealrb/opcodes.rb', line 138

def arg_2 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'arg_2'
  @contract
end

#arg_3Object

rubocop:disable Naming/VariableNumber



143
144
145
146
# File 'lib/tealrb/opcodes.rb', line 143

def arg_3 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'arg_3'
  @contract
end

#args(index = nil) ⇒ Object



148
149
150
151
# File 'lib/tealrb/opcodes.rb', line 148

def args(index = nil)
  @contract.teal << 'args'
  @contract
end

#assert(expr = nil) ⇒ Object



153
154
155
156
# File 'lib/tealrb/opcodes.rb', line 153

def assert(expr = nil)
  @contract.teal << 'assert'
  @contract
end

#asset_holding_get(field, account = nil, asset = nil) ⇒ Object



158
159
160
161
# File 'lib/tealrb/opcodes.rb', line 158

def asset_holding_get(field,  = nil, asset = nil)
  @contract.teal << "asset_holding_get #{field}"
  @contract
end

#asset_params_get(field, asset = nil) ⇒ Object



163
164
165
166
# File 'lib/tealrb/opcodes.rb', line 163

def asset_params_get(field, asset = nil)
  @contract.teal << "asset_params_get #{field}"
  @contract
end

#b(target) ⇒ Object



168
169
170
171
# File 'lib/tealrb/opcodes.rb', line 168

def b(target)
  @contract.teal << "#{__method__} #{target}"
  @contract
end

#balance(account = nil) ⇒ Object



183
184
185
186
# File 'lib/tealrb/opcodes.rb', line 183

def balance( = nil)
  @contract.teal << 'balance'
  @contract
end

#base32(input) ⇒ Object



173
174
175
176
# File 'lib/tealrb/opcodes.rb', line 173

def base32(input)
  @contract.teal << "byte base32(#{input})"
  @contract
end

#base64_decode(encoding, input = nil) ⇒ Object



178
179
180
181
# File 'lib/tealrb/opcodes.rb', line 178

def base64_decode(encoding, input = nil)
  @contract.teal << "base64_decode #{encoding}"
  @contract
end

#big_endian_add(a = nil, b = nil) ⇒ Object



188
189
190
191
# File 'lib/tealrb/opcodes.rb', line 188

def big_endian_add(a = nil, b = nil)
  @contract.teal << 'b+'
  @contract
end

#big_endian_divide(a = nil, b = nil) ⇒ Object



193
194
195
196
# File 'lib/tealrb/opcodes.rb', line 193

def big_endian_divide(a = nil, b = nil)
  @contract.teal << 'b/'
  @contract
end

#big_endian_equal(a = nil, b = nil) ⇒ Object



198
199
200
201
# File 'lib/tealrb/opcodes.rb', line 198

def big_endian_equal(a = nil, b = nil)
  @contract.teal << 'b=='
  @contract
end

#big_endian_less(a = nil, b = nil) ⇒ Object



203
204
205
206
# File 'lib/tealrb/opcodes.rb', line 203

def big_endian_less(a = nil, b = nil)
  @contract.teal << 'b<'
  @contract
end

#big_endian_less_eq(a = nil, b = nil) ⇒ Object



208
209
210
211
# File 'lib/tealrb/opcodes.rb', line 208

def big_endian_less_eq(a = nil, b = nil)
  @contract.teal << 'b<='
  @contract
end

#big_endian_modulo(a = nil, b = nil) ⇒ Object



213
214
215
216
# File 'lib/tealrb/opcodes.rb', line 213

def big_endian_modulo(a = nil, b = nil)
  @contract.teal << 'b%'
  @contract
end

#big_endian_more(a = nil, b = nil) ⇒ Object



218
219
220
221
# File 'lib/tealrb/opcodes.rb', line 218

def big_endian_more(a = nil, b = nil)
  @contract.teal << 'b>'
  @contract
end

#big_endian_more_eq(a = nil, b = nil) ⇒ Object



223
224
225
226
# File 'lib/tealrb/opcodes.rb', line 223

def big_endian_more_eq(a = nil, b = nil)
  @contract.teal << 'b>='
  @contract
end

#big_endian_multiply(a = nil, b = nil) ⇒ Object



228
229
230
231
# File 'lib/tealrb/opcodes.rb', line 228

def big_endian_multiply(a = nil, b = nil)
  @contract.teal << 'b*'
  @contract
end

#big_endian_not_equal(a = nil, b = nil) ⇒ Object



233
234
235
236
# File 'lib/tealrb/opcodes.rb', line 233

def big_endian_not_equal(a = nil, b = nil)
  @contract.teal << 'b!='
  @contract
end

#big_endian_subtract(a = nil, b = nil) ⇒ Object



238
239
240
241
# File 'lib/tealrb/opcodes.rb', line 238

def big_endian_subtract(a = nil, b = nil)
  @contract.teal << 'b-'
  @contract
end

#bitlen(input = nil) ⇒ Object



243
244
245
246
# File 'lib/tealrb/opcodes.rb', line 243

def bitlen(input = nil)
  @contract.teal << 'bitlen'
  @contract
end

#bitwise_and(a = nil, b = nil) ⇒ Object



248
249
250
251
# File 'lib/tealrb/opcodes.rb', line 248

def bitwise_and(a = nil, b = nil)
  @contract.teal << '&'
  @contract
end

#bitwise_byte_invert(a = nil, b = nil) ⇒ Object



253
254
255
256
# File 'lib/tealrb/opcodes.rb', line 253

def bitwise_byte_invert(a = nil, b = nil)
  @contract.teal << 'b~'
  @contract
end

#bitwise_invert(a = nil, b = nil) ⇒ Object



258
259
260
261
# File 'lib/tealrb/opcodes.rb', line 258

def bitwise_invert(a = nil, b = nil)
  @contract.teal << '~'
  @contract
end

#bitwise_or(a = nil, b = nil) ⇒ Object



263
264
265
266
# File 'lib/tealrb/opcodes.rb', line 263

def bitwise_or(a = nil, b = nil)
  @contract.teal << '|'
  @contract
end

#bitwise_xor(a = nil, b = nil) ⇒ Object



268
269
270
271
# File 'lib/tealrb/opcodes.rb', line 268

def bitwise_xor(a = nil, b = nil)
  @contract.teal << '^'
  @contract
end

#bnz(target) ⇒ Object



273
274
275
276
# File 'lib/tealrb/opcodes.rb', line 273

def bnz(target)
  @contract.teal << "#{__method__} #{target}"
  @contract
end

#boolean_and(a = nil, b = nil) ⇒ Object



881
882
883
884
# File 'lib/tealrb/opcodes.rb', line 881

def boolean_and(a = nil, b = nil)
  @contract.teal << '&&'
  @contract
end

#boolean_or(a = nil, b = nil) ⇒ Object



886
887
888
889
# File 'lib/tealrb/opcodes.rb', line 886

def boolean_or(a = nil, b = nil)
  @contract.teal << '||'
  @contract
end

#box_create(name = nil, length = nil) ⇒ Object



278
279
280
281
# File 'lib/tealrb/opcodes.rb', line 278

def box_create(name = nil, length = nil)
  @contract.teal << 'box_create'
  @contract
end

#box_del(name = nil) ⇒ Object



293
294
295
296
# File 'lib/tealrb/opcodes.rb', line 293

def box_del(name = nil)
  @contract.teal << 'box_del'
  @contract
end

#box_extract(name = nil, offset = nil, length = nil) ⇒ Object



283
284
285
286
# File 'lib/tealrb/opcodes.rb', line 283

def box_extract(name = nil, offset = nil, length = nil)
  @contract.teal << 'box_extract'
  @contract
end

#box_get(name = nil) ⇒ Object



303
304
305
306
# File 'lib/tealrb/opcodes.rb', line 303

def box_get(name = nil)
  @contract.teal << 'box_get'
  @contract
end

#box_len(name = nil) ⇒ Object



298
299
300
301
# File 'lib/tealrb/opcodes.rb', line 298

def box_len(name = nil)
  @contract.teal << 'box_len'
  @contract
end

#box_put(name = nil, value = nil) ⇒ Object



308
309
310
311
# File 'lib/tealrb/opcodes.rb', line 308

def box_put(name = nil, value = nil)
  @contract.teal << 'box_put'
  @contract
end

#box_replace(name = nil, offset = nil, value = nil) ⇒ Object



288
289
290
291
# File 'lib/tealrb/opcodes.rb', line 288

def box_replace(name = nil, offset = nil, value = nil)
  @contract.teal << 'box_replace'
  @contract
end

#bsqrt(big_endian_uint = nil) ⇒ Object



313
314
315
316
# File 'lib/tealrb/opcodes.rb', line 313

def bsqrt(big_endian_uint = nil)
  @contract.teal << 'bsqrt'
  @contract
end

#btoi(bytes = nil) ⇒ Object



318
319
320
321
# File 'lib/tealrb/opcodes.rb', line 318

def btoi(bytes = nil)
  @contract.teal << 'btoi'
  @contract
end

#bury(n) ⇒ Object



936
937
938
939
# File 'lib/tealrb/opcodes.rb', line 936

def bury(n)
  @contract.teal << "bury #{n}"
  @contract
end

#byte(string) ⇒ Object



323
324
325
326
# File 'lib/tealrb/opcodes.rb', line 323

def byte(string)
  @contract.teal << "byte \"#{string}\""
  @contract
end

#bytec(index) ⇒ Object



328
329
330
331
# File 'lib/tealrb/opcodes.rb', line 328

def bytec(index)
  @contract.teal << "bytec #{index}"
  @contract
end

#bytec_0Object

rubocop:disable Naming/VariableNumber



333
334
335
336
# File 'lib/tealrb/opcodes.rb', line 333

def bytec_0 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'bytec_0'
  @contract
end

#bytec_1Object

rubocop:disable Naming/VariableNumber



338
339
340
341
# File 'lib/tealrb/opcodes.rb', line 338

def bytec_1 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'bytec_1'
  @contract
end

#bytec_2Object

rubocop:disable Naming/VariableNumber



343
344
345
346
# File 'lib/tealrb/opcodes.rb', line 343

def bytec_2 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'bytec_2'
  @contract
end

#bytec_3Object

rubocop:disable Naming/VariableNumber



348
349
350
351
# File 'lib/tealrb/opcodes.rb', line 348

def bytec_3 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'bytec_3'
  @contract
end

#bytecblock(*bytes) ⇒ Object



353
354
355
356
# File 'lib/tealrb/opcodes.rb', line 353

def bytecblock(*bytes)
  @contract.teal << "bytecblock #{bytes.join(' ')}"
  @contract
end

#bz(target) ⇒ Object



358
359
360
361
# File 'lib/tealrb/opcodes.rb', line 358

def bz(target)
  @contract.teal << "#{__method__} #{target}"
  @contract
end

#bzero(length = nil) ⇒ Object



363
364
365
366
# File 'lib/tealrb/opcodes.rb', line 363

def bzero(length = nil)
  @contract.teal << 'bzero'
  @contract
end

#callsub(name, *_args) ⇒ Object



368
369
370
371
# File 'lib/tealrb/opcodes.rb', line 368

def callsub(name, *_args)
  @contract.teal << "callsub #{name}"
  @contract
end

#concat(a = nil, b = nil) ⇒ Object



373
374
375
376
# File 'lib/tealrb/opcodes.rb', line 373

def concat(a = nil, b = nil)
  @contract.teal << 'concat'
  @contract
end

#cover(count) ⇒ Object



378
379
380
381
# File 'lib/tealrb/opcodes.rb', line 378

def cover(count)
  @contract.teal << "cover #{count}"
  @contract
end

#dig(index) ⇒ Object



383
384
385
386
# File 'lib/tealrb/opcodes.rb', line 383

def dig(index)
  @contract.teal << "dig #{index}"
  @contract
end

#divide(a = nil, b = nil) ⇒ Object



388
389
390
391
# File 'lib/tealrb/opcodes.rb', line 388

def divide(a = nil, b = nil)
  @contract.teal << '/'
  @contract
end

#divmodw(a = nil, b = nil) ⇒ Object



393
394
395
396
# File 'lib/tealrb/opcodes.rb', line 393

def divmodw(a = nil, b = nil)
  @contract.teal << 'divmodw'
  @contract
end

#divw(a = nil, b = nil) ⇒ Object



398
399
400
401
# File 'lib/tealrb/opcodes.rb', line 398

def divw(a = nil, b = nil)
  @contract.teal << 'divw'
  @contract
end

#dup(expr = nil) ⇒ Object



403
404
405
406
# File 'lib/tealrb/opcodes.rb', line 403

def dup(expr = nil)
  @contract.teal << 'dup'
  @contract
end

#dup2(expr_a = nil, expr_b = nil) ⇒ Object



408
409
410
411
# File 'lib/tealrb/opcodes.rb', line 408

def dup2(expr_a = nil, expr_b = nil)
  @contract.teal << 'dup2'
  @contract
end

#dupn(n) ⇒ Object



931
932
933
934
# File 'lib/tealrb/opcodes.rb', line 931

def dupn(n)
  @contract.teal << "dupn #{n}"
  @contract
end

#ecdsa_pk_decompress(index, input = nil) ⇒ Object



413
414
415
416
# File 'lib/tealrb/opcodes.rb', line 413

def ecdsa_pk_decompress(index, input = nil)
  @contract.teal << "ecdsa_pk_decompress #{index}"
  @contract
end

#ecdsa_pk_recover(index, input = nil) ⇒ Object



418
419
420
421
# File 'lib/tealrb/opcodes.rb', line 418

def ecdsa_pk_recover(index, input = nil)
  @contract.teal << "ecdsa_pk_recover #{index}"
  @contract
end

#ecdsa_verify(index, input = nil) ⇒ Object



423
424
425
426
# File 'lib/tealrb/opcodes.rb', line 423

def ecdsa_verify(index, input = nil)
  @contract.teal << "ecdsa_verify #{index}"
  @contract
end

#ed25519verify(input = nil) ⇒ Object



428
429
430
431
# File 'lib/tealrb/opcodes.rb', line 428

def ed25519verify(input = nil)
  @contract.teal << 'ed25519verify'
  @contract
end

#ed25519verify_bare(input = nil) ⇒ Object



433
434
435
436
# File 'lib/tealrb/opcodes.rb', line 433

def ed25519verify_bare(input = nil)
  @contract.teal << 'ed25519verify_bare'
  @contract
end

#equal(a = nil, b = nil) ⇒ Object



438
439
440
441
# File 'lib/tealrb/opcodes.rb', line 438

def equal(a = nil, b = nil)
  @contract.teal << '=='
  @contract
end

#errObject



443
444
445
446
# File 'lib/tealrb/opcodes.rb', line 443

def err
  @contract.teal << 'err'
  @contract
end

#exp(a = nil, b = nil) ⇒ Object



448
449
450
451
# File 'lib/tealrb/opcodes.rb', line 448

def exp(a = nil, b = nil)
  @contract.teal << 'exp'
  @contract
end

#expw(a = nil, b = nil) ⇒ Object



453
454
455
456
# File 'lib/tealrb/opcodes.rb', line 453

def expw(a = nil, b = nil)
  @contract.teal << 'expw'
  @contract
end

#extract(start, length, byte_array = nil) ⇒ Object



458
459
460
461
# File 'lib/tealrb/opcodes.rb', line 458

def extract(start, length, byte_array = nil)
  @contract.teal << "extract #{start} #{length}"
  @contract
end

#extract3(byte_array = nil, start = nil, exclusive_end = nil) ⇒ Object



463
464
465
466
# File 'lib/tealrb/opcodes.rb', line 463

def extract3(byte_array = nil, start = nil, exclusive_end = nil)
  @contract.teal << 'extract3'
  @contract
end

#extract_uint16(byte_array = nil, start = nil) ⇒ Object



468
469
470
471
# File 'lib/tealrb/opcodes.rb', line 468

def extract_uint16(byte_array = nil, start = nil)
  @contract.teal << 'extract_uint16'
  @contract
end

#extract_uint32(byte_array = nil, start = nil) ⇒ Object



473
474
475
476
# File 'lib/tealrb/opcodes.rb', line 473

def extract_uint32(byte_array = nil, start = nil)
  @contract.teal << 'extract_uint32'
  @contract
end

#extract_uint64(byte_array = nil, start = nil) ⇒ Object



478
479
480
481
# File 'lib/tealrb/opcodes.rb', line 478

def extract_uint64(byte_array = nil, start = nil)
  @contract.teal << 'extract_uint64'
  @contract
end

#frame_bury(n) ⇒ Object



911
912
913
914
# File 'lib/tealrb/opcodes.rb', line 911

def frame_bury(n)
  @contract.teal << "frame_bury #{n}"
  @contract
end

#frame_dig(n) ⇒ Object



906
907
908
909
# File 'lib/tealrb/opcodes.rb', line 906

def frame_dig(n)
  @contract.teal << "frame_dig #{n}"
  @contract
end

#gaid(transaction_index) ⇒ Object



483
484
485
486
# File 'lib/tealrb/opcodes.rb', line 483

def gaid(transaction_index)
  @contract.teal << "gaid #{transaction_index}"
  @contract
end

#gaids(transaction = nil) ⇒ Object



488
489
490
491
# File 'lib/tealrb/opcodes.rb', line 488

def gaids(transaction = nil)
  @contract.teal << 'gaids'
  @contract
end

#getbit(input = nil, bit_index = nil) ⇒ Object



493
494
495
496
# File 'lib/tealrb/opcodes.rb', line 493

def getbit(input = nil, bit_index = nil)
  @contract.teal << 'getbit'
  @contract
end

#getbyte(input = nil, byte_index = nil) ⇒ Object



498
499
500
501
# File 'lib/tealrb/opcodes.rb', line 498

def getbyte(input = nil, byte_index = nil)
  @contract.teal << 'getbyte'
  @contract
end

#gitxn(transaction_index, field) ⇒ Object



503
504
505
506
# File 'lib/tealrb/opcodes.rb', line 503

def gitxn(transaction_index, field)
  @contract.teal << "gitxn #{transaction_index} #{field}"
  @contract
end

#gitxna(transaction_index, field, index) ⇒ Object



508
509
510
511
# File 'lib/tealrb/opcodes.rb', line 508

def gitxna(transaction_index, field, index)
  @contract.teal << "gitxna #{transaction_index} #{field} #{index}"
  @contract
end

#gitxnas(transaction_index, field, index = nil) ⇒ Object



513
514
515
516
# File 'lib/tealrb/opcodes.rb', line 513

def gitxnas(transaction_index, field, index = nil)
  @contract.teal << "gitxnas #{transaction_index} #{field}"
  @contract
end

#gload(transaction_index, index) ⇒ Object



518
519
520
521
# File 'lib/tealrb/opcodes.rb', line 518

def gload(transaction_index, index)
  @contract.teal << "gload #{transaction_index} #{index}"
  @contract
end

#gloads(index, transaction_index = nil) ⇒ Object



523
524
525
526
# File 'lib/tealrb/opcodes.rb', line 523

def gloads(index, transaction_index = nil)
  @contract.teal << "gloads #{index}"
  @contract
end

#gloadss(transaction = nil, index = nil) ⇒ Object



528
529
530
531
# File 'lib/tealrb/opcodes.rb', line 528

def gloadss(transaction = nil, index = nil)
  @contract.teal << 'gloadss'
  @contract
end

#global(field) ⇒ Object



533
534
535
536
# File 'lib/tealrb/opcodes.rb', line 533

def global(field)
  @contract.teal << "global #{field}"
  @contract
end

#greater(a = nil, b = nil) ⇒ Object



538
539
540
541
# File 'lib/tealrb/opcodes.rb', line 538

def greater(a = nil, b = nil)
  @contract.teal << '>'
  @contract
end

#greater_eq(a = nil, b = nil) ⇒ Object



543
544
545
546
# File 'lib/tealrb/opcodes.rb', line 543

def greater_eq(a = nil, b = nil)
  @contract.teal << '>='
  @contract
end

#gtxn(index, field) ⇒ Object



548
549
550
551
# File 'lib/tealrb/opcodes.rb', line 548

def gtxn(index, field)
  @contract.teal << "gtxn #{index} #{field}"
  @contract
end

#gtxna(transaction_index, field, index) ⇒ Object



553
554
555
556
# File 'lib/tealrb/opcodes.rb', line 553

def gtxna(transaction_index, field, index)
  @contract.teal << "gtxna #{transaction_index} #{field} #{index}"
  @contract
end

#gtxnas(transaction_index, field, index = nil) ⇒ Object



568
569
570
571
# File 'lib/tealrb/opcodes.rb', line 568

def gtxnas(transaction_index, field, index = nil)
  @contract.teal << "gtxnas #{transaction_index} #{field}"
  @contract
end

#gtxns(field, transaction_index = nil) ⇒ Object



558
559
560
561
# File 'lib/tealrb/opcodes.rb', line 558

def gtxns(field, transaction_index = nil)
  @contract.teal << "gtxns #{field}"
  @contract
end

#gtxnsa(field, index, transaction_index = nil) ⇒ Object



563
564
565
566
# File 'lib/tealrb/opcodes.rb', line 563

def gtxnsa(field, index, transaction_index = nil)
  @contract.teal << "gtxnsa #{field} #{index}"
  @contract
end

#gtxnsas(field, transaction_index = nil, index = nil) ⇒ Object



573
574
575
576
# File 'lib/tealrb/opcodes.rb', line 573

def gtxnsas(field, transaction_index = nil, index = nil)
  @contract.teal << "gtxnsas #{field}"
  @contract
end

#int(integer) ⇒ Object



578
579
580
581
# File 'lib/tealrb/opcodes.rb', line 578

def int(integer)
  @contract.teal << "int #{integer}"
  @contract
end

#intc(index) ⇒ Object



583
584
585
586
# File 'lib/tealrb/opcodes.rb', line 583

def intc(index)
  @contract.teal << "intc #{index}"
  @contract
end

#intc_0Object

rubocop:disable Naming/VariableNumber



588
589
590
591
# File 'lib/tealrb/opcodes.rb', line 588

def intc_0 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'intc_0'
  @contract
end

#intc_1Object

rubocop:disable Naming/VariableNumber



593
594
595
596
# File 'lib/tealrb/opcodes.rb', line 593

def intc_1 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'intc_1'
  @contract
end

#intc_2Object

rubocop:disable Naming/VariableNumber



598
599
600
601
# File 'lib/tealrb/opcodes.rb', line 598

def intc_2 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'intc_2'
  @contract
end

#intc_3Object

rubocop:disable Naming/VariableNumber



603
604
605
606
# File 'lib/tealrb/opcodes.rb', line 603

def intc_3 # rubocop:disable Naming/VariableNumber
  @contract.teal << 'intc_3'
  @contract
end

#intcblock(*ints) ⇒ Object



608
609
610
611
# File 'lib/tealrb/opcodes.rb', line 608

def intcblock(*ints)
  @contract.teal << "intcblock #{ints.join(' ')}"
  @contract
end

#itob(bytes = nil) ⇒ Object



613
614
615
616
# File 'lib/tealrb/opcodes.rb', line 613

def itob(bytes = nil)
  @contract.teal << 'itob'
  @contract
end

#itxn_beginObject



618
619
620
621
# File 'lib/tealrb/opcodes.rb', line 618

def itxn_begin
  @contract.teal << 'itxn_begin'
  @contract
end

#itxn_field(field, value = nil) ⇒ Object



623
624
625
626
# File 'lib/tealrb/opcodes.rb', line 623

def itxn_field(field, value = nil)
  @contract.teal << "itxn_field #{field}"
  @contract
end

#itxn_nextObject



628
629
630
631
# File 'lib/tealrb/opcodes.rb', line 628

def itxn_next
  @contract.teal << 'itxn_next'
  @contract
end

#itxn_submitObject



633
634
635
636
# File 'lib/tealrb/opcodes.rb', line 633

def itxn_submit
  @contract.teal << 'itxn_submit'
  @contract
end

#itxna(field, index) ⇒ Object



638
639
640
641
# File 'lib/tealrb/opcodes.rb', line 638

def itxna(field, index)
  @contract.teal << "itxna #{field} #{index}"
  @contract
end

#itxnas(field, index = nil) ⇒ Object



643
644
645
646
# File 'lib/tealrb/opcodes.rb', line 643

def itxnas(field, index = nil)
  @contract.teal << "itxnas #{field}"
  @contract
end

#json_ref(type, object = nil, key = nil) ⇒ Object



648
649
650
651
# File 'lib/tealrb/opcodes.rb', line 648

def json_ref(type, object = nil, key = nil)
  @contract.teal << "json_ref #{type}"
  @contract
end

#keccak256(input = nil) ⇒ Object



653
654
655
656
# File 'lib/tealrb/opcodes.rb', line 653

def keccak256(input = nil)
  @contract.teal << 'keccak256'
  @contract
end

#label(label_name) ⇒ Object



658
659
660
661
# File 'lib/tealrb/opcodes.rb', line 658

def label(label_name)
  @contract.teal << "#{label_name}:"
  @contract
end

#len(input = nil) ⇒ Object



663
664
665
666
# File 'lib/tealrb/opcodes.rb', line 663

def len(input = nil)
  @contract.teal << 'len'
  @contract
end

#less(a = nil, b = nil) ⇒ Object



668
669
670
671
# File 'lib/tealrb/opcodes.rb', line 668

def less(a = nil, b = nil)
  @contract.teal << '<'
  @contract
end

#less_eq(a = nil, b = nil) ⇒ Object



673
674
675
676
# File 'lib/tealrb/opcodes.rb', line 673

def less_eq(a = nil, b = nil)
  @contract.teal << '<='
  @contract
end

#load(index) ⇒ Object



678
679
680
681
# File 'lib/tealrb/opcodes.rb', line 678

def load(index)
  @contract.teal << "load #{index}"
  @contract
end

#loads(index = nil) ⇒ Object



683
684
685
686
# File 'lib/tealrb/opcodes.rb', line 683

def loads(index = nil)
  @contract.teal << 'loads'
  @contract
end

#log(byte_array = nil) ⇒ Object



688
689
690
691
# File 'lib/tealrb/opcodes.rb', line 688

def log(byte_array = nil)
  @contract.teal << 'log'
  @contract
end

#match(*labels) ⇒ Object



921
922
923
924
# File 'lib/tealrb/opcodes.rb', line 921

def match(*labels)
  @contract.teal << "match #{labels.join(' ')}"
  @contract
end

#method_signature(signature) ⇒ Object



693
694
695
696
# File 'lib/tealrb/opcodes.rb', line 693

def method_signature(signature)
  @contract.teal << %(method "#{signature}")
  @contract
end

#min_balance(account = nil) ⇒ Object



698
699
700
701
# File 'lib/tealrb/opcodes.rb', line 698

def min_balance( = nil)
  @contract.teal << 'min_balance'
  @contract
end

#modulo(a = nil, b = nil) ⇒ Object



703
704
705
706
# File 'lib/tealrb/opcodes.rb', line 703

def modulo(a = nil, b = nil)
  @contract.teal << '%'
  @contract
end

#multiply(a = nil, b = nil) ⇒ Object



708
709
710
711
# File 'lib/tealrb/opcodes.rb', line 708

def multiply(a = nil, b = nil)
  @contract.teal << '*'
  @contract
end

#mulw(a = nil, b = nil) ⇒ Object



713
714
715
716
# File 'lib/tealrb/opcodes.rb', line 713

def mulw(a = nil, b = nil)
  @contract.teal << 'mulw'
  @contract
end

#not_equal(a = nil, b = nil) ⇒ Object



723
724
725
726
# File 'lib/tealrb/opcodes.rb', line 723

def not_equal(a = nil, b = nil)
  @contract.teal << '!='
  @contract
end

#padded_bitwise_and(a = nil, b = nil) ⇒ Object



728
729
730
731
# File 'lib/tealrb/opcodes.rb', line 728

def padded_bitwise_and(a = nil, b = nil)
  @contract.teal << 'b&'
  @contract
end

#padded_bitwise_or(a = nil, b = nil) ⇒ Object



733
734
735
736
# File 'lib/tealrb/opcodes.rb', line 733

def padded_bitwise_or(a = nil, b = nil)
  @contract.teal << 'b|'
  @contract
end

#padded_bitwise_xor(a = nil, b = nil) ⇒ Object



738
739
740
741
# File 'lib/tealrb/opcodes.rb', line 738

def padded_bitwise_xor(a = nil, b = nil)
  @contract.teal << 'b^'
  @contract
end

#pop(expr = nil) ⇒ Object



743
744
745
746
# File 'lib/tealrb/opcodes.rb', line 743

def pop(expr = nil)
  @contract.teal << 'pop'
  @contract
end

#popn(n) ⇒ Object



926
927
928
929
# File 'lib/tealrb/opcodes.rb', line 926

def popn(n)
  @contract.teal << "popn #{n}"
  @contract
end

#proto(num_args, num_return) ⇒ Object



901
902
903
904
# File 'lib/tealrb/opcodes.rb', line 901

def proto(num_args, num_return)
  @contract.teal << "proto #{num_args} #{num_return}"
  @contract
end

#pushbytes(string) ⇒ Object



748
749
750
751
# File 'lib/tealrb/opcodes.rb', line 748

def pushbytes(string)
  @contract.teal << "pushbytes \"#{string}\""
  @contract
end

#pushbytess(*bytes) ⇒ Object



896
897
898
899
# File 'lib/tealrb/opcodes.rb', line 896

def pushbytess(*bytes)
  @contract.teal << "pushbytes #{bytes.map { "\"#{_1}\"" }.join(' ')}"
  @contract
end

#pushint(integer) ⇒ Object



753
754
755
756
# File 'lib/tealrb/opcodes.rb', line 753

def pushint(integer)
  @contract.teal << "pushint #{integer}"
  @contract
end

#pushints(*ints) ⇒ Object



891
892
893
894
# File 'lib/tealrb/opcodes.rb', line 891

def pushints(*ints)
  @contract.teal << "pushints #{ints.join(' ')}"
  @contract
end

#replace(a = nil, b = nil, c = nil) ⇒ Object



758
759
760
761
# File 'lib/tealrb/opcodes.rb', line 758

def replace(a = nil, b = nil, c = nil)
  @contract.teal << 'replace'
  @contract
end

#replace2(start, a = nil, b = nil) ⇒ Object



763
764
765
766
# File 'lib/tealrb/opcodes.rb', line 763

def replace2(start, a = nil, b = nil)
  @contract.teal << "replace2 #{start}"
  @contract
end

#retsubObject



768
769
770
771
# File 'lib/tealrb/opcodes.rb', line 768

def retsub
  @contract.teal << 'retsub'
  @contract
end

#select(expr_a = nil, expr_b = nil, expr_c = nil) ⇒ Object



773
774
775
776
# File 'lib/tealrb/opcodes.rb', line 773

def select(expr_a = nil, expr_b = nil, expr_c = nil)
  @contract.teal << 'select'
  @contract
end

#setbit(input = nil, bit_index = nil, value = nil) ⇒ Object



778
779
780
781
# File 'lib/tealrb/opcodes.rb', line 778

def setbit(input = nil, bit_index = nil, value = nil)
  @contract.teal << 'setbit'
  @contract
end

#setbyte(byte_array = nil, byte_index = nil, value = nil) ⇒ Object



783
784
785
786
# File 'lib/tealrb/opcodes.rb', line 783

def setbyte(byte_array = nil, byte_index = nil, value = nil)
  @contract.teal << 'setbyte'
  @contract
end

#sha256(input = nil) ⇒ Object



788
789
790
791
# File 'lib/tealrb/opcodes.rb', line 788

def sha256(input = nil)
  @contract.teal << 'sha256'
  @contract
end

#sha3_256(input = nil) ⇒ Object

rubocop:disable Naming/VariableNumber



794
795
796
797
# File 'lib/tealrb/opcodes.rb', line 794

def sha3_256(input = nil)
  @contract.teal << 'sha3_256'
  @contract
end

#sha512_256(input = nil) ⇒ Object



799
800
801
802
# File 'lib/tealrb/opcodes.rb', line 799

def sha512_256(input = nil)
  @contract.teal << 'sha512_256'
  @contract
end

#shl(a = nil, b = nil) ⇒ Object

rubocop:enable Naming/VariableNumber



806
807
808
809
# File 'lib/tealrb/opcodes.rb', line 806

def shl(a = nil, b = nil)
  @contract.teal << 'shl'
  @contract
end

#shr(a = nil, b = nil) ⇒ Object



811
812
813
814
# File 'lib/tealrb/opcodes.rb', line 811

def shr(a = nil, b = nil)
  @contract.teal << 'shr'
  @contract
end

#sqrt(integer = nil) ⇒ Object



816
817
818
819
# File 'lib/tealrb/opcodes.rb', line 816

def sqrt(integer = nil)
  @contract.teal << 'sqrt'
  @contract
end

#store(index, value = nil) ⇒ Object



821
822
823
824
# File 'lib/tealrb/opcodes.rb', line 821

def store(index, value = nil)
  @contract.teal << "store #{index}"
  @contract
end

#stores(index = nil, value = nil) ⇒ Object



826
827
828
829
# File 'lib/tealrb/opcodes.rb', line 826

def stores(index = nil, value = nil)
  @contract.teal << 'stores'
  @contract
end

#substring(start, exclusive_end, byte_array = nil) ⇒ Object



831
832
833
834
# File 'lib/tealrb/opcodes.rb', line 831

def substring(start, exclusive_end, byte_array = nil)
  @contract.teal << "substring #{start} #{exclusive_end}"
  @contract
end

#substring3(byte_array = nil, start = nil, exclusive_end = nil) ⇒ Object



836
837
838
839
# File 'lib/tealrb/opcodes.rb', line 836

def substring3(byte_array = nil, start = nil, exclusive_end = nil)
  @contract.teal << 'substring3'
  @contract
end

#subtract(a = nil, b = nil) ⇒ Object



841
842
843
844
# File 'lib/tealrb/opcodes.rb', line 841

def subtract(a = nil, b = nil)
  @contract.teal << '-'
  @contract
end

#swap(expr_a = nil, expr_b = nil) ⇒ Object



846
847
848
849
# File 'lib/tealrb/opcodes.rb', line 846

def swap(expr_a = nil, expr_b = nil)
  @contract.teal << 'swap'
  @contract
end

#switch(*labels) ⇒ Object



916
917
918
919
# File 'lib/tealrb/opcodes.rb', line 916

def switch(*labels)
  @contract.teal << "switch #{labels.join(' ')}"
  @contract
end

#teal_return(expr = nil) ⇒ Object



851
852
853
854
# File 'lib/tealrb/opcodes.rb', line 851

def teal_return(expr = nil)
  @contract.teal << 'return'
  @contract
end

#txn(field) ⇒ Object



856
857
858
859
# File 'lib/tealrb/opcodes.rb', line 856

def txn(field)
  @contract.teal << "txn #{field}"
  @contract
end

#txna(field, index) ⇒ Object



861
862
863
864
# File 'lib/tealrb/opcodes.rb', line 861

def txna(field, index)
  @contract.teal << "txna #{field} #{index}"
  @contract
end

#txnas(field, index = nil) ⇒ Object



866
867
868
869
# File 'lib/tealrb/opcodes.rb', line 866

def txnas(field, index = nil)
  @contract.teal << "txnas #{field}"
  @contract
end

#uncover(count) ⇒ Object



871
872
873
874
# File 'lib/tealrb/opcodes.rb', line 871

def uncover(count)
  @contract.teal << "uncover #{count}"
  @contract
end

#vrf_verify(standard, message = nil, proof = nil, public_key = nil) ⇒ Object



876
877
878
879
# File 'lib/tealrb/opcodes.rb', line 876

def vrf_verify(standard, message = nil, proof = nil, public_key = nil)
  @contract.teal << "vrf_verify #{standard}"
  @contract
end

#zero?(expr = nil) ⇒ Boolean

Returns:

  • (Boolean)


718
719
720
721
# File 'lib/tealrb/opcodes.rb', line 718

def zero?(expr = nil)
  @contract.teal << '!'
  @contract
end