BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • A Token Gesture
FA2Ledger
operations (107)Storage Code Interact Tokens Metadata Fork Views Statistics Details
Latest
​x
363
 
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 (pair (address %address) (nat %amount))
11
                            (pair (map %metadata string bytes) (nat %token_id)))
12
                (address %set_administrator)))
13
            (or (or (pair %set_metadata (string %k) (bytes %v)) (bool %set_pause))
14
                (or
15
                  (list %transfer (pair (address %from_)
16
                                       (list %txs (pair (address %to_)
17
                                                       (pair (nat %token_id)
18
                                                             (nat %amount))))))
19
                  (list %update_operators (or
20
                                           (pair %add_operator (address %owner)
21
                                                               (pair (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 %all_tokens))
29
                (pair (big_map %ledger (pair address nat) nat)
30
                      (big_map %metadata string bytes)))
31
          (pair
32
            (pair
33
              (big_map %operators
34
                (pair (address %owner) (pair (address %operator) (nat %token_id)))
35
                unit)
36
              (bool %paused))
37
            (pair
38
              (big_map %token_metadata nat
39
                                       (pair (nat %token_id)
40
                                             (map %token_info string bytes)))
41
              (big_map %total_supply nat nat))));
42
code { CAST (pair
43
              (or
44
                (or
45
                  (pair (list (pair address nat))
46
                        (contract (list (pair (pair address nat) nat))))
47
                  (or (pair (pair address nat) (pair (map string bytes) nat)) address))
48
                (or (or (pair string bytes) bool)
49
                    (or (list (pair address (list (pair address (pair nat nat)))))
50
                        (list (or (pair address (pair address nat))
51
                                 (pair address (pair address nat)))))))
52
              (pair
53
                (pair (pair address nat)
54
                      (pair (big_map (pair address nat) nat) (big_map string bytes)))
55
                (pair (pair (big_map (pair address (pair address nat)) unit) bool)
56
                      (pair (big_map nat (pair nat (map string bytes)))
57
                            (big_map nat nat))))) ;
58
       UNPAIR ;
59
       IF_LEFT
60
         { IF_LEFT
61
             { SWAP ;
62
               DUP ;
63
               DUG 2 ;
64
               GET 3 ;
65
               CDR ;
66
               IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ;
67
               DUP ;
68
               CAR ;
69
               MAP { DUP 3 ;
70
                     GET 5 ;
71
                     SWAP ;
72
                     DUP ;
73
                     DUG 2 ;
74
                     CDR ;
75
                     MEM ;
76
                     IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
77
                     DUP 3 ;
78
                     CAR ;
79
                     GET 3 ;
80
                     SWAP ;
81
                     DUP ;
82
                     CDR ;
83
                     SWAP ;
84
                     DUP ;
85
                     DUG 3 ;
86
                     CAR ;
87
                     PAIR ;
88
                     MEM ;
89
                     IF
90
                       { DUP 3 ;
91
                         CAR ;
92
                         GET 3 ;
93
                         SWAP ;
94
                         DUP ;
95
                         CDR ;
96
                         SWAP ;
97
                         DUP ;
98
                         DUG 3 ;
99
                         CAR ;
100
                         PAIR ;
101
                         GET ;
102
                         IF_NONE { PUSH int 425 ; FAILWITH } {} ;
103
                         SWAP ;
104
                         PAIR }
105
                       { PUSH nat 0 ; SWAP ; PAIR } } ;
106
               NIL operation ;
107
               DIG 2 ;
108
               CDR ;
109
               PUSH mutez 0 ;
110
               DIG 3 ;
111
               TRANSFER_TOKENS ;
112
               CONS }
113
             { IF_LEFT
114
                 { SWAP ;
115
                   DUP ;
116
                   DUG 2 ;
117
                   CAR ;
118
                   CAR ;
119
                   CAR ;
120
                   SENDER ;
121
                   COMPARE ;
122
                   EQ ;
123
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
124
                   DUP ;
125
                   CAR ;
126
                   CDR ;
127
                   PUSH nat 1 ;
128
                   COMPARE ;
129
                   EQ ;
130
                   IF {} { PUSH string "NFT-asset: amount <> 1" ; FAILWITH } ;
131
                   SWAP ;
132
                   DUP ;
133
                   DUG 2 ;
134
                   CAR ;
135
                   CAR ;
136
                   CDR ;
137
                   SWAP ;
138
                   DUP ;
139
                   DUG 2 ;
140
                   GET 4 ;
141
                   COMPARE ;
142
                   LT ;
143
                   IF
144
                     { PUSH string "NFT-asset: cannot mint twice same token" ; FAILWITH }
145
                     {} ;
146
                   SWAP ;
147
                   DUP ;
148
                   DUG 2 ;
149
                   CAR ;
150
                   GET 3 ;
151
                   SWAP ;
152
                   DUP ;
153
                   GET 4 ;
154
                   SWAP ;
155
                   DUP ;
156
                   DUG 3 ;
157
                   CAR ;
158
                   CAR ;
159
                   PAIR ;
160
                   MEM ;
161
                   IF
162
                     { SWAP ;
163
                       UNPAIR ;
164
                       UNPAIR ;
165
                       SWAP ;
166
                       UNPAIR ;
167
                       DUP ;
168
                       DIG 5 ;
169
                       DUP ;
170
                       GET 4 ;
171
                       SWAP ;
172
                       DUP ;
173
                       DUG 7 ;
174
                       CAR ;
175
                       CAR ;
176
                       PAIR ;
177
                       DUP ;
178
                       DUG 2 ;
179
                       GET ;
180
                       IF_NONE { PUSH int 535 ; FAILWITH } {} ;
181
                       DUP 7 ;
182
                       CAR ;
183
                       CDR ;
184
                       ADD ;
185
                       SOME ;
186
                       SWAP ;
187
                       UPDATE ;
188
                       PAIR ;
189
                       SWAP ;
190
                       PAIR ;
191
                       PAIR ;
192
                       SWAP }
193
                     { SWAP ;
194
                       UNPAIR ;
195
                       UNPAIR ;
196
                       SWAP ;
197
                       UNPAIR ;
198
                       DUP 5 ;
199
                       CAR ;
200
                       CDR ;
201
                       SOME ;
202
                       DIG 5 ;
203
                       DUP ;
204
                       GET 4 ;
205
                       SWAP ;
206
                       DUP ;
207
                       DUG 7 ;
208
                       CAR ;
209
                       CAR ;
210
                       PAIR ;
211
                       UPDATE ;
212
                       PAIR ;
213
                       SWAP ;
214
                       PAIR ;
215
                       PAIR ;
216
                       SWAP } ;
217
                   SWAP ;
218
                   DUP ;
219
                   DUG 2 ;
220
                   CAR ;
221
                   CAR ;
222
                   CDR ;
223
                   SWAP ;
224
                   DUP ;
225
                   DUG 2 ;
226
                   GET 4 ;
227
                   COMPARE ;
228
                   LT ;
229
                   IF
230
                     {}
231
                     { DUP ;
232
                       GET 4 ;
233
                       DUP 3 ;
234
                       CAR ;
235
                       CAR ;
236
                       CDR ;
237
                       COMPARE ;
238
                       EQ ;
239
                       IF
240
                         {}
241
                         { PUSH string "Token-IDs should be consecutive" ; FAILWITH } ;
242
                       SWAP ;
243
                       UNPAIR ;
244
                       UNPAIR ;
245
                       CAR ;
246
                       PUSH nat 1 ;
247
                       DUP 5 ;
248
                       GET 4 ;
249
                       ADD ;
250
                       SWAP ;
251
                       PAIR ;
252
                       PAIR ;
253
                       PAIR ;
254
                       DUP ;
255
                       GET 5 ;
256
                       DIG 2 ;
257
                       DUP ;
258
                       GET 3 ;
259
                       SWAP ;
260
                       DUP ;
261
                       DUG 4 ;
262
                       GET 4 ;
263
                       PAIR ;
264
                       SOME ;
265
                       DUP 4 ;
266
                       GET 4 ;
267
                       UPDATE ;
268
                       UPDATE 5 ;
269
                       SWAP } ;
270
                   SWAP ;
271
                   DUP ;
272
                   DUG 2 ;
273
                   DUP ;
274
                   GET 6 ;
275
                   DIG 3 ;
276
                   GET 6 ;
277
                   DUP 4 ;
278
                   GET 4 ;
279
                   GET ;
280
                   IF_NONE { PUSH nat 0 } {} ;
281
                   DUP 4 ;
282
                   CAR ;
283
                   CDR ;
284
                   ADD ;
285
                   SOME ;
286
                   DIG 3 ;
287
                   GET 4 ;
288
                   UPDATE ;
289
                   UPDATE 6 }
290
                 { SWAP ;
291
                   DUP ;
292
                   DUG 2 ;
293
                   CAR ;
294
                   CAR ;
295
                   CAR ;
296
                   SENDER ;
297
                   COMPARE ;
298
                   EQ ;
299
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
300
                   SWAP ;
301
                   UNPAIR ;
302
                   UNPAIR ;
303
                   CDR ;
304
                   DIG 3 ;
305
                   PAIR ;
306
                   PAIR ;
307
                   PAIR } ;
308
               NIL operation } }
309
         { IF_LEFT
310
             { IF_LEFT
311
                 { SWAP ;
312
                   DUP ;
313
                   DUG 2 ;
314
                   CAR ;
315
                   CAR ;
316
                   CAR ;
317
                   SENDER ;
318
                   COMPARE ;
319
                   EQ ;
320
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
321
                   SWAP ;
322
                   UNPAIR ;
323
                   UNPAIR ;
324
                   SWAP ;
325
                   UNPAIR ;
326
                   SWAP ;
327
                   DUP 5 ;
328
                   CDR ;
329
                   SOME ;
330
                   DIG 5 ;
331
                   CAR ;
332
                   UPDATE ;
333
                   SWAP ;
334
                   PAIR ;
335
                   SWAP ;
336
                   PAIR ;
337
                   PAIR }
338
                 { SWAP ;
339
                   DUP ;
340
                   DUG 2 ;
341
                   CAR ;
342
                   CAR ;
343
                   CAR ;
344
                   SENDER ;
345
                   COMPARE ;
346
                   EQ ;
347
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
348
                   SWAP ;
349
                   UNPAIR ;
350
                   SWAP ;
351
                   UNPAIR ;
352
                   CAR ;
353
                   DIG 3 ;
354
                   SWAP ;
355
                   PAIR ;
356
                   PAIR ;
357
                   SWAP ;
358
                   PAIR } }
359
             { IF_LEFT
360
                 { PUSH string "FA2_TX_DENIED" ; FAILWITH }
361
                 { PUSH string "FA2_OPERATORS_UNSUPPORTED" ; FAILWITH } } ;
362
           NIL operation } ;
363
       PAIR }