BCD

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