x
794
1438
parameter (or
(or
(or (address %add_manager)
(or
(map %airdrop nat (list (pair (nat %amount) (address %recipient))))
(pair %balance_of
(list %requests (pair (address %owner) (nat %token_id)))
(contract %callback (list (pair
(pair %request (address %owner)
(nat %token_id))
(nat %balance)))))))
(or
(or
(list %burn (pair (address %from_) (pair (nat %token_id) (nat %amount))))
(pair %claim
(pair (nat %amount)
(list %burn_tokens (pair (address %address) (nat %token_id))))
(pair (option %condition_extra bytes)
(pair (option %proxy_for address) (nat %token_id)))))
(or
(pair %create_claim (nat %token_id)
(pair (timestamp %start_time)
(pair (timestamp %end_time)
(pair (mutez %price)
(pair
(list %burn_recipe (map address
(map
(option nat)
nat)))
(pair (nat %max_per_wallet)
(pair
(nat %airdrop_capacity)
(pair
(pair %split
(map %shares
address
nat)
(nat %total))
(option %condition (pair
(address %address)
(bytes %id)))))))))))
(map %create_token string bytes))))
(or
(or
(or (pair %lock (bool %metadata) (pair (bool %mint) (nat %token_id)))
(pair %mint (list %mint_items (pair (nat %amount) (address %to_)))
(nat %token_id)))
(or (address %remove_manager) (address %set_administrator)))
(or
(or (big_map %set_metadata string bytes)
(list %transfer (pair (address %from_)
(list %txs (pair (address %to_)
(pair (nat %token_id)
(nat %amount)))))))
(or
(list %update_operators (or
(pair %add_operator (address %owner)
(pair (address %operator)
(nat %token_id)))
(pair %remove_operator (address %owner)
(pair
(address %operator)
(nat %token_id)))))
(list %update_token_metadata (pair (nat %token_id)
(map %token_info string bytes)))))));
storage (pair
(pair
(pair (address %administrator) (big_map %claimed (pair address nat) nat))
(pair
(big_map %claims nat
(pair
(pair
(pair (nat %airdrop_capacity)
(list %burn_recipe (map address
(map (option nat) nat))))
(pair
(option %condition (pair (address %address)
(bytes %id)))
(timestamp %end_time)))
(pair (pair (nat %max_per_wallet) (mutez %price))
(pair
(pair %split (map %shares address nat)
(nat %total))
(timestamp %start_time)))))
(pair (nat %last_token_id) (big_map %ledger (pair address nat) nat))))
(pair
(pair (big_map %locked nat (pair (bool %metadata) (bool %mint)))
(pair (big_map %managers address unit)
(big_map %metadata string bytes)))
(pair
(big_map %operators
(pair (address %owner) (pair (address %operator) (nat %token_id)))
unit)
(pair (big_map %supply nat nat)
(big_map %token_metadata nat
(pair (nat %token_id)
(map %token_info string bytes)))))));
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option unit) (Some Unit) ;
DIG 6 ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
NIL operation }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; SENDER ; MEM } ;
IF {} { PUSH string "FA2_NOT_MANAGER" ; FAILWITH } ;
DUP ;
ITER { DUP 3 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF {} { PUSH string "OE_NO_SALE" ; FAILWITH } ;
DUP ;
CDR ;
ITER { DUP 4 ;
CAR ;
GET 3 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 420 ; FAILWITH } {} ;
CAR ;
CAR ;
CAR ;
DUP 3 ;
CAR ;
DUP 3 ;
CDR ;
PAIR ;
DUP 6 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 8 ;
CAR ;
DIG 11 ;
CAR ;
GET 6 ;
DUP 8 ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
ADD ;
SOME ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
GET 7 ;
DUP ;
DUP 6 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 426 ; FAILWITH } {} ;
DUP 6 ;
CAR ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 7 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DUP ;
DUP 8 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 427 ; FAILWITH } {} ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 9 ;
CAR ;
DIG 9 ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH string "OE_AIRDROP_CAP_REACHED" ; FAILWITH }
{} ;
PAIR ;
PAIR ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 } ;
DROP } ;
DROP ;
NIL operation }
{ NIL operation ;
DUP ;
DUP 3 ;
CDR ;
PUSH mutez 0 ;
DUP 5 ;
CAR ;
MAP { DUP 7 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP 7 ;
CAR ;
GET 6 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 3 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SWAP ;
PAIR } ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
TRANSFER_TOKENS ;
CONS } } }
{ IF_LEFT
{ IF_LEFT
{ DUP ;
ITER { DUP 3 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP 3 ; GET 5 ; SWAP ; DUP ; DUG 2 ; GET 3 ; SENDER ; DUP 4 ; CAR ; PAIR 3 ; MEM } ;
IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ;
DUP 3 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 6 ;
GET 4 ;
DIG 8 ;
CAR ;
GET 6 ;
DIG 7 ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 9 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH }
{} ;
SOME ;
DIG 6 ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 8 ;
CAR ;
PAIR ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 ;
DUP ;
GET 4 ;
DUP 4 ;
GET 7 ;
DUP 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SUB ;
ISNAT ;
IF_NONE
{ DIG 2 ;
DUP ;
GET 7 ;
PUSH (option nat) (Some 0) ;
DIG 3 ;
GET 3 ;
UPDATE ;
UPDATE 7 ;
SWAP }
{ DIG 3 ; DUP ; GET 7 ; DIG 2 ; SOME ; DIG 3 ; GET 3 ; UPDATE ; UPDATE 7 ; SWAP } } ;
DROP ;
NIL operation }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
MEM ;
IF {} { PUSH string "OE_NO_SALE_ACTIVE" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
GET ;
IF_NONE { PUSH int 236 ; FAILWITH } {} ;
DUP ;
GET 6 ;
NOW ;
COMPARE ;
GE ;
IF
{ DUP ; CAR ; GET 4 ; NOW ; COMPARE ; LE }
{ PUSH bool False } ;
IF {} { PUSH string "OE_NOT_IN_SALE_TIME" ; FAILWITH } ;
SENDER ;
DUP 3 ;
GET 5 ;
IF_NONE {} { SWAP ; DROP } ;
DUP 3 ;
GET 6 ;
SWAP ;
DUP ;
DUG 2 ;
PAIR ;
PUSH nat 0 ;
DUP 5 ;
CAR ;
CAR ;
COMPARE ;
GT ;
IF {} { PUSH string "OE_WRONG_AMOUNT" ; FAILWITH } ;
PUSH nat 0 ;
DUP 4 ;
GET 3 ;
CAR ;
COMPARE ;
GT ;
IF
{ DUP 5 ;
CAR ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
DUP 4 ;
GET 3 ;
CAR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 261 ; FAILWITH } {} ;
DUP 5 ;
CAR ;
CAR ;
COMPARE ;
LE ;
IF {} { PUSH string "OE_MAX_REACHED" ; FAILWITH } }
{} ;
DUP 5 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP 8 ;
CAR ;
CAR ;
DIG 9 ;
CAR ;
CAR ;
CDR ;
DUP 7 ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
ADD ;
SOME ;
DUP 6 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUG 4 ;
PUSH nat 0 ;
DUP 4 ;
CAR ;
CAR ;
CDR ;
SIZE ;
COMPARE ;
GT ;
IF
{ DUP 4 ;
CAR ;
CDR ;
NIL operation ;
DUP 6 ;
CAR ;
CAR ;
PUSH nat 0 ;
DUP ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { DUP 7 ;
CAR ;
CAR ;
CDR ;
ITER { DIG 4 ;
IF_CONS
{ SWAP ;
DUP ;
DUG 2 ;
DUG 6 ;
DUP 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ PUSH string "OE_REDEEM_MISTMACH_FA2" ;
FAILWITH } ;
DUP 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 279 ; FAILWITH } {} ;
NONE nat ;
SWAP ;
DUP ;
DUG 2 ;
NONE nat ;
MEM ;
IF
{ DIG 3 ; DROP ; DIG 3 ; DROP }
{ DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
SOME ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{}
{ PUSH string "OE_REDEEM_MISTMATCH_ID" ;
FAILWITH } } ;
DIG 5 ;
DUP 4 ;
CAR ;
CONTRACT %transfer (list (pair
(address %from_)
(list %txs (pair
(address %to_)
(pair
(nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 490 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address
(list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
DIG 6 ;
DIG 6 ;
GET ;
IF_NONE { PUSH int 294 ; FAILWITH } {} ;
DIG 6 ;
CDR ;
PUSH address 0x0000b28066369a8ed09ba9d3d47f19598440266013f0 ;
PAIR 3 ;
CONS ;
SENDER ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
DUG 2 }
{ PUSH string "OE_MISSING_BURN" ; FAILWITH } } ;
PUSH nat 1 ;
ADD ;
DUP ;
DUP 3 ;
COMPARE ;
GT } ;
DROP 2 ;
SWAP ;
DROP }
{ NIL operation } ;
PUSH mutez 0 ;
DUP 5 ;
GET 3 ;
CDR ;
COMPARE ;
GT ;
IF
{ DUP 4 ;
GET 3 ;
CDR ;
DUP 6 ;
CAR ;
CAR ;
MUL ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "OE_WRONG_AMOUNT" ; FAILWITH } ;
DUP 4 ;
GET 5 ;
CAR ;
ITER { DUP 5 ;
GET 5 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
AMOUNT ;
MUL ;
EDIV ;
IF_NONE { PUSH int 306 ; FAILWITH } {} ;
CAR ;
DUP ;
PUSH mutez 0 ;
COMPARE ;
LT ;
IF
{ DUG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 310 ; FAILWITH } {} ;
DIG 2 ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP 2 } } }
{} ;
DUP 4 ;
CAR ;
GET 3 ;
IF_NONE
{ DIG 2 ; DROP ; DIG 2 ; DROP }
{ DIG 4 ;
DROP ;
DUP ;
DUG 2 ;
CAR ;
CONTRACT %enforce_conditions (list (pair
(pair (nat %amount)
(address %claimer))
(pair
(bytes %condition_id)
(pair
(option %extra bytes)
(pair %token
(address %address)
(nat %token_id)))))) ;
IF_NONE { PUSH int 27 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair (pair nat address)
(pair bytes
(pair (option bytes) (pair address nat)))) ;
DUP 8 ;
GET 6 ;
SELF_ADDRESS ;
PAIR ;
DUP 9 ;
GET 3 ;
PAIR ;
DIG 5 ;
CDR ;
PAIR ;
DIG 6 ;
DUP 8 ;
CAR ;
CAR ;
PAIR ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS } ;
DUP 4 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 8 ;
CAR ;
CAR ;
DIG 9 ;
CAR ;
GET 6 ;
DUP 9 ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
ADD ;
SOME ;
DIG 7 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
GET 7 ;
DUP ;
DUP 5 ;
GET 6 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 333 ; FAILWITH } {} ;
DUP 6 ;
CAR ;
CAR ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 7 ;
DUP ;
DUG 3 ;
GET 3 ;
CAR ;
DUP 3 ;
GET 6 ;
MEM ;
IF
{ DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP ;
DIG 6 ;
GET 6 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 339 ; FAILWITH } {} ;
PUSH bool True ;
UPDATE 2 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP }
{ DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option (pair bool bool)) (Some (Pair False True)) ;
DIG 6 ;
GET 6 ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; SENDER ; MEM } ;
IF {} { PUSH string "FA2_NOT_MANAGER" ; FAILWITH } ;
PUSH nat 0 ;
DUP 3 ;
GET 7 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 179 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH string "OE_TOKEN_EXISTS" ; FAILWITH } ;
DUP ;
GET 9 ;
ITER { DUP ;
SIZE ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "OE_NO_BURN_OPT" ; FAILWITH } ;
DUP ;
ITER { CDR ;
SIZE ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{}
{ PUSH string "OE_BURN_OPT_EMPTY" ; FAILWITH } } ;
DROP } ;
SWAP ;
DUP ;
DUG 2 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF {} { PUSH string "OE_TOKEN_N_EXISTS" ; FAILWITH } ;
DUP ;
GET 15 ;
CDR ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "OE_NO_TOTAL" ; FAILWITH } ;
PUSH nat 0 ;
SWAP ;
DUP ;
DUG 2 ;
GET 15 ;
CAR ;
ITER { CDR ; ADD } ;
SWAP ;
DUP ;
DUG 2 ;
GET 15 ;
CDR ;
COMPARE ;
EQ ;
IF {} { PUSH string "OE_SHARE_MISMATCH" ; FAILWITH } ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
SUB ;
PUSH int 300 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH string "OE_AT_LEAST_300" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
DIG 4 ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 6 ;
GET 15 ;
PAIR ;
DIG 5 ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
DUG 7 ;
GET 11 ;
PAIR ;
PAIR ;
DIG 5 ;
DUP ;
GET 5 ;
SWAP ;
DUP ;
DUG 7 ;
GET 16 ;
PAIR ;
DIG 6 ;
DUP ;
GET 9 ;
SWAP ;
DUP ;
DUG 8 ;
GET 13 ;
PAIR ;
PAIR ;
PAIR ;
SOME ;
DIG 5 ;
CAR ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; SENDER ; MEM } ;
IF {} { PUSH string "FA2_NOT_MANAGER" ; FAILWITH } ;
PUSH nat 1 ;
DUP 3 ;
CAR ;
GET 5 ;
ADD ;
DIG 2 ;
DUP ;
GET 8 ;
DIG 3 ;
DUP 4 ;
PAIR ;
SOME ;
DUP 4 ;
UPDATE ;
UPDATE 8 ;
DUP ;
GET 7 ;
PUSH (option nat) (Some 0) ;
DIG 3 ;
UPDATE ;
UPDATE 7 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR } ;
NIL operation } } }
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; SENDER ; MEM } ;
IF {} { PUSH string "FA2_NOT_MANAGER" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
GET 4 ;
MEM ;
IF {} { PUSH string "OE_TOKEN_MISSING" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
GET 4 ;
GET ;
IF_NONE { PUSH (pair bool bool) (Pair False False) } {} ;
DUP ;
CAR ;
IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR } ;
UPDATE 1 ;
DUP ;
CDR ;
IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; GET 3 } ;
UPDATE 2 ;
DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DIG 4 ;
SOME ;
DIG 5 ;
GET 4 ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; SENDER ; MEM } ;
IF {} { PUSH string "FA2_NOT_MANAGER" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF {} { PUSH string "OE_TOKEN_N_EXTIST" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
GET ;
IF_NONE { PUSH int 452 ; FAILWITH } {} ;
CDR ;
NOT }
{ PUSH bool True } ;
IF {} { PUSH string "OE_MINT_LOCKED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF
{ NOW ;
DUP 3 ;
CAR ;
GET 3 ;
DUP 3 ;
CDR ;
GET ;
IF_NONE { PUSH int 459 ; FAILWITH } {} ;
CAR ;
GET 4 ;
COMPARE ;
LT }
{ PUSH bool True } ;
IF {} { PUSH string "OE_TOKEN_CONFIGURED_FOR_SALE" ; FAILWITH } ;
PUSH nat 0 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
ITER { DUP 4 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 6 ;
CAR ;
DIG 9 ;
CAR ;
GET 6 ;
DUP 10 ;
CDR ;
DUP 9 ;
CDR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
ADD ;
SOME ;
DUP 9 ;
CDR ;
DUP 8 ;
CDR ;
PAIR ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 3 ;
CAR ;
ADD } ;
DUP 3 ;
GET 7 ;
DUP 3 ;
CDR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
DIG 3 ;
DUP ;
GET 7 ;
DIG 3 ;
DIG 3 ;
ADD ;
SOME ;
DIG 3 ;
CDR ;
UPDATE ;
UPDATE 7 } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
NONE unit ;
DIG 6 ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 3 ;
PAIR ;
PAIR ;
PAIR } } }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ DUP ;
ITER { DUP ;
CDR ;
ITER { DUP 4 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF
{}
{ PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP 4 ;
GET 5 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
DUP 5 ;
CAR ;
PAIR 3 ;
MEM } ;
IF
{}
{ PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ;
DUP ;
GET 4 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP 4 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 6 ;
GET 4 ;
DIG 9 ;
CAR ;
GET 6 ;
DUP 8 ;
GET 3 ;
DUP 10 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH string "FA2_INSUFFICIENT_BALANCE" ;
FAILWITH }
{} ;
SOME ;
DUP 7 ;
GET 3 ;
DUP 9 ;
CAR ;
PAIR ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 4 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 6 ;
GET 4 ;
DIG 9 ;
CAR ;
GET 6 ;
DIG 7 ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 9 ;
CAR ;
PAIR ;
GET ;
IF_NONE { PUSH nat 0 } {} ;
ADD ;
SOME ;
DIG 6 ;
DUP ;
GET 3 ;
SWAP ;
CAR ;
PAIR ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 2 }
{ DROP } } ;
DROP } ;
DROP } }
{ IF_LEFT
{ DUP ;
ITER { IF_LEFT
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ;
DIG 2 ;
DUP ;
GET 5 ;
PUSH (option unit) (Some Unit) ;
DIG 3 ;
UPDATE ;
UPDATE 5 ;
SWAP }
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ;
DIG 2 ;
DUP ;
GET 5 ;
NONE unit ;
DIG 3 ;
UPDATE ;
UPDATE 5 ;
SWAP } } ;
DROP }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ; DUP ; DUG 2 ; GET 3 ; GET 3 ; SENDER ; MEM } ;
IF {} { PUSH string "FA2_NOT_MANAGER" ; FAILWITH } ;
DUP ;
ITER { DUP 3 ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ DUP 3 ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 357 ; FAILWITH } {} ;
CAR ;
NOT }
{ PUSH bool True } ;
IF {} { PUSH string "OE_TOKEN_LOCKED" ; FAILWITH } ;
DIG 2 ;
DUP ;
GET 8 ;
DIG 2 ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 4 ;
CAR ;
PAIR ;
SOME ;
DIG 3 ;
CAR ;
UPDATE ;
UPDATE 8 ;
SWAP } ;
DROP } } } ;
NIL operation } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR }