BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • ArtCollectingSpace
FA2Ledger
operations (1.09K)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
471
 
1
parameter (or
2
            (or
3
              (or
4
                (pair %balance_of
5
                  (list %requests (pair (address %owner) (nat %token_id)))
6
                  (contract %callback (list (pair
7
                                            (pair %request (address %owner)
8
                                                           (nat %token_id))
9
                                            (nat %balance)))))
10
                (pair %mint (pair (address %address) (nat %amount))
11
                            (pair (map %metadata string bytes) (nat %token_id))))
12
              (or (address %set_frontend)
13
                  (list %transfer (pair (address %from_)
14
                                       (list %txs (pair (address %to_)
15
                                                       (pair (nat %token_id)
16
                                                             (nat %amount))))))))
17
            (list %update_operators (or
18
                                     (pair %add_operator (address %owner)
19
                                                         (pair (address %operator)
20
                                                               (nat %token_id)))
21
                                     (pair %remove_operator (address %owner)
22
                                                            (pair (address %operator)
23
                                                                  (nat %token_id))))));
24
storage (pair
25
          (pair (pair (address %admin) (address %frontend))
26
                (pair (big_map %ledger (pair address nat) nat)
27
                      (big_map %metadata string bytes)))
28
          (pair
29
            (pair (big_map %operators (pair (pair address address) nat) unit)
30
                  (big_map %token_metadata nat
31
                                           (pair (nat %token_id)
32
                                                 (map %token_info string bytes))))
33
            (big_map %total_supply nat nat)));
34
code { NIL operation ;
35
       SWAP ;
36
       { { DUP ; CAR ; DIP { CDR } } } ;
37
       IF_LEFT
38
         { IF_LEFT
39
             { IF_LEFT
40
                 { DIG 2 ;
41
                   DROP ;
42
                   DUP ;
43
                   CAR ;
44
                   MAP { DUP ;
45
                         { DIP 3 { DUP } ; DIG 4 } ;
46
                         { DIP 2 { DUP } ; DIG 3 } ;
47
                         CDR ;
48
                         DIG 3 ;
49
                         CAR ;
50
                         DIG 2 ;
51
                         CAR ;
52
                         CDR ;
53
                         CAR ;
54
                         DUG 2 ;
55
                         PAIR ;
56
                         GET ;
57
                         IF_NONE { PUSH nat 0 } {} ;
58
                         SWAP ;
59
                         PAIR } ;
60
                   DIG 2 ;
61
                   NIL operation ;
62
                   DIG 3 ;
63
                   CDR ;
64
                   PUSH mutez 0 ;
65
                   DIG 4 ;
66
                   TRANSFER_TOKENS ;
67
                   CONS ;
68
                   PAIR }
69
                 { SWAP ;
70
                   DUP ;
71
                   DUG 2 ;
72
                   CAR ;
73
                   CAR ;
74
                   CDR ;
75
                   SENDER ;
76
                   COMPARE ;
77
                   EQ ;
78
                   IF {} { PUSH string "failed assertion" ; FAILWITH } ;
79
                   SWAP ;
80
                   DUP ;
81
                   DUG 2 ;
82
                   CDR ;
83
                   CAR ;
84
                   CDR ;
85
                   SWAP ;
86
                   DUP ;
87
                   DUG 2 ;
88
                   CDR ;
89
                   CDR ;
90
                   MEM ;
91
                   IF { PUSH string "TOKEN_ID_EXISTS" ; FAILWITH } {} ;
92
                   PUSH nat 0 ;
93
                   SWAP ;
94
                   DUP ;
95
                   DUG 2 ;
96
                   CAR ;
97
                   CDR ;
98
                   COMPARE ;
99
                   EQ ;
100
                   IF { PUSH string "ZERO AMOUNT" ; FAILWITH } {} ;
101
                   SWAP ;
102
                   DUP ;
103
                   DUG 2 ;
104
                   CDR ;
105
                   CDR ;
106
                   { DIP 2 { DUP } ; DIG 3 } ;
107
                   CDR ;
108
                   CAR ;
109
                   CDR ;
110
                   { DIP 2 { DUP } ; DIG 3 } ;
111
                   CDR ;
112
                   CDR ;
113
                   { DIP 3 { DUP } ; DIG 4 } ;
114
                   CDR ;
115
                   CAR ;
116
                   SWAP ;
117
                   PAIR ;
118
                   { DIP 3 { DUP } ; DIG 4 } ;
119
                   CDR ;
120
                   CDR ;
121
                   SWAP ;
122
                   SOME ;
123
                   SWAP ;
124
                   UPDATE ;
125
                   { DIP 3 { DUP } ; DIG 4 } ;
126
                   CDR ;
127
                   CAR ;
128
                   CAR ;
129
                   PAIR ;
130
                   PAIR ;
131
                   DIG 2 ;
132
                   CAR ;
133
                   PAIR ;
134
                   DUP ;
135
                   CDR ;
136
                   SWAP ;
137
                   DUP ;
138
                   DUG 2 ;
139
                   CAR ;
140
                   CDR ;
141
                   CDR ;
142
                   { DIP 2 { DUP } ; DIG 3 } ;
143
                   CAR ;
144
                   CDR ;
145
                   CAR ;
146
                   { DIP 4 { DUP } ; DIG 5 } ;
147
                   CAR ;
148
                   CDR ;
149
                   { DIP 5 { DUP } ; DIG 6 } ;
150
                   CDR ;
151
                   CDR ;
152
                   { DIP 6 { DUP } ; DIG 7 } ;
153
                   CAR ;
154
                   CAR ;
155
                   PAIR ;
156
                   SWAP ;
157
                   SOME ;
158
                   SWAP ;
159
                   UPDATE ;
160
                   PAIR ;
161
                   DIG 2 ;
162
                   CAR ;
163
                   CAR ;
164
                   PAIR ;
165
                   PAIR ;
166
                   DUP ;
167
                   CDR ;
168
                   CDR ;
169
                   { DIP 2 { DUP } ; DIG 3 } ;
170
                   CAR ;
171
                   CDR ;
172
                   DIG 3 ;
173
                   CDR ;
174
                   CDR ;
175
                   SWAP ;
176
                   SOME ;
177
                   SWAP ;
178
                   UPDATE ;
179
                   SWAP ;
180
                   DUP ;
181
                   DUG 2 ;
182
                   CDR ;
183
                   CAR ;
184
                   PAIR ;
185
                   SWAP ;
186
                   CAR ;
187
                   PAIR ;
188
                   SWAP ;
189
                   PAIR } }
190
             { IF_LEFT
191
                 { SWAP ;
192
                   DUP ;
193
                   DUG 2 ;
194
                   CAR ;
195
                   CAR ;
196
                   CAR ;
197
                   SENDER ;
198
                   COMPARE ;
199
                   EQ ;
200
                   IF {} { PUSH string "failed assertion" ; FAILWITH } ;
201
                   SWAP ;
202
                   DUP ;
203
                   DUG 2 ;
204
                   CDR ;
205
                   { DIP 2 { DUP } ; DIG 3 } ;
206
                   CAR ;
207
                   CDR ;
208
                   DIG 2 ;
209
                   DIG 3 ;
210
                   CAR ;
211
                   CAR ;
212
                   CAR ;
213
                   PAIR ;
214
                   PAIR ;
215
                   PAIR ;
216
                   SWAP ;
217
                   PAIR }
218
                 { ITER { DUP ;
219
                          DUG 2 ;
220
                          CAR ;
221
                          SWAP ;
222
                          DIG 2 ;
223
                          CDR ;
224
                          ITER { SWAP ;
225
                                 SENDER ;
226
                                 { DIP 3 { DUP } ; DIG 4 } ;
227
                                 COMPARE ;
228
                                 NEQ ;
229
                                 IF
230
                                   { DUP ;
231
                                     { DIP 2 { DUP } ; DIG 3 } ;
232
                                     GET 3 ;
233
                                     { DIP 4 { DUP } ; DIG 5 } ;
234
                                     DIG 2 ;
235
                                     CDR ;
236
                                     CAR ;
237
                                     CAR ;
238
                                     DIG 2 ;
239
                                     SENDER ;
240
                                     DIG 3 ;
241
                                     PAIR ;
242
                                     PAIR ;
243
                                     GET ;
244
                                     IF_NONE
245
                                       { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH }
246
                                       {} }
247
                                   { PUSH unit Unit } ;
248
                                 DROP ;
249
                                 PUSH nat 0 ;
250
                                 { DIP 2 { DUP } ; DIG 3 } ;
251
                                 GET 4 ;
252
                                 COMPARE ;
253
                                 EQ ;
254
                                 { DIP 2 { DUP } ; DIG 3 } ;
255
                                 CAR ;
256
                                 { DIP 4 { DUP } ; DIG 5 } ;
257
                                 COMPARE ;
258
                                 EQ ;
259
                                 OR ;
260
                                 IF
261
                                   { SWAP ; DROP }
262
                                   { DUP ;
263
                                     { DIP 2 { DUP } ; DIG 3 } ;
264
                                     GET 3 ;
265
                                     { DIP 4 { DUP } ; DIG 5 } ;
266
                                     DIG 2 ;
267
                                     CAR ;
268
                                     CDR ;
269
                                     CAR ;
270
                                     DUG 2 ;
271
                                     PAIR ;
272
                                     GET ;
273
                                     IF_NONE { PUSH nat 0 } {} ;
274
                                     { DIP 2 { DUP } ; DIG 3 } ;
275
                                     GET 4 ;
276
                                     SWAP ;
277
                                     DUP ;
278
                                     DUG 2 ;
279
                                     COMPARE ;
280
                                     LT ;
281
                                     IF
282
                                       { PUSH string "FA2_INSUFFICIENT_BALANCE" ;
283
                                         FAILWITH }
284
                                       {} ;
285
                                     { DIP 2 { DUP } ; DIG 3 } ;
286
                                     GET 4 ;
287
                                     SWAP ;
288
                                     DUP ;
289
                                     DUG 2 ;
290
                                     COMPARE ;
291
                                     EQ ;
292
                                     IF
293
                                       { DROP ;
294
                                         DUP ;
295
                                         CDR ;
296
                                         SWAP ;
297
                                         DUP ;
298
                                         DUG 2 ;
299
                                         CAR ;
300
                                         CDR ;
301
                                         CDR ;
302
                                         { DIP 2 { DUP } ; DIG 3 } ;
303
                                         CAR ;
304
                                         CDR ;
305
                                         CAR ;
306
                                         { DIP 4 { DUP } ; DIG 5 } ;
307
                                         GET 3 ;
308
                                         { DIP 6 { DUP } ; DIG 7 } ;
309
                                         PAIR ;
310
                                         NONE nat ;
311
                                         SWAP ;
312
                                         UPDATE ;
313
                                         PAIR ;
314
                                         DIG 2 ;
315
                                         CAR ;
316
                                         CAR ;
317
                                         PAIR ;
318
                                         PAIR }
319
                                       { SWAP ;
320
                                         DUP ;
321
                                         DUG 2 ;
322
                                         CDR ;
323
                                         { DIP 2 { DUP } ; DIG 3 } ;
324
                                         CAR ;
325
                                         CDR ;
326
                                         CDR ;
327
                                         { DIP 3 { DUP } ; DIG 4 } ;
328
                                         CAR ;
329
                                         CDR ;
330
                                         CAR ;
331
                                         { DIP 5 { DUP } ; DIG 6 } ;
332
                                         GET 4 ;
333
                                         DIG 4 ;
334
                                         SUB ;
335
                                         ABS ;
336
                                         { DIP 5 { DUP } ; DIG 6 } ;
337
                                         GET 3 ;
338
                                         { DIP 7 { DUP } ; DIG 8 } ;
339
                                         PAIR ;
340
                                         SWAP ;
341
                                         SOME ;
342
                                         SWAP ;
343
                                         UPDATE ;
344
                                         PAIR ;
345
                                         DIG 2 ;
346
                                         CAR ;
347
                                         CAR ;
348
                                         PAIR ;
349
                                         PAIR } ;
350
                                     DUP ;
351
                                     CDR ;
352
                                     SWAP ;
353
                                     DUP ;
354
                                     DUG 2 ;
355
                                     CAR ;
356
                                     CDR ;
357
                                     CDR ;
358
                                     { DIP 2 { DUP } ; DIG 3 } ;
359
                                     CAR ;
360
                                     CDR ;
361
                                     CAR ;
362
                                     { DIP 4 { DUP } ; DIG 5 } ;
363
                                     GET 4 ;
364
                                     { DIP 4 { DUP } ; DIG 5 } ;
365
                                     { DIP 6 { DUP } ; DIG 7 } ;
366
                                     GET 3 ;
367
                                     { DIP 7 { DUP } ; DIG 8 } ;
368
                                     CAR ;
369
                                     DIG 2 ;
370
                                     CAR ;
371
                                     CDR ;
372
                                     CAR ;
373
                                     DUG 2 ;
374
                                     PAIR ;
375
                                     GET ;
376
                                     IF_NONE { PUSH nat 0 } {} ;
377
                                     ADD ;
378
                                     { DIP 5 { DUP } ; DIG 6 } ;
379
                                     GET 3 ;
380
                                     DIG 6 ;
381
                                     CAR ;
382
                                     PAIR ;
383
                                     SWAP ;
384
                                     SOME ;
385
                                     SWAP ;
386
                                     UPDATE ;
387
                                     PAIR ;
388
                                     DIG 2 ;
389
                                     CAR ;
390
                                     CAR ;
391
                                     PAIR ;
392
                                     PAIR } } ;
393
                          SWAP ;
394
                          DROP } ;
395
                   SWAP ;
396
                   PAIR } } }
397
         { ITER { IF_LEFT
398
                    { DUP ;
399
                      CAR ;
400
                      SENDER ;
401
                      COMPARE ;
402
                      NEQ ;
403
                      IF { PUSH string "FA2_NOT_OWNER" ; FAILWITH } {} ;
404
                      SWAP ;
405
                      DUP ;
406
                      DUG 2 ;
407
                      CDR ;
408
                      CDR ;
409
                      { DIP 2 { DUP } ; DIG 3 } ;
410
                      CDR ;
411
                      CAR ;
412
                      CDR ;
413
                      { DIP 3 { DUP } ; DIG 4 } ;
414
                      CDR ;
415
                      CAR ;
416
                      CAR ;
417
                      UNIT ;
418
                      { DIP 4 { DUP } ; DIG 5 } ;
419
                      GET 4 ;
420
                      { DIP 5 { DUP } ; DIG 6 } ;
421
                      GET 3 ;
422
                      DIG 6 ;
423
                      CAR ;
424
                      PAIR ;
425
                      PAIR ;
426
                      SWAP ;
427
                      SOME ;
428
                      SWAP ;
429
                      UPDATE ;
430
                      PAIR ;
431
                      PAIR ;
432
                      SWAP ;
433
                      CAR ;
434
                      PAIR }
435
                    { DUP ;
436
                      CAR ;
437
                      SENDER ;
438
                      COMPARE ;
439
                      NEQ ;
440
                      IF { PUSH string "FA2_NOT_OWNER" ; FAILWITH } {} ;
441
                      SWAP ;
442
                      DUP ;
443
                      DUG 2 ;
444
                      CDR ;
445
                      CDR ;
446
                      { DIP 2 { DUP } ; DIG 3 } ;
447
                      CDR ;
448
                      CAR ;
449
                      CDR ;
450
                      { DIP 3 { DUP } ; DIG 4 } ;
451
                      CDR ;
452
                      CAR ;
453
                      CAR ;
454
                      { DIP 3 { DUP } ; DIG 4 } ;
455
                      GET 4 ;
456
                      { DIP 4 { DUP } ; DIG 5 } ;
457
                      GET 3 ;
458
                      DIG 5 ;
459
                      CAR ;
460
                      PAIR ;
461
                      PAIR ;
462
                      NONE unit ;
463
                      SWAP ;
464
                      UPDATE ;
465
                      PAIR ;
466
                      PAIR ;
467
                      SWAP ;
468
                      CAR ;
469
                      PAIR } } ;
470
           SWAP ;
471
           PAIR } }