x
802
1264
parameter (or
(or
(or (nat %cancel_swap)
(or (pair %collect (nat %swap_id) (nat %token_amount))
(list %handle_fee_callback (pair
(pair (address %creator)
(map %royalties address nat))
(pair (nat %token_id)
(nat %total_royalties))))))
(or (mutez %set_lowest_price)
(or (pair %set_metadata (string %k) (bytes %v))
(pair %swap
(pair (map %revenue_share address nat) (nat %token_amount))
(pair (address %token_fa2)
(pair (nat %token_id) (mutez %xtz_per_token)))))))
(or
(or
(list %update_akaDAO_fa2_whitelist (or (address %add_address)
(address %remove_address)))
(or
(list %update_akaDAO_issuer_blacklist (or (address %add_address)
(address %remove_address)))
(nat %update_collect_limit)))
(or (nat %update_management_fee)
(or (address %update_manager)
(list %update_swap_fa2_whitelist (or (address %add_address)
(address %remove_address)))))));
storage (pair
(pair
(pair (address %akaDAOAdmin)
(pair (big_map %akaDAO_fa2_whitelist address unit)
(big_map %akaDAO_issuer_blacklist address unit)))
(pair (pair (address %akaRoyalty) (bool %akaRoyalty_callback_expected))
(pair (nat %collect_limit) (mutez %handle_fee_amount))))
(pair
(pair (pair (nat %handle_fee_swap_id) (mutez %lowest_price))
(pair (nat %management_fee) (address %manager)))
(pair
(pair (big_map %metadata string bytes)
(big_map %swap_fa2_whitelist address unit))
(pair (nat %swap_id)
(big_map %swaps nat
(pair
(pair (address %issuer)
(pair (map %revenue_share address nat)
(nat %token_amount)))
(pair (address %token_fa2)
(pair (nat %token_id) (mutez %xtz_per_token)))))))));
code { UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 144 ; FAILWITH } {} ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ SWAP ; DUP ; DUG 2 ; GET 3 ; GET 4 ; SENDER ; COMPARE ; EQ } ;
IF {} { PUSH string "NOT_ISSUER_OR_MANAGER" ; FAILWITH } ;
NIL operation ;
DUP 3 ;
GET 8 ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 145 ; FAILWITH } {} ;
GET 3 ;
CONTRACT %transfer (list (pair address
(list (pair address (pair nat nat))))) ;
IF_NONE { PUSH int 228 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
DUP 7 ;
GET 8 ;
DUP 7 ;
GET ;
IF_NONE { PUSH int 145 ; FAILWITH } {} ;
CAR ;
GET 4 ;
DUP 8 ;
GET 8 ;
DUP 8 ;
GET ;
IF_NONE { PUSH int 145 ; FAILWITH } {} ;
GET 5 ;
DUP 9 ;
GET 8 ;
DUP 9 ;
GET ;
IF_NONE { PUSH int 145 ; FAILWITH } {} ;
CAR ;
CAR ;
PAIR 3 ;
CONS ;
SELF_ADDRESS ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
DIG 2 ;
DUP ;
GET 8 ;
NONE (pair (pair address (pair (map address nat) nat))
(pair address (pair nat mutez))) ;
DIG 4 ;
UPDATE ;
UPDATE 8 ;
SWAP }
{ IF_LEFT
{ DUP ;
CDR ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 157 ; FAILWITH } {} ;
CAR ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
COMPARE ;
LE }
{ PUSH bool False } ;
IF
{ SWAP ; DUP ; DUG 2 ; CAR ; GET 5 ; SWAP ; DUP ; DUG 2 ; CDR ; COMPARE ; LE }
{ PUSH bool False } ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 157 ; FAILWITH } {} ;
CAR ;
CAR ;
SENDER ;
COMPARE ;
NEQ }
{ PUSH bool False } ;
IF {} { PUSH string "BASIC_WRONG" ; FAILWITH } ;
PUSH mutez 0 ;
DUP 3 ;
GET 8 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 165 ; FAILWITH } {} ;
GET 6 ;
COMPARE ;
NEQ ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
GET 8 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 167 ; FAILWITH } {} ;
GET 6 ;
AMOUNT ;
EDIV ;
IF_NONE { PUSH int 167 ; FAILWITH } {} ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
COMPARE ;
EQ ;
IF
{ PUSH mutez 1 ;
DUP ;
DUP 4 ;
GET 8 ;
DUP 4 ;
CAR ;
GET ;
IF_NONE { PUSH int 169 ; FAILWITH } {} ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 169 ; FAILWITH } {} ;
CAR ;
DUP 4 ;
GET 8 ;
DUP 4 ;
CAR ;
GET ;
IF_NONE { PUSH int 167 ; FAILWITH } {} ;
GET 6 ;
AMOUNT ;
EDIV ;
IF_NONE { PUSH int 167 ; FAILWITH } {} ;
CAR ;
MUL ;
MUL ;
AMOUNT ;
COMPARE ;
EQ }
{ PUSH bool False } ;
IF
{ PUSH mutez 0 ; AMOUNT ; COMPARE ; GT }
{ PUSH bool False } ;
IF
{}
{ PUSH string "WrongCondition: ((params.token_amount == sp.fst(sp.ediv(sp.amount, self.data.swaps[params.swap_id].xtz_per_token).open_some())) & (sp.amount == sp.mul(sp.fst(sp.ediv(sp.amount, self.data.swaps[params.swap_id].xtz_per_token).open_some()) * sp.fst(sp.ediv(self.data.swaps[params.swap_id].xtz_per_token, sp.mutez(1)).open_some()), sp.mutez(1)))) & (sp.amount > sp.tez(0))" ;
FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
PUSH bool True ;
SWAP ;
PAIR ;
SWAP ;
CAR ;
AMOUNT ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
CDR ;
DUP 5 ;
CAR ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
NIL operation ;
DUP 3 ;
CAR ;
GET 3 ;
CAR ;
CONTRACT %get_royalty (pair
(contract (list (pair
(pair address
(map address
nat))
(pair nat nat))))
(list (pair address nat))) ;
IF_NONE { PUSH int 177 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address nat) ;
DUP 6 ;
GET 8 ;
DUP 6 ;
CAR ;
GET ;
IF_NONE { PUSH int 179 ; FAILWITH } {} ;
GET 5 ;
DUP 7 ;
GET 8 ;
DUP 7 ;
CAR ;
GET ;
IF_NONE { PUSH int 179 ; FAILWITH } {} ;
GET 3 ;
PAIR ;
CONS ;
SELF_ADDRESS ;
CONTRACT %handle_fee_callback (list (pair
(pair address
(map address nat))
(pair nat nat))) ;
IF_NONE { PUSH int 178 ; FAILWITH } {} ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DIG 2 ;
DUP ;
CAR ;
CAR ;
GET 3 ;
SWAP ;
DUP ;
DUG 4 ;
GET 8 ;
DUP 4 ;
CAR ;
GET ;
IF_NONE { PUSH int 182 ; FAILWITH } {} ;
GET 3 ;
MEM ;
IF
{ DIG 2 ;
DUP ;
CAR ;
CAR ;
GET 4 ;
SWAP ;
DUP ;
DUG 4 ;
GET 8 ;
DUP 4 ;
CAR ;
GET ;
IF_NONE { PUSH int 182 ; FAILWITH } {} ;
CAR ;
CAR ;
MEM ;
NOT }
{ PUSH bool False } ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
CDR ;
PUSH nat 0 ;
DUP ;
DUP 3 ;
COMPARE ;
GT ;
LOOP { DIG 2 ;
DUP 5 ;
CAR ;
CAR ;
CAR ;
CONTRACT %assign_akaDAO (pair address
(pair address nat)) ;
IF_NONE { PUSH int 184 ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH mutez 1 ;
DUP 8 ;
GET 8 ;
DUP 8 ;
CAR ;
GET ;
IF_NONE { PUSH int 183 ; FAILWITH } {} ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 183 ; FAILWITH } {} ;
CAR ;
DUP 8 ;
GET 8 ;
DUP 8 ;
CAR ;
GET ;
IF_NONE { PUSH int 186 ; FAILWITH } {} ;
CAR ;
CAR ;
SENDER ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS ;
DUG 2 ;
PUSH nat 1 ;
ADD ;
DUP ;
DUP 3 ;
COMPARE ;
GT } ;
DROP 2 }
{} }
{ NIL operation } ;
DUP 3 ;
GET 8 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 188 ; FAILWITH } {} ;
GET 3 ;
CONTRACT %transfer (list (pair address
(list (pair address (pair nat nat))))) ;
IF_NONE { PUSH int 228 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
DUP 6 ;
CDR ;
DUP 8 ;
GET 8 ;
DUP 8 ;
CAR ;
GET ;
IF_NONE { PUSH int 188 ; FAILWITH } {} ;
GET 5 ;
SENDER ;
PAIR 3 ;
CONS ;
SELF_ADDRESS ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
DUP 3 ;
DUP ;
GET 8 ;
DUP ;
DUP 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 190 ; FAILWITH } {} ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
DUP 8 ;
CDR ;
DIG 9 ;
GET 8 ;
DIG 9 ;
CAR ;
GET ;
IF_NONE { PUSH int 190 ; FAILWITH } {} ;
CAR ;
GET 4 ;
SUB ;
ABS ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 8 ;
SWAP }
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_AKAROYALTY" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 3 ;
CDR ;
IF {} { PUSH string "NOT_CALLBACK_EXPECTED" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
PUSH bool False ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
DUP ;
NIL operation ;
SWAP ;
ITER { DUP 4 ;
GET 3 ;
GET 3 ;
SWAP ;
DUP ;
DUG 2 ;
GET 4 ;
ADD ;
SWAP ;
DUP ;
DUG 2 ;
GET 4 ;
PUSH nat 1000 ;
DUP 7 ;
GET 3 ;
GET 3 ;
DUP 5 ;
GET 4 ;
ADD ;
PUSH mutez 1 ;
DUP 9 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } { CAR } ;
MUL ;
EDIV ;
IF_NONE { PUSH int 204 ; FAILWITH } { CAR } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
ITER { DUP 3 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
COMPARE ;
NEQ ;
IF
{ DIG 3 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 237 ; FAILWITH } {} ;
PUSH mutez 1 ;
DUP 6 ;
GET 4 ;
DUP 5 ;
CDR ;
DUP 10 ;
GET 3 ;
GET 3 ;
DUP 9 ;
GET 4 ;
ADD ;
DUP 9 ;
GET 4 ;
PUSH nat 1000 ;
DUP 13 ;
GET 3 ;
GET 3 ;
DUP 12 ;
GET 4 ;
ADD ;
PUSH mutez 1 ;
DUP 15 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } { CAR } ;
MUL ;
EDIV ;
IF_NONE { PUSH int 204 ; FAILWITH } { CAR } ;
MUL ;
EDIV ;
IF_NONE { PUSH int 236 ; FAILWITH } { CAR } ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUG 3 ;
DUP 3 ;
GET 4 ;
SWAP ;
CDR ;
DUP 7 ;
GET 3 ;
GET 3 ;
DUP 5 ;
GET 4 ;
ADD ;
DUP 5 ;
GET 4 ;
PUSH nat 1000 ;
DUP 10 ;
GET 3 ;
GET 3 ;
DUP 8 ;
GET 4 ;
ADD ;
PUSH mutez 1 ;
DUP 12 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } { CAR } ;
MUL ;
EDIV ;
IF_NONE { PUSH int 204 ; FAILWITH } { CAR } ;
MUL ;
EDIV ;
IF_NONE { PUSH int 236 ; FAILWITH } { CAR } ;
SWAP ;
SUB ;
ABS }
{ DROP } } ;
DUG 2 ;
DUP ;
DUG 3 ;
CAR ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 239 ; FAILWITH } {} ;
PUSH mutez 1 ;
DUP 4 ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUP 5 ;
GET 3 ;
GET 4 ;
CONTRACT unit ;
IF_NONE { PUSH int 216 ; FAILWITH } {} ;
PUSH mutez 1 ;
DUP 7 ;
GET 3 ;
GET 3 ;
DUP 6 ;
GET 4 ;
ADD ;
DUP 6 ;
GET 4 ;
PUSH nat 1000 ;
DUP 10 ;
GET 3 ;
GET 3 ;
DUP 9 ;
GET 4 ;
ADD ;
PUSH mutez 1 ;
DUP 12 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } { CAR } ;
MUL ;
EDIV ;
IF_NONE { PUSH int 204 ; FAILWITH } { CAR } ;
PUSH nat 1000 ;
DUP 9 ;
GET 3 ;
GET 3 ;
DUP 8 ;
GET 4 ;
ADD ;
PUSH mutez 1 ;
DUP 11 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } { CAR } ;
SUB ;
ABS ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUG 2 ;
PUSH nat 1000 ;
DUP 6 ;
GET 3 ;
GET 3 ;
DUP 4 ;
GET 4 ;
ADD ;
PUSH mutez 1 ;
DUP 8 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } { CAR } ;
PUSH mutez 1 ;
DUP 7 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
SUB ;
ABS ;
DIG 5 ;
DUP ;
GET 8 ;
SWAP ;
DUP ;
DUG 7 ;
GET 3 ;
CAR ;
CAR ;
GET ;
IF_NONE { PUSH int 219 ; FAILWITH } {} ;
CAR ;
GET 3 ;
ITER { DIG 6 ;
DUP ;
GET 8 ;
SWAP ;
DUP ;
DUG 8 ;
GET 3 ;
CAR ;
CAR ;
GET ;
IF_NONE { PUSH int 219 ; FAILWITH } {} ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
COMPARE ;
NEQ ;
IF
{ DIG 4 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 246 ; FAILWITH } {} ;
PUSH mutez 1 ;
PUSH nat 1000 ;
DUP 5 ;
CDR ;
PUSH nat 1000 ;
DUP 12 ;
GET 3 ;
GET 3 ;
DUP 11 ;
GET 4 ;
ADD ;
PUSH mutez 1 ;
DUP 14 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } { CAR } ;
PUSH mutez 1 ;
DUP 13 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
SUB ;
ABS ;
MUL ;
EDIV ;
IF_NONE { PUSH int 245 ; FAILWITH } { CAR } ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUG 4 ;
CDR ;
PUSH nat 1000 ;
SWAP ;
PUSH nat 1000 ;
DUP 9 ;
GET 3 ;
GET 3 ;
DUP 7 ;
GET 4 ;
ADD ;
PUSH mutez 1 ;
DUP 11 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } {} ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 203 ; FAILWITH } { CAR } ;
PUSH mutez 1 ;
DUP 10 ;
CAR ;
GET 6 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
SUB ;
ABS ;
MUL ;
EDIV ;
IF_NONE { PUSH int 245 ; FAILWITH } { CAR } ;
SWAP ;
SUB ;
ABS }
{ DROP } } ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DIG 3 ;
DUP ;
GET 8 ;
SWAP ;
DUP ;
DUG 5 ;
GET 3 ;
CAR ;
CAR ;
GET ;
IF_NONE { PUSH int 219 ; FAILWITH } {} ;
CAR ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 248 ; FAILWITH } {} ;
PUSH mutez 1 ;
DIG 3 ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS } ;
SWAP ;
DROP } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_MANAGER" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
NIL operation }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_MANAGER" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP 6 ;
CDR ;
SOME ;
DIG 6 ;
CAR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
NIL operation }
{ DUP ;
CAR ;
CDR ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "ZERO_AMOUNT" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
COMPARE ;
GE ;
IF {} { PUSH string "PRICE_TOO_LOW" ; FAILWITH } ;
PUSH nat 0 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
ITER { DUP ;
CDR ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{}
{ PUSH string "WrongCondition: revenue.value > 0" ;
FAILWITH } ;
CDR ;
ADD } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SENDER ;
MEM ;
IF
{}
{ PUSH string "WrongCondition: params.revenue_share.contains(sp.sender)" ;
FAILWITH } ;
PUSH nat 1000 ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "WrongCondition: totalRevenue.value == 1000" ;
FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF {} { PUSH string "NOT_ALLOWED_FA2_SWAP" ; FAILWITH } ;
DUP ;
GET 3 ;
CONTRACT %transfer (list (pair address
(list (pair address (pair nat nat))))) ;
IF_NONE { PUSH int 228 ; FAILWITH } {} ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
DIG 5 ;
DUP ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 7 ;
GET 5 ;
SELF_ADDRESS ;
PAIR 3 ;
CONS ;
SENDER ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
DUP 3 ;
DUP ;
GET 8 ;
DIG 3 ;
DUP ;
GET 6 ;
SWAP ;
DUP ;
DUG 5 ;
GET 5 ;
PAIR ;
DUP 5 ;
GET 3 ;
PAIR ;
DIG 4 ;
DUP ;
CAR ;
CDR ;
SWAP ;
CAR ;
CAR ;
PAIR ;
SENDER ;
PAIR ;
PAIR ;
SOME ;
DIG 4 ;
GET 7 ;
UPDATE ;
UPDATE 8 ;
DUP ;
GET 7 ;
PUSH nat 1 ;
ADD ;
UPDATE 7 ;
SWAP } } } }
{ IF_LEFT
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_MANAGER" ; FAILWITH } ;
DUP ;
ITER { IF_LEFT
{ DIG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH (option unit) (Some Unit) ;
DIG 6 ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP }
{ DIG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
NONE unit ;
DIG 6 ;
UPDATE ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP } } ;
DROP }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_MANAGER" ; FAILWITH } ;
DUP ;
ITER { IF_LEFT
{ DIG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
PUSH (option unit) (Some Unit) ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP }
{ DIG 2 ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
NONE unit ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP } } ;
DROP }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_MANAGER" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_MANAGER" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_MANAGER" ; FAILWITH } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "NOT_MANAGER" ; FAILWITH } ;
DUP ;
ITER { IF_LEFT
{ DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH (option unit) (Some Unit) ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP }
{ DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
NONE unit ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP } } ;
DROP } } } ;
NIL operation } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR }