x
669
1047
parameter (or
(or
(or (list %add_presale1_addresses address)
(or (list %add_presale2_addresses address) (bool %end_sale)))
(or
(or (nat %mint)
(pair %oracle_callback (string %currency_pair)
(pair (timestamp %last_update) (nat %rate))))
(or (address %register_fa2)
(pair %reserve_giveaways (address %address) (nat %amount)))))
(or
(or
(or (list %reveal_metadata (pair (bytes %metadata) (nat %token_id)))
(address %set_admin))
(or (nat %set_giveaway_amount)
(pair %set_presale_limits (nat %presale1_limit)
(nat %presale2_limit))))
(or
(or
(pair %set_price (mutez %presale1_price)
(pair (mutez %presale2_price)
(mutez %public_sale_price)))
(pair %set_time (timestamp %presale1_start_time)
(pair (timestamp %presale2_start_time)
(timestamp %public_sale_start_time))))
(or (unit %start_sale)
(pair %update_mint_limit (nat %max_mint) (nat %mint_limit))))));
storage (pair (address %admin)
(pair (address %artist)
(pair (address %dev)
(pair (address %fa2)
(pair (nat %giveaway_amount)
(pair (nat %giveaway_index)
(pair (nat %max_mint)
(pair (big_map %metadata string bytes)
(pair (nat %mint_index)
(pair (nat %mint_limit)
(pair
(big_map %mints
address
(pair
(nat %last_mint_level)
(nat %minted)))
(pair
(address %oracle)
(pair
(bool %oracle_callback_expected)
(pair
(bytes %placeholder_ipfs)
(pair
(nat %presale1_count)
(pair
(nat %presale1_limit)
(pair
(mutez %presale1_price)
(pair
(timestamp %presale1_start_time)
(pair
(big_map %presale1_whitelist
address
nat)
(pair
(nat %presale2_count)
(pair
(nat %presale2_limit)
(pair
(mutez %presale2_price)
(pair
(timestamp %presale2_start_time)
(pair
(big_map %presale2_whitelist
address
nat)
(pair
(string %provenance_hash)
(pair
(mutez %public_sale_price)
(pair
(timestamp %public_sale_start_time)
(pair
(bool %sale_ended)
(pair
(nat %total_mints)
(nat %total_supply))))))))))))))))))))))))))))));
code { LAMBDA
(pair nat
(pair address
(pair address
(pair address
(pair address
(pair nat
(pair nat
(pair nat
(pair (big_map string bytes)
(pair nat
(pair nat
(pair
(big_map
address
(pair nat
nat))
(pair
address
(pair
bool
(pair
bytes
(pair
nat
(pair
nat
(pair
mutez
(pair
timestamp
(pair
(big_map
address
nat)
(pair
nat
(pair
nat
(pair
mutez
(pair
timestamp
(pair
(big_map
address
nat)
(pair
string
(pair
mutez
(pair
timestamp
(pair
bool
(pair
nat
nat))))))))))))))))))))))))))))))
(pair bytes
(pair address
(pair address
(pair address
(pair address
(pair nat
(pair nat
(pair nat
(pair (big_map string bytes)
(pair nat
(pair nat
(pair
(big_map
address
(pair nat
nat))
(pair
address
(pair
bool
(pair
bytes
(pair
nat
(pair
nat
(pair
mutez
(pair
timestamp
(pair
(big_map
address
nat)
(pair
nat
(pair
nat
(pair
mutez
(pair
timestamp
(pair
(big_map
address
nat)
(pair
string
(pair
mutez
(pair
timestamp
(pair
bool
(pair
nat
nat))))))))))))))))))))))))))))))
{ UNPAIR ;
NIL bytes ;
SWAP ;
DUP ;
DUG 2 ;
PUSH nat 0 ;
PUSH nat 0 ;
DUP 5 ;
COMPARE ;
EQ ;
IF
{ DROP 2 ;
SWAP ;
DROP ;
PUSH (map int bytes) { Elt 0 0x30 ;
Elt 1 0x31 ;
Elt 2 0x32 ;
Elt 3 0x33 ;
Elt 4 0x34 ;
Elt 5 0x35 ;
Elt 6 0x36 ;
Elt 7 0x37 ;
Elt 8 0x38 ;
Elt 9 0x39 } ;
PUSH int 0 ;
GET ;
IF_NONE { PUSH int 205 ; FAILWITH } {} ;
CONS }
{ PUSH nat 0 ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { DROP ;
DUP ;
PUSH nat 10 ;
SWAP ;
EDIV ;
IF_NONE { PUSH int 208 ; FAILWITH } { CDR } ;
PUSH nat 10 ;
DIG 2 ;
EDIV ;
IF_NONE { PUSH int 209 ; FAILWITH } { CAR } ;
SWAP ;
DIG 2 ;
PUSH (map nat bytes) { Elt 0 0x30 ;
Elt 1 0x31 ;
Elt 2 0x32 ;
Elt 3 0x33 ;
Elt 4 0x34 ;
Elt 5 0x35 ;
Elt 6 0x36 ;
Elt 7 0x37 ;
Elt 8 0x38 ;
Elt 9 0x39 } ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 210 ; FAILWITH } {} ;
CONS ;
DUG 2 ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
GT } ;
DROP 2 ;
SWAP ;
DROP } ;
CONCAT ;
SWAP ;
DUP ;
DUG 2 ;
GET 27 ;
CONCAT ;
PAIR } ;
SWAP ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
DUP ;
ITER { DIG 2 ;
DUP ;
GET 37 ;
PUSH (option nat) (Some 0) ;
DIG 3 ;
UPDATE ;
UPDATE 37 ;
SWAP } ;
DROP }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
DUP ;
ITER { DIG 2 ;
DUP ;
GET 47 ;
PUSH (option nat) (Some 0) ;
DIG 3 ;
UPDATE ;
UPDATE 47 ;
SWAP } ;
DROP }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
UPDATE 55 } } ;
NIL operation }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 35 ;
NOW ;
COMPARE ;
GE ;
IF {} { PUSH string "PRESALE_NOT_STARTED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 55 ;
IF { PUSH string "SALE_ENDED" ; FAILWITH } {} ;
SWAP ;
DUP ;
GET 58 ;
SWAP ;
DUP ;
DUG 3 ;
GET 57 ;
COMPARE ;
LT ;
IF {} { PUSH string "SOLD_OUT" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 19 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LE ;
IF {} { PUSH string "ONE_TIME_MINT_LIMIT_EXCEEDED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 58 ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 57 ;
ADD ;
COMPARE ;
LE ;
IF {} { PUSH string "NOT_ENOUGH_NFTS_AVAILABLE" ; FAILWITH } ;
PUSH mutez 0 ;
DUP 3 ;
GET 45 ;
NOW ;
COMPARE ;
LE ;
IF
{ DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 31 ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 29 ;
ADD ;
COMPARE ;
LE ;
IF {} { PUSH string "PRESALE_LIMIT_EXCEEDED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 37 ;
SENDER ;
MEM ;
IF {} { PUSH string "NOT_WHITELISTED" ; FAILWITH } ;
SWAP ;
DUP ;
GET 37 ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 277 ; FAILWITH } {} ;
DUP 5 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 37 ;
DUP ;
DUG 2 ;
GET 33 ;
SWAP ;
DUP ;
DUG 2 ;
MUL ;
DIG 2 ;
DUP ;
GET 29 ;
DUP 4 ;
ADD ;
UPDATE 29 ;
DUG 2 }
{ DUP 3 ;
GET 53 ;
NOW ;
COMPARE ;
LE ;
IF
{ DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 41 ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 39 ;
ADD ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "PRESALE_LIMIT_EXCEEDED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 37 ;
SENDER ;
MEM ;
IF
{ PUSH bool True }
{ SWAP ; DUP ; DUG 2 ; GET 47 ; SENDER ; MEM } ;
IF {} { PUSH string "NOT_WHITELISTED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 43 ;
SWAP ;
DUP ;
DUG 2 ;
MUL ;
DUP 3 ;
GET 37 ;
SENDER ;
MEM ;
IF
{ DIG 2 ;
DUP ;
GET 37 ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 289 ; FAILWITH } {} ;
DUP 6 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 37 ;
DUG 2 }
{ DIG 2 ;
DUP ;
GET 47 ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 291 ; FAILWITH } {} ;
DUP 6 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 47 ;
DUG 2 } ;
DIG 2 ;
DUP ;
GET 39 ;
DUP 4 ;
ADD ;
UPDATE 39 ;
DUG 2 }
{ DUP 3 ;
GET 21 ;
SENDER ;
MEM ;
IF
{ LEVEL ;
DUP 4 ;
GET 21 ;
SENDER ;
GET ;
IF_NONE { PUSH int 302 ; FAILWITH } {} ;
CAR ;
COMPARE ;
LT ;
IF
{}
{ PUSH string "ONLY_ONE_TRANSACTION_PER_LEVEL" ;
FAILWITH } ;
DIG 2 ;
DUP ;
GET 21 ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 303 ; FAILWITH } {} ;
DUP ;
CDR ;
DUP 7 ;
ADD ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 21 ;
DUP ;
GET 21 ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 304 ; FAILWITH } {} ;
LEVEL ;
DIG 5 ;
DROP ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 21 ;
SWAP }
{ DIG 2 ;
DUP ;
GET 21 ;
DUP 4 ;
LEVEL ;
DIG 4 ;
DROP ;
PAIR ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 21 ;
SWAP } ;
SWAP ;
DUP ;
GET 13 ;
SWAP ;
DUP ;
DUG 3 ;
GET 21 ;
SENDER ;
GET ;
IF_NONE { PUSH int 306 ; FAILWITH } {} ;
CDR ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "TOTAL_MINT_LIMIT_EXCEEDED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 51 ;
SWAP ;
DUP ;
DUG 2 ;
MUL } } ;
DUP ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "INVALID_PRICE" ; FAILWITH } ;
PUSH nat 0 ;
NIL (pair address (pair nat (pair bytes nat))) ;
DUP 5 ;
GET 17 ;
DUP 5 ;
DUP 4 ;
COMPARE ;
LT ;
LOOP { DUP 7 ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DIG 7 ;
DIG 2 ;
PAIR ;
EXEC ;
UNPAIR ;
DIG 7 ;
DIG 2 ;
DUG 7 ;
DUG 7 ;
DUP 3 ;
DUP 3 ;
DUP 3 ;
PUSH nat 1 ;
SENDER ;
PAIR 4 ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
CONS ;
SWAP ;
PUSH nat 1 ;
ADD ;
DUP 6 ;
GET 58 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
GT ;
IF { DROP ; PUSH nat 1 } {} ;
PUSH nat 1 ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP 5 ;
DUP 4 ;
COMPARE ;
LT } ;
DIG 2 ;
DROP ;
DIG 5 ;
DROP ;
NIL operation ;
DUP 6 ;
GET 7 ;
CONTRACT %mint (list (pair (address %address)
(pair (nat %amount)
(pair (bytes %metadata)
(nat %token_id))))) ;
IF_NONE { PUSH int 318 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 4 ;
TRANSFER_TOKENS ;
CONS ;
DIG 4 ;
DUP ;
GET 57 ;
DIG 5 ;
ADD ;
UPDATE 57 ;
DIG 2 ;
UPDATE 17 ;
DUG 2 ;
PUSH nat 100 ;
PUSH nat 10 ;
DUP 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 341 ; FAILWITH } {} ;
CAR ;
SWAP ;
DUP 4 ;
GET 5 ;
CONTRACT unit ;
IF_NONE { PUSH int 342 ; FAILWITH } {} ;
DUP 3 ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUP 4 ;
GET 3 ;
CONTRACT unit ;
IF_NONE { PUSH int 344 ; FAILWITH } {} ;
DIG 2 ;
DIG 3 ;
SUB_MUTEZ ;
IF_NONE { PUSH int 344 ; FAILWITH } {} ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 25 ;
IF {} { PUSH string "NOT_ALLOWED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
PUSH nat 1 ;
DIG 3 ;
GET 58 ;
DIG 3 ;
GET 4 ;
EDIV ;
IF_NONE { PUSH int 190 ; FAILWITH } { CDR } ;
ADD ;
UPDATE 17 ;
PUSH bool False ;
UPDATE 25 ;
NIL operation } }
{ IF_LEFT
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
UPDATE 7 ;
NIL operation }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 9 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 4 ;
GET 11 ;
ADD ;
COMPARE ;
LE ;
IF {} { PUSH string "GIVEAWAY_LIMIT_EXCEEDED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 58 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
DUP 4 ;
GET 57 ;
ADD ;
COMPARE ;
LE ;
IF {} { PUSH string "TOTAL_SUPPLY_EXCEEDED" ; FAILWITH } ;
PUSH nat 0 ;
NIL (pair address (pair nat (pair bytes nat))) ;
DUP 4 ;
GET 17 ;
DUP 4 ;
CDR ;
DUP 4 ;
COMPARE ;
LT ;
LOOP { DUP 6 ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DIG 6 ;
DIG 2 ;
PAIR ;
EXEC ;
UNPAIR ;
DIG 6 ;
DIG 2 ;
DUG 6 ;
DUG 6 ;
DUP 3 ;
DUP 3 ;
DUP 3 ;
PUSH nat 1 ;
DUP 9 ;
CAR ;
PAIR 4 ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
CONS ;
SWAP ;
PUSH nat 1 ;
ADD ;
DUP 5 ;
GET 58 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
GT ;
IF { DROP ; PUSH nat 1 } {} ;
PUSH nat 1 ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP 4 ;
CDR ;
DUP 4 ;
COMPARE ;
LT } ;
DIG 2 ;
DROP ;
DIG 4 ;
DROP ;
NIL operation ;
DUP 5 ;
GET 7 ;
CONTRACT %mint (list (pair (address %address)
(pair (nat %amount)
(pair (bytes %metadata)
(nat %token_id))))) ;
IF_NONE { PUSH int 234 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 4 ;
TRANSFER_TOKENS ;
CONS ;
DIG 3 ;
DUP ;
GET 57 ;
DUP 5 ;
CDR ;
ADD ;
UPDATE 57 ;
DIG 2 ;
UPDATE 17 ;
DUP ;
GET 11 ;
DIG 3 ;
CDR ;
ADD ;
UPDATE 11 ;
SWAP } } } }
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
NIL operation ;
DUP 3 ;
GET 7 ;
CONTRACT %update_token_metadata (list (pair (bytes %metadata)
(nat %token_id))) ;
IF_NONE { PUSH int 360 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
UPDATE 1 ;
NIL operation } }
{ DIG 2 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
UPDATE 9 }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
DUP ;
DUG 2 ;
CAR ;
UPDATE 31 ;
SWAP ;
CDR ;
UPDATE 41 } ;
NIL operation } }
{ IF_LEFT
{ DIG 2 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
DUP ;
DUG 2 ;
GET 4 ;
UPDATE 51 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
UPDATE 33 ;
SWAP ;
GET 3 ;
UPDATE 43 }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
COMPARE ;
LT ;
IF {} { PUSH string "INVALID_TIME" ; FAILWITH } ;
DUP ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
COMPARE ;
LT ;
IF {} { PUSH string "INVALID_TIME" ; FAILWITH } ;
DUP ;
DUG 2 ;
CAR ;
UPDATE 35 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
UPDATE 45 ;
SWAP ;
GET 4 ;
UPDATE 53 } ;
NIL operation }
{ IF_LEFT
{ DROP ;
SWAP ;
DROP ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
PUSH bool True ;
UPDATE 25 ;
DUP ;
GET 23 ;
CONTRACT %get (pair string
(contract (pair (string %currency_pair)
(pair (timestamp %last_update)
(nat %rate))))) ;
IF_NONE { PUSH string "Invalid contract" ; FAILWITH } {} ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
SELF %oracle_callback ;
PUSH string "XTZ-USD" ;
PAIR ;
TRANSFER_TOKENS ;
CONS }
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
DUP ;
DUG 2 ;
CAR ;
UPDATE 13 ;
SWAP ;
CDR ;
UPDATE 19 ;
NIL operation } } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR }