BCD

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