x
431
{ parameter (or
(pair %add
(pair (pair (bytes %background) (bytes %chars))
(pair (bytes %charset) (pair (bytes %colours) (address %creator))))
(pair
(pair (string %creator_name)
(pair (string %description) (bool %mirror)))
(pair (bytes %palette) (pair (string %title) (nat %token_id)))))
(or
(pair %config
(pair (string %bootloader) (pair (bytes %font) (string %index)))
(pair (pair (string %readme) (string %runcmd))
(pair (string %script) (string %style))))
(address %set_admin))) ;
storage (pair
(pair
(big_map %assets nat
(pair
(pair (pair (bytes %background) (bytes %chars))
(pair (bytes %charset)
(pair (bytes %colours) (address %creator))))
(pair
(pair (string %creator_name) (string %description))
(pair (bool %mirror)
(pair (bytes %palette) (string %title))))))
(big_map %metadata string bytes))
(pair
(pair %renderer
(pair (pair (string %bootloader) (bytes %font))
(pair (string %index) (nat %offset)))
(pair (pair (string %readme) (string %runcmd))
(pair (string %script) (string %style))))
(pair %settings (address %admin) (address %mintery)))) ;
code { CAST (pair
(or
(pair (pair (pair bytes bytes) (pair bytes (pair bytes address)))
(pair (pair string (pair string bool))
(pair bytes (pair string nat))))
(or
(pair (pair string (pair bytes string))
(pair (pair string string) (pair string string)))
address))
(pair
(pair
(big_map nat
(pair
(pair (pair bytes bytes)
(pair bytes (pair bytes address)))
(pair (pair string string)
(pair bool (pair bytes string)))))
(big_map string bytes))
(pair
(pair (pair (pair string bytes) (pair string nat))
(pair (pair string string) (pair string string)))
(pair address address)))) ;
UNPAIR ;
IF_LEFT
{ DUP ;
CAR ;
CAR ;
CDR ;
SIZE ;
PUSH nat 100 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
DUP ;
CAR ;
GET 5 ;
SIZE ;
PUSH nat 100 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
DUP ;
GET 5 ;
SIZE ;
PUSH nat 6 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
PUSH nat 0 ;
PUSH nat 3 ;
DUP 3 ;
GET 5 ;
SIZE ;
EDIV ;
IF_NONE { PUSH int 66 ; FAILWITH } { CDR } ;
COMPARE ;
EQ ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
DUP ;
CAR ;
CAR ;
CAR ;
SIZE ;
PUSH nat 3 ;
COMPARE ;
EQ ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
DUP ;
GET 5 ;
SIZE ;
PUSH nat 6 ;
COMPARE ;
EQ ;
IF
{ DUP ;
GET 5 ;
PUSH nat 3 ;
DUP ;
SLICE ;
IF_NONE { PUSH int 74 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
PUSH nat 3 ;
PUSH nat 0 ;
SLICE ;
IF_NONE { PUSH int 73 ; FAILWITH } {} ;
COMPARE ;
NEQ ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
DUP ;
GET 5 ;
PUSH nat 3 ;
PUSH nat 0 ;
SLICE ;
IF_NONE { PUSH int 73 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
COMPARE ;
NEQ ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
DUP ;
GET 5 ;
PUSH nat 3 ;
DUP ;
SLICE ;
IF_NONE { PUSH int 74 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
COMPARE ;
NEQ ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } }
{} ;
DUP ;
CAR ;
GET 3 ;
SIZE ;
PUSH nat 2 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
DUP ;
CAR ;
GET 3 ;
SIZE ;
PUSH nat 255 ;
COMPARE ;
GT ;
IF {} { PUSH string "ASSETS_INVALID_ASSET" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
DIG 3 ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
DUG 5 ;
GET 5 ;
PAIR ;
DUP 5 ;
GET 3 ;
GET 4 ;
PAIR ;
DIG 4 ;
DUP ;
GET 3 ;
GET 3 ;
SWAP ;
DUP ;
DUG 6 ;
GET 3 ;
CAR ;
PAIR ;
PAIR ;
DIG 4 ;
DUP ;
CAR ;
GET 6 ;
SWAP ;
DUP ;
DUG 6 ;
CAR ;
GET 5 ;
PAIR ;
DUP 6 ;
CAR ;
GET 3 ;
PAIR ;
DIG 5 ;
DUP ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 7 ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
SOME ;
DIG 4 ;
GET 8 ;
UPDATE ;
PAIR ;
PAIR }
{ IF_LEFT
{ DUP ;
CAR ;
GET 3 ;
PUSH bytes 0x1f8b ;
SWAP ;
PUSH nat 2 ;
PUSH nat 0 ;
SLICE ;
IF_NONE { PUSH int 111 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH string "INVALID_FONT" ; FAILWITH } ;
DUP ;
CAR ;
GET 3 ;
PUSH bytes 0x0000 ;
SWAP ;
PUSH nat 2 ;
DUP ;
DUP 5 ;
CAR ;
GET 3 ;
SIZE ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 116 ; FAILWITH } {} ;
SLICE ;
IF_NONE { PUSH int 116 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH string "INVALID_FONT" ; FAILWITH } ;
DUP ;
CAR ;
CAR ;
PUSH string "#!/bin/bash" ;
SWAP ;
PUSH nat 11 ;
PUSH nat 0 ;
SLICE ;
IF_NONE { PUSH int 120 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH string "INVALID_SCRIPT" ; FAILWITH } ;
DUP ;
CAR ;
GET 4 ;
PUSH string "<html>" ;
SWAP ;
PUSH nat 6 ;
PUSH nat 0 ;
SLICE ;
IF_NONE { PUSH int 124 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH string "INVALID_INDEX" ; FAILWITH } ;
DUP ;
CAR ;
GET 4 ;
PUSH string "</html>" ;
SWAP ;
PUSH nat 7 ;
DUP ;
DUP 5 ;
CAR ;
GET 4 ;
SIZE ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 125 ; FAILWITH } {} ;
SLICE ;
IF_NONE { PUSH int 125 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH string "INVALID_INDEX" ; FAILWITH } ;
SWAP ;
DUP ;
GET 3 ;
UNPAIR ;
UNPAIR ;
CAR ;
DUP 5 ;
CAR ;
GET 3 ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
UPDATE 3 ;
DUP ;
GET 3 ;
UNPAIR ;
UNPAIR ;
CDR ;
DUP 5 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
UPDATE 3 ;
DUP ;
GET 3 ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DUP 5 ;
CAR ;
GET 4 ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
UPDATE 3 ;
DUP ;
GET 3 ;
DUP 3 ;
GET 6 ;
UPDATE 6 ;
UPDATE 3 ;
DUP ;
GET 3 ;
DUP 3 ;
GET 5 ;
UPDATE 5 ;
UPDATE 3 ;
DUP ;
GET 3 ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
DUP 5 ;
GET 3 ;
CAR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
UPDATE 3 ;
DUP ;
GET 3 ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
DIG 4 ;
GET 3 ;
CDR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
UPDATE 3 }
{ SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
SENDER ;
COMPARE ;
EQ ;
IF { PUSH bool True } { SELF_ADDRESS ; SENDER ; COMPARE ; EQ } ;
IF {} { PUSH string "ASSETS_NOT_ADMIN" ; FAILWITH } ;
SWAP ;
DUP ;
GET 4 ;
DIG 2 ;
UPDATE 1 ;
UPDATE 4 } } ;
NIL operation ;
PAIR } ;
view "asset_data" nat
(pair
(pair (pair (bytes %background) (bytes %chars))
(pair (bytes %charset) (pair (bytes %colours) (address %creator))))
(pair (pair (string %creator_name) (string %description))
(pair (bool %mirror) (pair (bytes %palette) (string %title)))))
{ UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF {} { PUSH int 100 ; FAILWITH } ;
SWAP ;
CAR ;
CAR ;
SWAP ;
GET ;
IF_NONE { PUSH int 101 ; FAILWITH } {} } }