BCD

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