@@ -105,6 +105,21 @@ defmodule AeMdw.AexnContractsTest do
105
105
:RETURN
106
106
]
107
107
} } ,
108
+ << 32 , 4 , 164 , 216 >> =>
109
+ { [ :private ] , { [ list: :string ] , :string } ,
110
+ % {
111
+ 0 => [
112
+ { :IS_NIL , { :stack , 0 } , { :arg , 0 } } ,
113
+ { :JUMPIF , { :stack , 0 } , { :immediate , 2 } }
114
+ ] ,
115
+ 1 => [
116
+ { :TL , { :stack , 0 } , { :arg , 0 } } ,
117
+ { :HD , { :stack , 0 } , { :arg , 0 } } ,
118
+ { :PUSH , { :immediate , { :tuple , { << 93 , 142 , 50 , 216 >> , { :tuple , { } } } } } } ,
119
+ { :CALL_T , { :immediate , << 94 , 119 , 225 , 37 >> } }
120
+ ] ,
121
+ 2 => [ RETURNR: { :immediate , "" } ]
122
+ } } ,
108
123
<< 39 , 89 , 45 , 234 >> =>
109
124
{ [ ] , { [ :integer ] , { :variant , [ tuple: [ ] , tuple: [ :address ] ] } } ,
110
125
% {
@@ -125,8 +140,8 @@ defmodule AeMdw.AexnContractsTest do
125
140
{ [
126
141
:string ,
127
142
:string ,
128
- { :variant , [ tuple: [ ] , tuple: [ ] , tuple: [ ] , tuple: [ ] ] } ,
129
- { :variant , [ tuple: [ ] , tuple: [ :string ] ] }
143
+ { :variant , [ tuple: [ ] , tuple: [ :string ] ] } ,
144
+ { :variant , [ tuple: [ ] , tuple: [ ] , tuple: [ ] , tuple: [ ] ] }
130
145
] , { :tuple , [ ] } } ,
131
146
% {
132
147
0 => [
@@ -158,8 +173,8 @@ defmodule AeMdw.AexnContractsTest do
158
173
{ :STORE , { :var , - 10 } , { :immediate , % { } } } ,
159
174
{ :STORE , { :var , - 2 } , { :arg , 0 } } ,
160
175
{ :STORE , { :var , - 3 } , { :arg , 1 } } ,
161
- { :STORE , { :var , - 4 } , { :arg , 3 } } ,
162
- { :STORE , { :var , - 5 } , { :arg , 2 } } ,
176
+ { :STORE , { :var , - 4 } , { :arg , 2 } } ,
177
+ { :STORE , { :var , - 5 } , { :arg , 3 } } ,
163
178
{ :STORE , { :var , - 11 } , { :immediate , false } } ,
164
179
{ :RETURNR , { :immediate , { :tuple , { } } } }
165
180
]
@@ -206,9 +221,36 @@ defmodule AeMdw.AexnContractsTest do
206
221
:RETURN
207
222
]
208
223
} } ,
224
+ << 93 , 142 , 50 , 216 >> =>
225
+ { [ :private ] , { [ :any , :any , :any ] , :any } ,
226
+ % { 0 => [ { :STR_JOIN , { :stack , 0 } , { :arg , 1 } , { :arg , 2 } } , :RETURN ] } } ,
227
+ << 94 , 119 , 225 , 37 >> =>
228
+ { [ :private ] , { [ tuple: [ :string , :any ] , tvar: 0 , list: { :tvar , 1 } ] , { :tvar , 0 } } ,
229
+ % {
230
+ 0 => [
231
+ { :IS_NIL , { :stack , 0 } , { :arg , 2 } } ,
232
+ { :JUMPIF , { :stack , 0 } , { :immediate , 3 } }
233
+ ] ,
234
+ 1 => [
235
+ { :HD , { :stack , 0 } , { :arg , 2 } } ,
236
+ { :PUSH , { :arg , 1 } } ,
237
+ { :ELEMENT , { :stack , 0 } , { :immediate , 1 } , { :arg , 0 } } ,
238
+ { :ELEMENT , { :stack , 0 } , { :immediate , 0 } , { :arg , 0 } } ,
239
+ { :CALL , { :stack , 0 } }
240
+ ] ,
241
+ 2 => [
242
+ { :POP , { :arg , 1 } } ,
243
+ { :TL , { :arg , 2 } , { :arg , 2 } } ,
244
+ { :JUMP , { :immediate , 0 } }
245
+ ] ,
246
+ 3 => [ RETURNR: { :arg , 1 } ]
247
+ } } ,
209
248
<< 99 , 80 , 161 , 92 >> =>
210
249
{ [ ] ,
211
- { [ :address , { :variant , [ tuple: [ :string ] , tuple: [ :string , :string ] ] } ] , { :tuple , [ ] } } ,
250
+ { [
251
+ :address ,
252
+ { :variant , [ tuple: [ :string ] , tuple: [ { :map , :string , :string } ] ] }
253
+ ] , { :tuple , [ ] } } ,
212
254
% {
213
255
0 => [
214
256
{ :EQ , { :stack , 0 } , { :var , - 11 } , { :immediate , false } } ,
@@ -253,15 +295,60 @@ defmodule AeMdw.AexnContractsTest do
253
295
{ :variant ,
254
296
[
255
297
tuple: [ ] ,
256
- tuple: [ variant: [ tuple: [ :string ] , tuple: [ : string, :string ] ] ]
298
+ tuple: [ variant: [ tuple: [ :string ] , tuple: [ { :map , : string, :string } ] ] ]
257
299
] } } ,
258
300
% {
259
301
0 => [
260
- { :INT_TO_STR , { :stack , 0 } , { :arg , 0 } } ,
261
- { :PUSH , { :immediate , "some-url" } } ,
262
- { :VARIANT , { :stack , 0 } , { :immediate , [ 1 , 2 ] } , { :immediate , 1 } , { :immediate , 2 } } ,
302
+ { :STORE , { :var , 0 } , { :var , - 10 } } ,
303
+ { :MAP_MEMBER , { :stack , 0 } , { :var , - 10 } , { :arg , 0 } } ,
304
+ { :JUMPIF , { :stack , 0 } , { :immediate , 11 } }
305
+ ] ,
306
+ 1 => [
307
+ { :PUSH , { :immediate , { :variant , [ 0 , 1 ] , 0 , { } } } } ,
308
+ { :POP , { :var , 2 } } ,
309
+ { :SWITCH_V2 , { :var , 2 } , { :immediate , 2 } , { :immediate , 3 } }
310
+ ] ,
311
+ 2 => [ RETURNR: { :immediate , { :variant , [ 0 , 1 ] , 0 , { } } } ] ,
312
+ 3 => [
313
+ { :VARIANT_ELEMENT , { :var , 3 } , { :var , 2 } , { :immediate , 0 } } ,
314
+ { :EQ , { :stack , 0 } , { :var , - 5 } , { :immediate , { :variant , [ 0 , 0 , 0 , 0 ] , 0 , { } } } } ,
315
+ { :JUMPIF , { :stack , 0 } , { :immediate , 5 } }
316
+ ] ,
317
+ 4 => [
318
+ { :PUSH , { :var , 3 } } ,
319
+ { :VARIANT , { :stack , 0 } , { :immediate , [ 0 , 1 ] } , { :immediate , 1 } , { :immediate , 1 } } ,
320
+ :RETURN
321
+ ] ,
322
+ 5 => [
323
+ { :STORE , { :var , 6 } , { :var , - 4 } } ,
324
+ { :SWITCH_V2 , { :var , - 4 } , { :immediate , 6 } , { :immediate , 7 } }
325
+ ] ,
326
+ 6 => [
327
+ { :PUSH , { :var , 3 } } ,
263
328
{ :VARIANT , { :stack , 0 } , { :immediate , [ 0 , 1 ] } , { :immediate , 1 } , { :immediate , 1 } } ,
264
329
:RETURN
330
+ ] ,
331
+ 7 => [
332
+ { :VARIANT_ELEMENT , { :var , 7 } , { :var , 6 } , { :immediate , 0 } } ,
333
+ { :SWITCH_V2 , { :var , 3 } , { :immediate , 9 } , { :immediate , 8 } }
334
+ ] ,
335
+ 8 => [ ABORT: { :immediate , "Incomplete patterns" } ] ,
336
+ 9 => [
337
+ { :VARIANT_ELEMENT , { :var , 8 } , { :var , 3 } , { :immediate , 0 } } ,
338
+ { :CONS , { :stack , 0 } , { :var , 8 } , { :immediate , [ ] } } ,
339
+ { :CONS , { :stack , 0 } , { :var , 7 } , { :stack , 0 } } ,
340
+ { :CALL , { :immediate , << 32 , 4 , 164 , 216 >> } }
341
+ ] ,
342
+ 10 => [
343
+ { :VARIANT , { :stack , 0 } , { :immediate , [ 1 , 1 ] } , { :immediate , 0 } , { :immediate , 1 } } ,
344
+ { :VARIANT , { :stack , 0 } , { :immediate , [ 0 , 1 ] } , { :immediate , 1 } , { :immediate , 1 } } ,
345
+ :RETURN
346
+ ] ,
347
+ 11 => [
348
+ { :MAP_LOOKUP , { :stack , 0 } , { :var , 0 } , { :arg , 0 } } ,
349
+ { :VARIANT , { :stack , 0 } , { :immediate , [ 0 , 1 ] } , { :immediate , 1 } , { :immediate , 1 } } ,
350
+ { :POP , { :var , 2 } } ,
351
+ { :SWITCH_V2 , { :var , 2 } , { :immediate , 2 } , { :immediate , 3 } }
265
352
]
266
353
} } ,
267
354
<< 101 , 165 , 224 , 15 >> =>
@@ -533,9 +620,7 @@ defmodule AeMdw.AexnContractsTest do
533
620
] ,
534
621
6 => [ JUMP: { :immediate , 7 } ] ,
535
622
7 => [ { :JUMPIF , { :stack , 0 } , { :immediate , 10 } } ] ,
536
- 8 => [
537
- ABORT: { :immediate , "ONLY_OWNER_APPROVED_OR_OPERATOR_CALL_ALLOWED" }
538
- ] ,
623
+ 8 => [ ABORT: { :immediate , "ONLY_OWNER_APPROVED_OR_OPERATOR_CALL_ALLOWED" } ] ,
539
624
9 => [ PUSH: { :immediate , true } , JUMP: { :immediate , 7 } ] ,
540
625
10 => [ RETURNR: { :immediate , { :tuple , { } } } ] ,
541
626
11 => [ PUSH: { :immediate , true } , JUMP: { :immediate , 7 } ] ,
@@ -562,9 +647,12 @@ defmodule AeMdw.AexnContractsTest do
562
647
<< 15 , 27 , 134 , 79 >> => ".BaseNFT.require_contract_owner" ,
563
648
<< 15 , 89 , 34 , 233 >> => "is_approved_for_all" ,
564
649
<< 20 , 55 , 180 , 56 >> => "meta_info" ,
650
+ << 32 , 4 , 164 , 216 >> => ".String.concats" ,
565
651
<< 39 , 89 , 45 , 234 >> => "get_approved" ,
566
652
<< 68 , 214 , 68 , 31 >> => "init" ,
567
653
<< 80 , 90 , 158 , 181 >> => ".BaseNFT.invoke_nft_receiver" ,
654
+ << 93 , 142 , 50 , 216 >> => ".^1697" ,
655
+ << 94 , 119 , 225 , 37 >> => ".List.foldl" ,
568
656
<< 99 , 80 , 161 , 92 >> => "define_token" ,
569
657
<< 99 , 148 , 233 , 122 >> => "metadata" ,
570
658
<< 101 , 165 , 224 , 15 >> => "Chain.event" ,
0 commit comments