BCD

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