x
926
1573
parameter (or
(or
(or (unit %default)
(or (nat %mint) (pair %oracle_callback string (pair timestamp nat))))
(or (or (timestamp %ready_sale) (unit %register_fomo))
(or
(list %reveal_token_metadata (pair (nat %token_id)
(map %token_info string bytes)))
(pair %set_fomo_register_time (int %fomo_register_duration_minutes)
(timestamp %fomo_register_start_time)))))
(or
(or (string %set_provenance_hash)
(or (address %update_admin)
(list %update_blacklist (or (address %add_address)
(address %remove_address)))))
(or
(or (pair %update_metadata (string %k) (bytes %v))
(list %upgrade_token_metadata (pair (nat %token_id)
(map %token_info string bytes))))
(or (list %voucher_early_deployer address)
(list %voucher_fa2_callback (pair
(pair %request (address %owner)
(nat %token_id))
(nat %balance)))))));
storage (pair
(pair
(pair
(pair (pair (address %admin) (nat %base_index))
(pair (big_map %blacklist address unit) (address %collaborator)))
(pair (pair (address %fa2) (mutez %fomo_price))
(pair (int %fomo_register_duration_minutes)
(timestamp %fomo_register_start_time))))
(pair
(pair
(pair (int %fomo_sale_duration_minutes)
(timestamp %fomo_sale_start_time))
(pair (nat %fomo_supply) (big_map %fomos address unit)))
(pair (pair (nat %max_mint) (nat %max_mint_wallet))
(pair (nat %max_supply) (big_map %metadata string bytes)))))
(pair
(pair
(pair
(pair (nat %mint_index)
(big_map %mint_meta address (pair (nat %amount) (nat %level))))
(pair (nat %n_minted) (address %oracle)))
(pair
(pair (bool %oracle_callback_expected) (bytes %placeholder_ipfs_path))
(pair (mutez %price) (string %provenance_hash))))
(pair
(pair (pair (bool %provenance_lock) (int %public_sale_duration_minutes))
(pair (timestamp %public_sale_end_time)
(timestamp %public_sale_start_time)))
(pair (pair (address %voucher_fa2) (bool %voucher_fa2_callback_expected))
(pair (nat %voucher_supply) (nat %voucher_token_id))))));
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DROP ;
NIL operation ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 105 ; FAILWITH } {} ;
AMOUNT ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
CAR ;
CDR ;
NOW ;
COMPARE ;
GE ;
IF
{ SWAP ; DUP ; DUG 2 ; GET 5 ; GET 3 ; NOW ; COMPARE ; LE }
{ PUSH bool False } ;
IF {} { PUSH string "NOT_ON_SALE" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
GET 4 ;
NOW ;
COMPARE ;
LT ;
IF
{ DUP ;
PUSH nat 1 ;
COMPARE ;
EQ ;
IF {} { PUSH string "FOMO_CAN_ONLY_MINT_ONE" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
GET 3 ;
CDR ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "WRONG_PRICE" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
GET 4 ;
SENDER ;
MEM ;
IF {} { PUSH string "NOT_REGISTERED_ADDRESS" ; FAILWITH } ;
SWAP ;
DUP ;
GET 9 ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
GET 3 ;
GET 3 ;
ADD ;
PUSH nat 1 ;
DUP 4 ;
GET 3 ;
CAR ;
GET 3 ;
ADD ;
COMPARE ;
LE ;
IF {} { PUSH string "OVER_FOMO_SUPPLY" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
NONE unit ;
SENDER ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
GET 3 ;
SENDER ;
MEM ;
IF { PUSH string "IN_BLACKLIST" ; FAILWITH } {} ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ SWAP ; DUP ; DUG 2 ; CAR ; GET 5 ; CAR ; SWAP ; DUP ; DUG 2 ; COMPARE ; LE }
{ PUSH bool False } ;
IF {} { PUSH string "WRONG_MINT_AMOUNT" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 7 ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
CAR ;
GET 3 ;
ADD ;
COMPARE ;
LE ;
IF {} { PUSH string "OVER_MAX_SUPPLY" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 5 ;
AMOUNT ;
EDIV ;
IF_NONE { PUSH int 218 ; FAILWITH } {} ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
EQ ;
IF
{ PUSH mutez 1 ;
DUP ;
DUP 4 ;
GET 3 ;
GET 5 ;
EDIV ;
IF_NONE { PUSH int 219 ; FAILWITH } {} ;
CAR ;
DUP 4 ;
GET 3 ;
GET 5 ;
AMOUNT ;
EDIV ;
IF_NONE { PUSH int 218 ; FAILWITH } {} ;
CAR ;
MUL ;
MUL ;
AMOUNT ;
COMPARE ;
EQ }
{ PUSH bool False } ;
IF {} { PUSH string "WRONG_PRICE" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
CAR ;
CDR ;
SENDER ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
CAR ;
CDR ;
SENDER ;
GET ;
IF_NONE { PUSH int 224 ; FAILWITH } {} ;
CDR ;
LEVEL ;
COMPARE ;
GT ;
IF {} { PUSH string "CANNOT_BATCH_MINT" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 5 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
CAR ;
CAR ;
CDR ;
SENDER ;
GET ;
IF_NONE { PUSH int 226 ; FAILWITH } {} ;
CAR ;
ADD ;
COMPARE ;
LE ;
IF {} { PUSH string "OVER_MAX_MINT_WALLET" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 227 ; FAILWITH } {} ;
DUP ;
CAR ;
DUP 10 ;
ADD ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 228 ; FAILWITH } {} ;
LEVEL ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP }
{ SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
LEVEL ;
DUP 8 ;
PAIR ;
SOME ;
SENDER ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP } } ;
NIL operation ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
GET 4 ;
CONTRACT unit ;
IF_NONE { PUSH int 233 ; FAILWITH } {} ;
PUSH mutez 1 ;
PUSH nat 4 ;
PUSH mutez 1 ;
AMOUNT ;
EDIV ;
IF_NONE { PUSH int 232 ; FAILWITH } {} ;
CAR ;
EDIV ;
IF_NONE { PUSH int 232 ; FAILWITH } { CAR } ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUP 3 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 234 ; FAILWITH } {} ;
PUSH mutez 1 ;
PUSH nat 4 ;
PUSH mutez 1 ;
AMOUNT ;
EDIV ;
IF_NONE { PUSH int 232 ; FAILWITH } {} ;
CAR ;
EDIV ;
IF_NONE { PUSH int 232 ; FAILWITH } { CAR } ;
MUL ;
AMOUNT ;
SUB ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DUP ;
DUG 2 ;
PUSH nat 0 ;
DUP ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { 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 6 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
NIL bytes ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
EQ ;
IF { PUSH bytes 0x00 ; CONS } {} ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { DUP 3 ;
PUSH nat 10 ;
DUP 4 ;
EDIV ;
IF_NONE { PUSH int 58 ; FAILWITH } { CDR } ;
GET ;
IF_NONE { PUSH int 58 ; FAILWITH } {} ;
CONS ;
PUSH nat 10 ;
DIG 2 ;
EDIV ;
IF_NONE { PUSH int 59 ; FAILWITH } { CAR } ;
SWAP ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
GT } ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 3 ;
DUP 6 ;
CAR ;
CAR ;
GET 3 ;
CAR ;
CONTRACT %mint (pair
(pair (address %address) (nat %amount))
(pair (nat %token_id)
(map %token_info string bytes))) ;
IF_NONE { PUSH int 269 ; FAILWITH } {} ;
PUSH mutez 0 ;
EMPTY_MAP string bytes ;
DIG 4 ;
CONCAT ;
DUP 9 ;
GET 3 ;
GET 3 ;
CDR ;
CONCAT ;
SOME ;
PUSH string "" ;
UPDATE ;
DIG 7 ;
DUP ;
CAR ;
CAR ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 9 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
ADD ;
PAIR ;
PUSH nat 1 ;
SENDER ;
PAIR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUG 2 ;
DIG 4 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
CAR ;
GET 7 ;
SWAP ;
DUP ;
DUG 6 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
COMPARE ;
GT ;
IF
{ DIG 4 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CDR ;
PUSH nat 1 ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 4 }
{} ;
DIG 4 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 4 ;
PUSH nat 1 ;
ADD ;
DUP ;
DUP 3 ;
COMPARE ;
GT } ;
DROP 2 ;
SWAP ;
DROP }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ORACLE" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 3 ;
CAR ;
IF {} { PUSH string "NOT_CALLBACK_EXPECTED" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
PUSH bool False ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 6 ;
CAR ;
GET 7 ;
DIG 6 ;
GET 4 ;
EDIV ;
IF_NONE { PUSH int 120 ; FAILWITH } { CDR } ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
GET 3 ;
CAR ;
CAR ;
CAR ;
PUSH nat 0 ;
COMPARE ;
EQ ;
IF
{ DUP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 5 ;
CAR ;
GET 7 ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{} ;
NIL operation } } }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
CAR ;
DUP 6 ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
PUSH int 60 ;
DIG 7 ;
CAR ;
GET 3 ;
CAR ;
CAR ;
MUL ;
DIG 6 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
PUSH int 60 ;
DUP 7 ;
GET 5 ;
CAR ;
CDR ;
MUL ;
DIG 6 ;
GET 5 ;
GET 4 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CDR ;
PUSH bool True ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
GET 3 ;
CAR ;
GET 4 ;
CONTRACT %get (pair string
(contract (pair string (pair timestamp nat)))) ;
IF_NONE { PUSH int 134 ; FAILWITH } {} ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
SELF_ADDRESS ;
CONTRACT %oracle_callback (pair string (pair timestamp nat)) ;
IF_NONE { PUSH int 135 ; FAILWITH } {} ;
PUSH string "XTZ-USD" ;
PAIR ;
TRANSFER_TOKENS ;
CONS }
{ DROP ;
DUP ;
CAR ;
CAR ;
CAR ;
GET 3 ;
SENDER ;
MEM ;
IF { PUSH string "IN_BLACKLIST" ; FAILWITH } {} ;
DUP ;
CAR ;
GET 3 ;
GET 4 ;
SENDER ;
MEM ;
IF { PUSH string "IN_FOMOS_ALREADY" ; FAILWITH } {} ;
DUP ;
CAR ;
CAR ;
GET 6 ;
NOW ;
COMPARE ;
GE ;
IF
{ DUP ;
CAR ;
CAR ;
GET 5 ;
PUSH int 60 ;
SWAP ;
MUL ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
GET 6 ;
ADD ;
NOW ;
COMPARE ;
LE }
{ PUSH bool False } ;
IF {} { PUSH string "NOT_IN_REGISTER_TIME" ; FAILWITH } ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
PUSH (option unit) (Some Unit) ;
SENDER ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
NIL operation } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
GET 4 ;
NOW ;
COMPARE ;
GE ;
IF {} { PUSH string "SALE_NOT_START" ; FAILWITH } ;
NIL operation ;
DUP 3 ;
CAR ;
CAR ;
GET 3 ;
CAR ;
CONTRACT %update_token_metadata (list (pair (nat %token_id)
(map %token_info
string
bytes))) ;
IF_NONE { PUSH int 185 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
DUP 5 ;
CDR ;
DIG 5 ;
CAR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
NIL operation } } } }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CAR ;
CAR ;
IF { PUSH string "PROVENANCE_IS_LOCK" ; FAILWITH } {} ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
CDR ;
PUSH bool True ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
DIG 5 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 5 ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
DUP ;
ITER { IF_LEFT
{ DIG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option unit) (Some Unit) ;
DIG 7 ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP }
{ DIG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
NONE unit ;
DIG 7 ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP } } ;
DROP } } ;
NIL operation }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 7 ;
CDR ;
SOME ;
DIG 7 ;
CAR ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
NIL operation }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
GET 3 ;
NOW ;
COMPARE ;
GE ;
IF {} { PUSH string "SALE_NOT_END" ; FAILWITH } ;
NIL operation ;
DUP 3 ;
CAR ;
CAR ;
GET 3 ;
CAR ;
CONTRACT %update_token_metadata (list (pair (nat %token_id)
(map %token_info
string
bytes))) ;
IF_NONE { PUSH int 193 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
NIL (pair address nat) ;
SWAP ;
DUP ;
DUG 2 ;
ITER { SWAP ; DUP 4 ; GET 10 ; DIG 2 ; PAIR ; CONS } ;
SWAP ;
DROP ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
PUSH bool True ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
NIL operation ;
DUP 3 ;
GET 7 ;
CAR ;
CONTRACT %balance_of (pair
(list %requests (pair (address %owner)
(nat %token_id)))
(contract %callback (list (pair
(pair %request
(address %owner)
(nat %token_id))
(nat %balance))))) ;
IF_NONE { PUSH int 243 ; FAILWITH } {} ;
PUSH mutez 0 ;
SELF_ADDRESS ;
CONTRACT %voucher_fa2_callback (list (pair
(pair %request
(address %owner)
(nat %token_id))
(nat %balance))) ;
IF_NONE { PUSH int 244 ; FAILWITH } {} ;
DIG 4 ;
PAIR ;
TRANSFER_TOKENS ;
CONS }
{ SWAP ;
DUP ;
DUG 2 ;
GET 7 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_voucher_FA2" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 7 ;
CDR ;
IF {} { PUSH string "NOT_CALLBACK_EXPECTED" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
PUSH bool False ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PUSH nat 0 ;
NIL operation ;
DUP 3 ;
ITER { DUP ;
CDR ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "BALANCE <> 0" ; FAILWITH } ;
PUSH nat 20 ;
DUP 6 ;
GET 9 ;
EDIV ;
IF_NONE { PUSH int 257 ; FAILWITH } {} ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MUL ;
DIG 3 ;
ADD ;
DUG 2 ;
PUSH nat 20 ;
DUP 6 ;
GET 9 ;
EDIV ;
IF_NONE { PUSH int 257 ; FAILWITH } {} ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MUL ;
PUSH nat 0 ;
DUP ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { 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 8 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
NIL bytes ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
EQ ;
IF { PUSH bytes 0x00 ; CONS } {} ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { DUP 3 ;
PUSH nat 10 ;
DUP 4 ;
EDIV ;
IF_NONE { PUSH int 58 ; FAILWITH } { CDR } ;
GET ;
IF_NONE { PUSH int 58 ; FAILWITH } {} ;
CONS ;
PUSH nat 10 ;
DIG 2 ;
EDIV ;
IF_NONE { PUSH int 59 ; FAILWITH } { CAR } ;
SWAP ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
GT } ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 4 ;
DUP 8 ;
CAR ;
CAR ;
GET 3 ;
CAR ;
CONTRACT %mint (pair
(pair (address %address)
(nat %amount))
(pair (nat %token_id)
(map %token_info string
bytes))) ;
IF_NONE { PUSH int 269 ; FAILWITH } {} ;
PUSH mutez 0 ;
EMPTY_MAP string bytes ;
DIG 4 ;
CONCAT ;
DUP 11 ;
GET 3 ;
GET 3 ;
CDR ;
CONCAT ;
SOME ;
PUSH string "" ;
UPDATE ;
DIG 9 ;
DUP ;
CAR ;
CAR ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 11 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
ADD ;
PAIR ;
PUSH nat 1 ;
DUP 8 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUG 3 ;
DIG 6 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
CAR ;
GET 7 ;
SWAP ;
DUP ;
DUG 8 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
COMPARE ;
GT ;
IF
{ DIG 6 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CDR ;
PUSH nat 1 ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 6 }
{} ;
DIG 6 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 6 ;
PUSH nat 1 ;
ADD ;
DUP ;
DUP 3 ;
COMPARE ;
GT } ;
DROP 3 } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 5 ;
GET 9 ;
COMPARE ;
GT ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
DUP 5 ;
GET 9 ;
SUB ;
ABS ;
PUSH nat 0 ;
DUP ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { 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 7 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
NIL bytes ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
EQ ;
IF { PUSH bytes 0x00 ; CONS } {} ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { DUP 3 ;
PUSH nat 10 ;
DUP 4 ;
EDIV ;
IF_NONE { PUSH int 58 ; FAILWITH } { CDR } ;
GET ;
IF_NONE { PUSH int 58 ; FAILWITH } {} ;
CONS ;
PUSH nat 10 ;
DIG 2 ;
EDIV ;
IF_NONE { PUSH int 59 ; FAILWITH } { CAR } ;
SWAP ;
PUSH nat 0 ;
DUP 3 ;
COMPARE ;
GT } ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 3 ;
DUP 7 ;
CAR ;
CAR ;
GET 3 ;
CAR ;
CONTRACT %mint (pair
(pair (address %address)
(nat %amount))
(pair (nat %token_id)
(map %token_info string bytes))) ;
IF_NONE { PUSH int 269 ; FAILWITH } {} ;
PUSH mutez 0 ;
EMPTY_MAP string bytes ;
DIG 4 ;
CONCAT ;
DUP 10 ;
GET 3 ;
GET 3 ;
CDR ;
CONCAT ;
SOME ;
PUSH string "" ;
UPDATE ;
DIG 8 ;
DUP ;
CAR ;
CAR ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 10 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
ADD ;
PAIR ;
PUSH nat 1 ;
DUP 10 ;
CAR ;
CAR ;
CAR ;
CAR ;
CAR ;
PAIR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUG 2 ;
DIG 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
CAR ;
GET 7 ;
SWAP ;
DUP ;
DUG 7 ;
GET 3 ;
CAR ;
CAR ;
CAR ;
COMPARE ;
GT ;
IF
{ DIG 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CDR ;
PUSH nat 1 ;
PAIR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 5 }
{} ;
DIG 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 5 ;
PUSH nat 1 ;
ADD ;
DUP ;
DUP 3 ;
COMPARE ;
GT } ;
DROP 2 ;
SWAP ;
DROP ;
SWAP ;
DROP }
{ SWAP ; DROP ; SWAP ; DROP } } } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR }