BCD

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