x
960
1816
{ parameter (or
(or
(or
(pair %ask (pair %token (address %address) (nat %token_id))
(pair
(or %currency (address %fa12)
(or
(pair %fa2 (address %address)
(nat %token_id))
(unit %tez)))
(pair (nat %amount)
(pair (nat %editions)
(pair (map %shares address nat)
(pair (option %expiry_time timestamp)
(pair (nat %referral_bonus)
(option %condition (pair
(address %address)
(bytes %id))))))))))
(or (unit %default) (unit %delegate)))
(or
(pair %fulfill_ask (nat %ask_id)
(pair (nat %amount)
(pair (option %proxy_for address)
(pair (option %condition_extra bytes)
(map %referrers address nat)))))
(or
(pair %fulfill_ask_bulk
(pair
(map %asks nat
(pair (nat %amount) (option %condition_extra bytes)))
(bool %atomic))
(pair (option %proxy_for address) (map %referrers address nat)))
(pair %fulfill_offer (nat %offer_id)
(pair (option %token_id nat)
(option %condition_extra bytes))))))
(or
(or
(pair %fulfill_offer_bulk (bool %atomic)
(map %offers nat
(pair
(option %condition_extra bytes)
(option %token_id nat))))
(or
(pair %offer (pair %token (address %address) (option %token_id nat))
(pair
(or %currency (address %fa12)
(or
(pair %fa2 (address %address)
(nat %token_id))
(unit %tez)))
(pair (nat %amount)
(pair (map %shares address nat)
(pair (option %expiry_time timestamp)
(pair (map %referrers address nat)
(pair
(option %condition (pair
(address %address)
(bytes %id)))
(option %proxy_for address))))))))
(nat %retract_ask)))
(or (nat %retract_offer)
(or (address %update_fee_sharing_registry)
(address %update_permission_module))))) ;
storage (pair
(pair
(big_map %asks nat
(pair (address %creator)
(pair
(pair %token (address %address) (nat %token_id))
(pair
(or %currency (address %fa12)
(or
(pair %fa2 (address %address)
(nat %token_id))
(unit %tez)))
(pair (nat %amount)
(pair (nat %editions)
(pair (map %shares address nat)
(pair
(option %expiry_time timestamp)
(pair (nat %referral_bonus)
(pair
(nat %platform_fee)
(option %condition (pair
(address %address)
(bytes %id)))))))))))))
(pair (address %fee_sharing_registry) (big_map %metadata string bytes)))
(pair (pair (nat %next_ask_id) (nat %next_offer_id))
(pair
(big_map %offers nat
(pair (address %creator)
(pair
(pair %token (address %address)
(option %token_id nat))
(pair
(or %currency (address %fa12)
(or
(pair %fa2
(address %address)
(nat %token_id))
(unit %tez)))
(pair (nat %amount)
(pair (map %shares address nat)
(pair
(option %expiry_time timestamp)
(pair (nat %platform_fee)
(pair
(map %referrers
address
nat)
(option %condition (pair
(address %address)
(bytes %id))))))))))))
(address %permission_module)))) ;
code { LAMBDA
(pair (pair (map address (map address (map address nat))) (pair nat address))
(pair address (pair (map address nat) address)))
(map address (map address (map address nat)))
{ DUP ;
CAR ;
CAR ;
PUSH nat 0 ;
DUP 3 ;
GET 5 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
DUP 6 ;
CAR ;
GET 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 223 ; FAILWITH } { CAR } ;
DUP ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP 4 ;
DUP 6 ;
GET 3 ;
MEM ;
IF
{}
{ DIG 3 ;
PUSH (option (map address (map address nat))) (Some {}) ;
DUP 6 ;
GET 3 ;
UPDATE ;
DUG 3 } ;
DUP 4 ;
DUP 6 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 229 ; FAILWITH } {} ;
DUP 6 ;
CAR ;
GET 4 ;
MEM ;
IF
{}
{ DIG 3 ;
DUP ;
DUP 6 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 230 ; FAILWITH } {} ;
PUSH (option (map address nat)) (Some {}) ;
DUP 8 ;
CAR ;
GET 4 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
DUG 3 } ;
DUP 4 ;
DUP 6 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 231 ; FAILWITH } {} ;
DUP 6 ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 231 ; FAILWITH } {} ;
DUP 3 ;
CAR ;
MEM ;
IF
{ DIG 3 ;
DUP ;
DUP 6 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 232 ; FAILWITH } {} ;
DUP ;
DUP 8 ;
CAR ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 232 ; FAILWITH } {} ;
DUP ;
DIG 7 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 232 ; FAILWITH } {} ;
DIG 7 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SWAP }
{ DIG 3 ;
DUP ;
DUP 6 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 234 ; FAILWITH } {} ;
DUP ;
DUP 8 ;
CAR ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 234 ; FAILWITH } {} ;
DIG 5 ;
SOME ;
DIG 6 ;
CAR ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SWAP } }
{ DROP 2 } } ;
DUP ;
DUP 4 ;
CAR ;
GET 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 236 ; FAILWITH } {} ;
DUP 4 ;
CAR ;
GET 3 ;
DUP 3 ;
COMPARE ;
LE ;
IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
MEM ;
IF
{}
{ SWAP ;
PUSH (option (map address (map address nat))) (Some {}) ;
DUP 4 ;
GET 3 ;
UPDATE ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 242 ; FAILWITH } {} ;
DUP 4 ;
CAR ;
GET 4 ;
MEM ;
IF
{}
{ SWAP ;
DUP ;
DUP 4 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 243 ; FAILWITH } {} ;
PUSH (option (map address nat)) (Some {}) ;
DUP 6 ;
CAR ;
GET 4 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 244 ; FAILWITH } {} ;
DUP 4 ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 244 ; FAILWITH } {} ;
DUP 4 ;
GET 6 ;
MEM ;
IF
{ SWAP ;
DUP ;
DUP 4 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 245 ; FAILWITH } {} ;
DUP ;
DUP 6 ;
CAR ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 245 ; FAILWITH } {} ;
DUP ;
DIG 7 ;
GET 6 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 245 ; FAILWITH } {} ;
DIG 7 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE }
{ SWAP ;
DUP ;
DUP 4 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 247 ; FAILWITH } {} ;
DUP ;
DUP 6 ;
CAR ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 247 ; FAILWITH } {} ;
DIG 5 ;
SOME ;
DIG 6 ;
GET 6 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE } }
{ DROP 2 ; SWAP ; DROP } } ;
SWAP ;
LAMBDA
(pair
(pair (map address (map nat (map address (map address nat))))
(pair nat address))
(pair (pair address nat) (pair (map address nat) address)))
(map address (map nat (map address (map address nat))))
{ DUP ;
CAR ;
CAR ;
PUSH nat 0 ;
DUP 3 ;
GET 5 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
DUP 6 ;
CAR ;
GET 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 173 ; FAILWITH } { CAR } ;
DUP ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP 4 ;
DUP 6 ;
GET 3 ;
CAR ;
MEM ;
IF
{}
{ DIG 3 ;
PUSH (option (map nat (map address (map address nat)))) (Some {}) ;
DUP 6 ;
GET 3 ;
CAR ;
UPDATE ;
DUG 3 } ;
DUP 4 ;
DUP 6 ;
GET 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 179 ; FAILWITH } {} ;
DUP 6 ;
GET 3 ;
CDR ;
MEM ;
IF
{}
{ DIG 3 ;
DUP ;
DUP 6 ;
GET 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 180 ; FAILWITH } {} ;
PUSH (option (map address (map address nat))) (Some {}) ;
DUP 8 ;
GET 3 ;
CDR ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
DUG 3 } ;
DUP 4 ;
DUP 6 ;
GET 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 182 ; FAILWITH } {} ;
DUP 6 ;
GET 3 ;
CDR ;
GET ;
IF_NONE { PUSH int 182 ; FAILWITH } {} ;
DUP 6 ;
CAR ;
GET 4 ;
MEM ;
IF
{}
{ DIG 3 ;
DUP ;
DUP 6 ;
GET 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 184 ; FAILWITH } {} ;
DUP ;
DUP 8 ;
GET 3 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 184 ; FAILWITH } {} ;
PUSH (option (map address nat)) (Some {}) ;
DUP 10 ;
CAR ;
GET 4 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
DUG 3 } ;
DUP 4 ;
DUP 6 ;
GET 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 186 ; FAILWITH } {} ;
DUP 6 ;
GET 3 ;
CDR ;
GET ;
IF_NONE { PUSH int 186 ; FAILWITH } {} ;
DUP 6 ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 186 ; FAILWITH } {} ;
DUP 3 ;
CAR ;
MEM ;
IF
{ DIG 3 ;
DUP ;
DUP 6 ;
GET 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 190 ; FAILWITH } {} ;
DUP ;
DUP 8 ;
GET 3 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 190 ; FAILWITH } {} ;
DUP ;
DUP 10 ;
CAR ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 190 ; FAILWITH } {} ;
DUP ;
DIG 9 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 190 ; FAILWITH } {} ;
DIG 9 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SWAP }
{ DIG 3 ;
DUP ;
DUP 6 ;
GET 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 194 ; FAILWITH } {} ;
DUP ;
DUP 8 ;
GET 3 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 194 ; FAILWITH } {} ;
DUP ;
DUP 10 ;
CAR ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 194 ; FAILWITH } {} ;
DIG 7 ;
SOME ;
DIG 8 ;
CAR ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SWAP } }
{ DROP 2 } } ;
DUP ;
DUP 4 ;
CAR ;
GET 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 198 ; FAILWITH } {} ;
DUP 4 ;
CAR ;
GET 3 ;
DUP 3 ;
COMPARE ;
LE ;
IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
CAR ;
MEM ;
IF
{}
{ SWAP ;
PUSH (option (map nat (map address (map address nat)))) (Some {}) ;
DUP 4 ;
GET 3 ;
CAR ;
UPDATE ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 204 ; FAILWITH } {} ;
DUP 4 ;
GET 3 ;
CDR ;
MEM ;
IF
{}
{ SWAP ;
DUP ;
DUP 4 ;
GET 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 205 ; FAILWITH } {} ;
PUSH (option (map address (map address nat))) (Some {}) ;
DUP 6 ;
GET 3 ;
CDR ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 206 ; FAILWITH } {} ;
DUP 4 ;
GET 3 ;
CDR ;
GET ;
IF_NONE { PUSH int 206 ; FAILWITH } {} ;
DUP 4 ;
CAR ;
GET 4 ;
MEM ;
IF
{}
{ SWAP ;
DUP ;
DUP 4 ;
GET 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 207 ; FAILWITH } {} ;
DUP ;
DUP 6 ;
GET 3 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 207 ; FAILWITH } {} ;
PUSH (option (map address nat)) (Some {}) ;
DUP 8 ;
CAR ;
GET 4 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 209 ; FAILWITH } {} ;
DUP 4 ;
GET 3 ;
CDR ;
GET ;
IF_NONE { PUSH int 209 ; FAILWITH } {} ;
DUP 4 ;
CAR ;
GET 4 ;
GET ;
IF_NONE { PUSH int 209 ; FAILWITH } {} ;
DUP 4 ;
GET 6 ;
MEM ;
IF
{ SWAP ;
DUP ;
DUP 4 ;
GET 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 211 ; FAILWITH } {} ;
DUP ;
DUP 6 ;
GET 3 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 211 ; FAILWITH } {} ;
DUP ;
DUP 8 ;
CAR ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 211 ; FAILWITH } {} ;
DUP ;
DIG 9 ;
GET 6 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 211 ; FAILWITH } {} ;
DIG 9 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE }
{ SWAP ;
DUP ;
DUP 4 ;
GET 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 213 ; FAILWITH } {} ;
DUP ;
DUP 6 ;
GET 3 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 213 ; FAILWITH } {} ;
DUP ;
DUP 8 ;
CAR ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 213 ; FAILWITH } {} ;
DIG 7 ;
SOME ;
DIG 8 ;
GET 6 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE } }
{ DROP 2 ; SWAP ; DROP } } ;
SWAP ;
LAMBDA
(pair (pair (map address (map nat (map address (map address nat)))) nat)
(pair address (pair (pair address nat) address)))
(map address (map nat (map address (map address nat))))
{ DUP ;
CAR ;
CAR ;
DUP ;
DUP 3 ;
GET 5 ;
CAR ;
MEM ;
IF
{}
{ PUSH (option (map nat (map address (map address nat)))) (Some {}) ;
DUP 3 ;
GET 5 ;
CAR ;
UPDATE } ;
DUP ;
DUP 3 ;
GET 5 ;
CAR ;
GET ;
IF_NONE { PUSH int 156 ; FAILWITH } {} ;
DUP 3 ;
GET 5 ;
CDR ;
MEM ;
IF
{}
{ DUP ;
DUP 3 ;
GET 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 157 ; FAILWITH } {} ;
PUSH (option (map address (map address nat))) (Some {}) ;
DUP 5 ;
GET 5 ;
CDR ;
UPDATE ;
SOME ;
SWAP ;
UPDATE } ;
DUP ;
DUP 3 ;
GET 5 ;
CAR ;
GET ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
DUP 3 ;
GET 5 ;
CDR ;
GET ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
DUP 3 ;
GET 3 ;
MEM ;
IF
{}
{ DUP ;
DUP 3 ;
GET 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 159 ; FAILWITH } {} ;
DUP ;
DUP 5 ;
GET 5 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 159 ; FAILWITH } {} ;
PUSH (option (map address nat)) (Some {}) ;
DUP 7 ;
GET 3 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE } ;
DUP ;
DUP 3 ;
GET 5 ;
CAR ;
GET ;
IF_NONE { PUSH int 160 ; FAILWITH } {} ;
DUP 3 ;
GET 5 ;
CDR ;
GET ;
IF_NONE { PUSH int 160 ; FAILWITH } {} ;
DUP 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 160 ; FAILWITH } {} ;
DUP 3 ;
GET 6 ;
MEM ;
IF
{ DUP ;
DUP 3 ;
GET 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 161 ; FAILWITH } {} ;
DUP ;
DUP 5 ;
GET 5 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 161 ; FAILWITH } {} ;
DUP ;
DUP 7 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 161 ; FAILWITH } {} ;
DUP ;
DUP 9 ;
GET 6 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 161 ; FAILWITH } {} ;
DIG 9 ;
CAR ;
CDR ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE }
{ DUP ;
DUP 3 ;
GET 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 163 ; FAILWITH } {} ;
DUP ;
DUP 5 ;
GET 5 ;
CDR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 163 ; FAILWITH } {} ;
DUP ;
DUP 7 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 163 ; FAILWITH } {} ;
DUP 8 ;
CAR ;
CDR ;
SOME ;
DIG 8 ;
GET 6 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
SOME ;
SWAP ;
UPDATE } } ;
SWAP ;
LAMBDA
(pair (pair (pair nat address) (pair address (pair address nat)))
(pair (list operation)
(pair
(pair
(big_map nat
(pair address
(pair (pair address nat)
(pair
(or address
(or (pair address nat) unit))
(pair nat
(pair nat
(pair (map address nat)
(pair
(option timestamp)
(pair nat
(pair nat
(option (pair
address
bytes))))))))))))
(pair address (big_map string bytes)))
(pair (pair nat nat)
(pair
(big_map nat
(pair address
(pair (pair address (option nat))
(pair
(or address
(or (pair address nat) unit))
(pair nat
(pair (map address nat)
(pair
(option timestamp)
(pair nat
(pair
(map
address
nat)
(option (pair
address
bytes)))))))))))
address)))))
(pair unit
(pair (list operation)
(pair
(pair
(big_map nat
(pair address
(pair (pair address nat)
(pair
(or address
(or (pair address nat) unit))
(pair nat
(pair nat
(pair (map address nat)
(pair
(option timestamp)
(pair nat
(pair nat
(option (pair
address
bytes))))))))))))
(pair address (big_map string bytes)))
(pair (pair nat nat)
(pair
(big_map nat
(pair address
(pair (pair address (option nat))
(pair
(or address
(or (pair address nat) unit))
(pair nat
(pair (map address nat)
(pair
(option timestamp)
(pair nat
(pair
(map
address
nat)
(option (pair
address
bytes)))))))))))
address)))))
{ UNPAIR 3 ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair (address %to_)
(pair (nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 336 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
DIG 5 ;
DUP ;
CAR ;
CAR ;
SWAP ;
DUP ;
GET 6 ;
SWAP ;
DUP ;
DUG 8 ;
GET 5 ;
PAIR 3 ;
CONS ;
DIG 5 ;
GET 3 ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
UNIT ;
PAIR 3 } ;
SWAP ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
IF_LEFT
{ DUP ;
GET 7 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "M_NO_ASKS" ; FAILWITH } ;
DUP ;
GET 3 ;
IF_LEFT
{ DROP ;
DUP ;
GET 5 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "M_MIN_0_FA12" ; FAILWITH } }
{ IF_LEFT
{ DROP ;
DUP ;
GET 5 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "M_MIN_0_FA2" ; FAILWITH } }
{ DROP } } ;
DUP ;
GET 9 ;
SIZE ;
PUSH nat 100 ;
SWAP ;
COMPARE ;
LE ;
IF {} { PUSH string "R_TOO_MANY_SHARES" ; FAILWITH } ;
DUP ;
GET 9 ;
PUSH nat 0 ;
SWAP ;
ITER { CDR ; ADD } ;
DUP 3 ;
CAR ;
GET 3 ;
UNIT ;
VIEW "get_management_fee" nat ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
PUSH nat 10000 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 28 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LE ;
IF {} { PUSH string "R_INVALID_SHARES_TOTAL" ; FAILWITH } ;
DUP 3 ;
CAR ;
GET 3 ;
DUP 3 ;
GET 13 ;
VIEW "is_valid_referral_fee_level" bool ;
IF_NONE { PUSH int 156 ; FAILWITH } {} ;
IF {} { PUSH string "M_INVALID_R_FEE" ; FAILWITH } ;
DUP 3 ;
UNPAIR ;
UNPAIR ;
DUP 5 ;
GET 14 ;
DUP 7 ;
CAR ;
GET 3 ;
UNIT ;
VIEW "get_management_fee" nat ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
DIG 6 ;
DUP ;
GET 13 ;
SWAP ;
DUP ;
GET 11 ;
SWAP ;
DUP ;
GET 9 ;
SWAP ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
GET 5 ;
SWAP ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 13 ;
CAR ;
SENDER ;
PAIR 10 ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 5 ;
DROP ;
SOME ;
DIG 4 ;
GET 3 ;
CAR ;
UPDATE ;
PAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
NIL operation }
{ IF_LEFT
{ DROP ;
SWAP ;
DROP ;
DUP ;
GET 6 ;
NIL operation ;
SWAP ;
UNIT ;
VIEW "get_baking_reward_collector" address ;
IF_NONE { PUSH int 167 ; FAILWITH } {} ;
CONTRACT unit ;
IF_NONE { PUSH int 181 ; FAILWITH } {} ;
AMOUNT ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP ;
SWAP ;
DROP ;
DUP ;
GET 6 ;
NIL operation ;
SWAP ;
UNIT ;
VIEW "get_delegate" key_hash ;
IF_NONE { PUSH int 176 ; FAILWITH } {} ;
SOME ;
SET_DELEGATE ;
CONS } } }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 411 ; FAILWITH } {} ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF {} { PUSH string "M_NO_SELF_FULFILL" ; FAILWITH } ;
PUSH nat 0 ;
DUP 3 ;
GET 3 ;
COMPARE ;
GT ;
IF {} { PUSH string "M_LT_MIN_AMOUNT" ; FAILWITH } ;
DUP ;
GET 13 ;
IF_NONE
{}
{ NOW ; COMPARE ; LT ; IF {} { PUSH string "M_EXPIRED" ; FAILWITH } } ;
SENDER ;
DUP 3 ;
GET 5 ;
IF_NONE {} { SWAP ; DROP } ;
DUP 3 ;
GET 3 ;
DUP 3 ;
GET 9 ;
DUP ;
DUP 3 ;
COMPARE ;
LE ;
IF { DROP } { SWAP ; DROP } ;
DUP 3 ;
GET 5 ;
IF_LEFT
{ DROP ; PUSH bool False }
{ IF_LEFT { DROP ; PUSH bool False } { DROP ; PUSH bool True } } ;
IF
{ DUP ;
DUP 4 ;
GET 7 ;
MUL ;
PUSH mutez 1 ;
AMOUNT ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
COMPARE ;
GE ;
IF {} { PUSH string "M_TEZ_AMOUNT_MISMATCH" ; FAILWITH } }
{} ;
DUP 3 ;
GET 18 ;
IF_NONE
{ NIL operation }
{ DUP ;
CAR ;
CONTRACT %enforce_conditions (list (pair
(pair (nat %amount)
(pair
(address %claimer)
(bytes %condition_id)))
(pair (address %creator)
(pair
(option %extra bytes)
(pair %token
(address %address)
(nat %token_id)))))) ;
IF_NONE { PUSH int 517 ; FAILWITH } {} ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
NIL (pair (pair nat (pair address bytes))
(pair address
(pair (option bytes) (pair address nat)))) ;
DUP 8 ;
GET 3 ;
DUP 10 ;
GET 7 ;
PAIR ;
DUP 9 ;
CAR ;
PAIR ;
DIG 5 ;
CDR ;
DUP 8 ;
PAIR ;
DUP 7 ;
PAIR ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS } ;
DUP 4 ;
GET 3 ;
CAR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair (address %to_)
(pair (nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 305 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
DUP 6 ;
DUP 9 ;
GET 3 ;
CDR ;
DUP 9 ;
PAIR 3 ;
CONS ;
DUP 8 ;
CAR ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
DUP 6 ;
GET 6 ;
UNIT ;
VIEW "get_treasury" address ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
DUP 7 ;
CAR ;
GET 3 ;
DUP 7 ;
GET 8 ;
DIG 6 ;
DUP ;
GET 15 ;
SWAP ;
DUP ;
DUG 8 ;
GET 17 ;
PAIR 3 ;
VIEW "get_share_fee" (map address nat) ;
IF_NONE { PUSH int 136 ; FAILWITH } {} ;
DUP 6 ;
GET 17 ;
PUSH nat 0 ;
DIG 2 ;
DUP ;
DUP ;
DUG 4 ;
ITER { DIG 2 ; SWAP ; CDR ; ADD ; SWAP } ;
PUSH nat 0 ;
DUP 10 ;
GET 15 ;
COMPARE ;
EQ ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
DIG 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 47 ; FAILWITH } {} ;
DUG 2 }
{} ;
DUP 9 ;
GET 11 ;
ITER { DUP ;
CDR ;
DIG 3 ;
ADD ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUP 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 53 ; FAILWITH } {} ;
DIG 3 ;
CDR ;
ADD ;
SOME ;
SWAP ;
UPDATE }
{ DUP ; DUG 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } } ;
DUP 3 ;
DIG 2 ;
ADD ;
SWAP ;
DUP ;
DUP 6 ;
MEM ;
IF
{ DUP ;
DUP 6 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 60 ; FAILWITH } {} ;
DUP 5 ;
ADD ;
SOME ;
SWAP ;
UPDATE }
{ DUP 3 ; SOME ; DUP 6 ; UPDATE } ;
PUSH nat 10000 ;
DUP 3 ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "WrongCondition: total_fee.value <= 10000" ;
FAILWITH } ;
DUP 9 ;
GET 5 ;
IF_LEFT
{ PUSH nat 0 ;
DUP 3 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
DUP 12 ;
DUP 15 ;
GET 7 ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH int 255 ; FAILWITH } { CAR } ;
DUP ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DIG 9 ;
DUP 5 ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE { PUSH int 460 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DIG 4 ;
CAR ;
PAIR ;
SENDER ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUG 7 }
{ DROP 2 } } ;
DUP ;
DUP 10 ;
DUP 13 ;
GET 7 ;
MUL ;
SUB ;
DUP 10 ;
DUP 13 ;
GET 7 ;
MUL ;
DUP 3 ;
COMPARE ;
LE ;
IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ;
DUP ;
PUSH int 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 4 ;
DROP ;
DUG 2 ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE { PUSH int 460 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
ISNAT ;
IF_NONE { PUSH int 265 ; FAILWITH } {} ;
DUP 6 ;
CAR ;
PAIR ;
SENDER ;
PAIR ;
TRANSFER_TOKENS ;
CONS }
{ DROP 8 ; DIG 2 ; DROP } }
{ IF_LEFT
{ PUSH nat 0 ;
NIL (pair address (pair nat nat)) ;
DUP 4 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
DUP 13 ;
DUP 16 ;
GET 7 ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH int 106 ; FAILWITH } { CAR } ;
DUP ;
DIG 4 ;
ADD ;
DUG 3 ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DIG 2 ; SWAP ; DUP 5 ; CDR ; DIG 3 ; CAR ; PAIR 3 ; CONS }
{ DROP 2 } } ;
DUP 10 ;
DUP 13 ;
GET 7 ;
MUL ;
DUP 3 ;
COMPARE ;
LE ;
IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 11 ;
DUP 14 ;
GET 7 ;
MUL ;
SUB ;
DUP ;
PUSH int 0 ;
COMPARE ;
LT ;
IF
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 5 ;
DROP ;
ISNAT ;
IF_NONE { PUSH int 122 ; FAILWITH } {} ;
DUP 3 ;
CDR ;
DUP 7 ;
CAR ;
PAIR 3 ;
CONS }
{ DROP ;
SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 4 ;
DROP } ;
DUG 2 ;
CAR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair
(address %to_)
(pair
(nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 394 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
DIG 4 ;
SENDER ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS }
{ PUSH mutez 0 ;
DUP 3 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
PUSH mutez 1 ;
DUP 13 ;
DUP 16 ;
GET 7 ;
MUL ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH int 78 ; FAILWITH } {} ;
CAR ;
DUP ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP ;
PUSH mutez 0 ;
COMPARE ;
LT ;
IF
{ DIG 9 ;
DIG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 85 ; FAILWITH } {} ;
DIG 2 ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUG 7 }
{ DROP 2 } } ;
PUSH mutez 1 ;
DUP ;
DUP 3 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
DUP 11 ;
DUP 14 ;
GET 7 ;
MUL ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 90 ; FAILWITH } {} ;
MUL ;
PUSH mutez 1 ;
DUP 11 ;
DUP 14 ;
GET 7 ;
MUL ;
MUL ;
DUP 3 ;
COMPARE ;
LE ;
IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ;
DUP ;
PUSH mutez 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 3 ;
DROP ;
SWAP ;
DUP 4 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 98 ; FAILWITH } {} ;
DIG 2 ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP 8 ; DIG 2 ; DROP } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 4 ;
GET 7 ;
MUL ;
PUSH mutez 1 ;
AMOUNT ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
COMPARE ;
GT ;
IF
{ SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 496 ; FAILWITH } {} ;
PUSH mutez 1 ;
DUP 4 ;
DUP 6 ;
GET 7 ;
MUL ;
PUSH mutez 1 ;
AMOUNT ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 499 ; FAILWITH } {} ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{} } } ;
DIG 4 ;
UNPAIR ;
UNPAIR ;
DUP ;
DUP 8 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 506 ; FAILWITH } {} ;
DIG 6 ;
DIG 7 ;
GET 9 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 506 ; FAILWITH } {} ;
UPDATE 9 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
DUG 2 ;
PUSH nat 0 ;
DUP 4 ;
CAR ;
CAR ;
DUP 4 ;
CAR ;
GET ;
IF_NONE { PUSH int 511 ; FAILWITH } {} ;
GET 9 ;
COMPARE ;
EQ ;
IF
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNPAIR ;
UNPAIR ;
NONE (pair address
(pair (pair address nat)
(pair
(or address (or (pair address nat) unit))
(pair nat
(pair nat
(pair (map address nat)
(pair (option timestamp)
(pair nat
(pair nat
(option (pair
address
bytes))))))))))) ;
DIG 5 ;
CAR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP }
{ SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } }
{ IF_LEFT
{ DUP ;
CAR ;
CAR ;
SIZE ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "M_NO_ASKS" ; FAILWITH } ;
DUP ;
GET 3 ;
SENDER ;
SWAP ;
IF_NONE {} { SWAP ; DROP } ;
PUSH nat 0 ;
EMPTY_MAP address nat ;
EMPTY_MAP address (map nat (map address (map address nat))) ;
EMPTY_MAP address (map address (map address nat)) ;
EMPTY_MAP address
(list (pair (pair nat (pair address bytes))
(pair address
(pair (option bytes)
(pair address nat))))) ;
PUSH bool True ;
PUSH string "" ;
DUP 9 ;
CAR ;
CAR ;
ITER { DUP 11 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ DUP 11 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 692 ; FAILWITH } {} ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ DUP ;
GET 13 ;
PUSH bool True ;
SWAP ;
IF_NONE
{}
{ NOW ;
COMPARE ;
GE ;
IF { DROP ; PUSH bool False } {} } ;
DUP ;
IF
{ DUP 3 ;
GET 3 ;
DUP 3 ;
GET 9 ;
DUP ;
DUP 3 ;
COMPARE ;
LE ;
IF { DROP } { SWAP ; DROP } ;
DUP 3 ;
GET 18 ;
IF_NONE
{}
{ DUP 8 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ DIG 7 ;
PUSH (option (list (pair
(pair nat
(pair address
bytes))
(pair address
(pair
(option bytes)
(pair
address
nat)))))) (Some {}) ;
DUP 3 ;
CAR ;
UPDATE ;
DUG 7 } ;
DIG 7 ;
DUP ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 706 ; FAILWITH } {} ;
DUP 6 ;
GET 3 ;
DUP 8 ;
GET 4 ;
PAIR ;
DUP 7 ;
CAR ;
PAIR ;
DUP 4 ;
CDR ;
DUP 16 ;
PAIR ;
DUP 6 ;
PAIR ;
PAIR ;
CONS ;
SOME ;
DIG 2 ;
CAR ;
UPDATE ;
DUG 6 } ;
DUP 14 ;
CAR ;
GET 3 ;
DUP 14 ;
GET 4 ;
DIG 4 ;
DUP ;
GET 15 ;
SWAP ;
DUP ;
DUG 6 ;
GET 17 ;
PAIR 3 ;
VIEW "get_share_fee" (map address nat) ;
IF_NONE { PUSH int 136 ; FAILWITH } {} ;
DUP 15 ;
GET 6 ;
UNIT ;
VIEW "get_treasury" address ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
DUP 5 ;
GET 17 ;
PUSH nat 0 ;
DIG 3 ;
DUP ;
DUP ;
DUG 5 ;
ITER { DIG 2 ; SWAP ; CDR ; ADD ; SWAP } ;
PUSH nat 0 ;
DUP 9 ;
GET 15 ;
COMPARE ;
EQ ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
DIG 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 47 ; FAILWITH } {} ;
DUG 2 }
{} ;
DUP 8 ;
GET 11 ;
ITER { DUP ;
CDR ;
DIG 3 ;
ADD ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUP 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH int 53 ; FAILWITH }
{} ;
DIG 3 ;
CDR ;
ADD ;
SOME ;
SWAP ;
UPDATE }
{ DUP ; DUG 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } } ;
DUP 3 ;
DIG 2 ;
ADD ;
SWAP ;
DUP ;
DUP 5 ;
MEM ;
IF
{ DUP ;
DUP 5 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 60 ; FAILWITH } {} ;
DUP 5 ;
ADD ;
SOME ;
SWAP ;
UPDATE }
{ DUP 3 ; SOME ; DUP 5 ; UPDATE } ;
PUSH nat 10000 ;
DUP 3 ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "WrongCondition: total_fee.value <= 10000" ;
FAILWITH } ;
DUP 21 ;
DUP 18 ;
DUP 10 ;
GET 3 ;
PAIR ;
DUP 10 ;
CAR ;
PAIR ;
DUP 8 ;
DIG 16 ;
PAIR ;
PAIR ;
EXEC ;
DUG 13 ;
DUP 8 ;
GET 5 ;
IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DUP 19 ;
DUP 5 ;
CAR ;
DIG 3 ;
PAIR ;
DIG 2 ;
PAIR ;
SENDER ;
DUP 4 ;
DUP 6 ;
GET 7 ;
MUL ;
PAIR ;
DIG 9 ;
PAIR ;
PAIR ;
EXEC ;
DUG 6 }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DUP 18 ;
DUP 5 ;
CAR ;
DIG 3 ;
PAIR ;
DIG 2 ;
PAIR ;
SENDER ;
DUP 4 ;
DUP 6 ;
GET 7 ;
MUL ;
PAIR ;
DIG 10 ;
PAIR ;
PAIR ;
EXEC ;
DUG 7 }
{ PUSH nat 0 ;
DUP 3 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
DUP 11 ;
DUP 14 ;
GET 7 ;
MUL ;
MUL ;
EDIV ;
IF_NONE
{ PUSH int 132 ; FAILWITH }
{ CAR } ;
DUP ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP 19 ;
DUP 3 ;
CAR ;
MEM ;
IF
{ DIG 18 ;
DUP ;
DIG 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH int 139 ;
FAILWITH }
{} ;
DIG 3 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
DUG 16 }
{ DIG 18 ;
SWAP ;
SOME ;
DIG 2 ;
CAR ;
UPDATE ;
DUG 16 } }
{ DROP 2 } } ;
DUP ;
DUP 9 ;
DUP 12 ;
GET 7 ;
MUL ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH int 141 ; FAILWITH }
{} ;
DUP 9 ;
DUP 12 ;
GET 7 ;
MUL ;
DUP 3 ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "PH_INVALID_TOTAL" ;
FAILWITH } ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 2 ;
DROP ;
DUP 10 ;
DUP 4 ;
CAR ;
MEM ;
IF
{ DIG 9 ;
DUP ;
DUP 5 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH int 146 ; FAILWITH }
{} ;
DIG 3 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
DUG 8 }
{ DIG 9 ;
SWAP ;
SOME ;
DUP 4 ;
CAR ;
UPDATE ;
DUG 8 } }
{ DROP 8 ; SWAP ; DROP } ;
DUP ;
DUP 3 ;
GET 7 ;
MUL ;
DIG 10 ;
ADD ;
DUG 9 } } ;
DIG 12 ;
UNPAIR ;
UNPAIR ;
DUP ;
DUP 7 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 770 ; FAILWITH } {} ;
DIG 5 ;
DIG 6 ;
GET 9 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 770 ; FAILWITH } {} ;
UPDATE 9 ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
DUG 10 ;
PUSH nat 0 ;
DUP 12 ;
CAR ;
CAR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 775 ; FAILWITH } {} ;
GET 9 ;
COMPARE ;
EQ ;
IF
{ DIG 10 ;
UNPAIR ;
UNPAIR ;
NONE (pair address
(pair (pair address nat)
(pair
(or address
(or
(pair address
nat)
unit))
(pair nat
(pair nat
(pair
(map
address
nat)
(pair
(option timestamp)
(pair
nat
(pair
nat
(option (pair
address
bytes))))))))))) ;
DUP 5 ;
CAR ;
UPDATE ;
PAIR ;
PAIR ;
DUG 10 }
{} }
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP 3 ;
PUSH bool False ;
SWAP ;
PUSH string "M_EXPIRED" ;
SWAP } }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP 2 ;
PUSH bool False ;
SWAP ;
PUSH string "M_NO_SELF_FULFILL" ;
SWAP } }
{ SWAP ;
DROP ;
SWAP ;
DROP ;
PUSH bool False ;
SWAP ;
PUSH string "M_ITEM_NO_EXIST" ;
SWAP } ;
DUP 10 ;
CAR ;
CDR ;
IF
{ DUP 3 ;
IF { DROP } { SWAP ; DUP ; DUG 2 ; FAILWITH } }
{ DROP } } ;
DROP 2 ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
PUSH mutez 1 ;
DIG 5 ;
MUL ;
DUP ;
AMOUNT ;
COMPARE ;
GE ;
IF {} { PUSH string "M_TEZ_AMOUNT_MISMATCH" ; FAILWITH } ;
DUP ;
AMOUNT ;
COMPARE ;
GT ;
IF
{ NIL operation ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 794 ; FAILWITH } {} ;
DIG 2 ;
AMOUNT ;
SUB_MUTEZ ;
IF_NONE { PUSH int 794 ; FAILWITH } {} ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP ; NIL operation } ;
DIG 3 ;
ITER { DUP ;
CDR ;
NIL (pair address (list (pair address (pair nat nat)))) ;
SWAP ;
ITER { DUP ;
CDR ;
ITER { DUP ;
CDR ;
NIL (pair address (pair nat nat)) ;
SWAP ;
ITER { DUP ;
DUG 2 ;
CDR ;
DUP 5 ;
CAR ;
DIG 3 ;
CAR ;
PAIR 3 ;
CONS } ;
DIG 3 ;
SWAP ;
DIG 2 ;
CAR ;
PAIR ;
CONS ;
SWAP } ;
DROP } ;
DUG 2 ;
CAR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair
(address %to_)
(pair
(nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 435 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } ;
DIG 2 ;
ITER { DUP ;
CDR ;
ITER { DUP ;
CDR ;
ITER { DIG 3 ;
DUP 4 ;
CAR ;
CONTRACT %transfer (pair address
(pair address nat)) ;
IF_NONE { PUSH int 460 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DUP 5 ;
CAR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUG 2 } ;
DROP } ;
DROP } ;
DIG 2 ;
ITER { DUP ;
DUG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 453 ; FAILWITH } {} ;
PUSH mutez 1 ;
DIG 3 ;
CDR ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS } ;
SWAP ;
ITER { DUP ;
DUG 2 ;
CAR ;
CONTRACT %enforce_conditions (list (pair
(pair (nat %amount)
(pair
(address %claimer)
(bytes %condition_id)))
(pair
(address %creator)
(pair
(option %extra bytes)
(pair %token
(address %address)
(nat %token_id)))))) ;
IF_NONE { PUSH int 517 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
CDR ;
TRANSFER_TOKENS ;
CONS } }
{ SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 310 ; FAILWITH } {} ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF {} { PUSH string "M_NO_SELF_FULFILL" ; FAILWITH } ;
DUP ;
GET 11 ;
IF_NONE
{}
{ NOW ; COMPARE ; LT ; IF {} { PUSH string "M_EXPIRED" ; FAILWITH } } ;
DUP ;
GET 3 ;
CDR ;
IF_NONE
{ SWAP ; DUP ; DUG 2 ; GET 3 ; IF_NONE { PUSH int 323 ; FAILWITH } {} }
{} ;
SWAP ;
DUP ;
DUG 2 ;
GET 16 ;
IF_NONE
{ NIL operation }
{ DUP ;
CAR ;
CONTRACT %enforce_conditions (list (pair
(pair (nat %amount)
(pair
(address %claimer)
(bytes %condition_id)))
(pair
(address %creator)
(pair
(option %extra bytes)
(pair %token
(address %address)
(nat %token_id)))))) ;
IF_NONE { PUSH int 517 ; FAILWITH } {} ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
NIL (pair (pair nat (pair address bytes))
(pair address
(pair (option bytes) (pair address nat)))) ;
DUP 6 ;
DUP 8 ;
GET 3 ;
CAR ;
PAIR ;
DUP 9 ;
GET 4 ;
PAIR ;
DUP 8 ;
CAR ;
PAIR ;
DIG 5 ;
CDR ;
SENDER ;
PAIR ;
PUSH nat 1 ;
PAIR ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS } ;
DUP 3 ;
GET 3 ;
CAR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair (address %to_)
(pair
(nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 305 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
PUSH nat 1 ;
DUP 7 ;
DUP 9 ;
CAR ;
PAIR 3 ;
CONS ;
SENDER ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
DUP 5 ;
CAR ;
GET 3 ;
UNIT ;
VIEW "get_management_fee" nat ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
DUP 6 ;
GET 6 ;
UNIT ;
VIEW "get_treasury" address ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
DUP 7 ;
CAR ;
GET 3 ;
DUP 6 ;
GET 15 ;
PUSH nat 0 ;
DUP 8 ;
GET 13 ;
PAIR 3 ;
VIEW "get_share_fee" (map address nat) ;
IF_NONE { PUSH int 136 ; FAILWITH } {} ;
DUP 3 ;
PUSH nat 0 ;
DIG 2 ;
DUP ;
DUP ;
DUG 4 ;
ITER { DIG 2 ; SWAP ; CDR ; ADD ; SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DIG 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 47 ; FAILWITH } {} ;
DUG 2 ;
DUP 9 ;
GET 9 ;
ITER { DUP ;
CDR ;
DIG 3 ;
ADD ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUP 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 53 ; FAILWITH } {} ;
DIG 3 ;
CDR ;
ADD ;
SOME ;
SWAP ;
UPDATE }
{ DUP ; DUG 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } } ;
DUP 3 ;
DIG 2 ;
ADD ;
SWAP ;
DUP ;
DUP 6 ;
MEM ;
IF
{ DUP ;
DUP 6 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 60 ; FAILWITH } {} ;
DUP 5 ;
ADD ;
SOME ;
SWAP ;
UPDATE }
{ DUP 3 ; SOME ; DUP 6 ; UPDATE } ;
PUSH nat 10000 ;
DUP 3 ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "WrongCondition: total_fee.value <= 10000" ;
FAILWITH } ;
DUP 9 ;
GET 5 ;
IF_LEFT
{ PUSH nat 0 ;
DUP 3 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
DUP 14 ;
GET 7 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 255 ; FAILWITH } { CAR } ;
DUP ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DIG 10 ;
DUP 5 ;
CONTRACT %transfer (pair address
(pair address nat)) ;
IF_NONE { PUSH int 460 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DIG 4 ;
CAR ;
PAIR ;
DUP 14 ;
CAR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUG 8 }
{ DROP 2 } } ;
DUP ;
DUP 12 ;
GET 7 ;
SUB ;
DUP 12 ;
GET 7 ;
DUP 3 ;
COMPARE ;
LE ;
IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ;
DUP ;
PUSH int 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DUG 2 ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE { PUSH int 460 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
ISNAT ;
IF_NONE { PUSH int 265 ; FAILWITH } {} ;
SENDER ;
PAIR ;
DIG 4 ;
CAR ;
PAIR ;
TRANSFER_TOKENS ;
CONS }
{ DROP 9 ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP } }
{ IF_LEFT
{ PUSH nat 0 ;
NIL (pair address (pair nat nat)) ;
DUP 4 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
DUP 15 ;
GET 7 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 106 ; FAILWITH } { CAR } ;
DUP ;
DIG 4 ;
ADD ;
DUG 3 ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DIG 2 ; SWAP ; DUP 5 ; CDR ; DIG 3 ; CAR ; PAIR 3 ; CONS }
{ DROP 2 } } ;
DUP 12 ;
GET 7 ;
DUP 3 ;
COMPARE ;
LE ;
IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
DUP 13 ;
GET 7 ;
SUB ;
DUP ;
PUSH int 0 ;
COMPARE ;
LT ;
IF
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 4 ;
DROP ;
DIG 7 ;
DROP ;
DIG 7 ;
DROP ;
DIG 7 ;
DROP ;
DIG 7 ;
DROP ;
ISNAT ;
IF_NONE { PUSH int 122 ; FAILWITH } {} ;
DUP 3 ;
CDR ;
SENDER ;
PAIR 3 ;
CONS }
{ DROP ;
SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP } ;
DUG 2 ;
CAR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair
(address %to_)
(pair
(nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 394 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
DIG 4 ;
DIG 5 ;
CAR ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS }
{ PUSH mutez 0 ;
DUP 3 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
PUSH mutez 1 ;
DUP 15 ;
GET 7 ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH int 78 ; FAILWITH } {} ;
CAR ;
DUP ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP ;
PUSH mutez 0 ;
COMPARE ;
LT ;
IF
{ DIG 10 ;
DIG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 85 ; FAILWITH } {} ;
DIG 2 ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
DUG 8 }
{ DROP 2 } } ;
PUSH mutez 1 ;
DUP ;
DUP 3 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
DUP 13 ;
GET 7 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 90 ; FAILWITH } {} ;
MUL ;
PUSH mutez 1 ;
DUP 13 ;
GET 7 ;
MUL ;
DUP 3 ;
COMPARE ;
LE ;
IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ;
DUP ;
PUSH mutez 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
SWAP ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 98 ; FAILWITH } {} ;
DIG 2 ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP 9 ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP } } } ;
DIG 2 ;
DUP ;
GET 5 ;
NONE (pair address
(pair (pair address (option nat))
(pair
(or address (or (pair address nat) unit))
(pair nat
(pair (map address nat)
(pair (option timestamp)
(pair nat
(pair
(map address nat)
(option (pair
address
bytes)))))))))) ;
DIG 4 ;
CAR ;
UPDATE ;
UPDATE 5 ;
SWAP } } } }
{ IF_LEFT
{ IF_LEFT
{ DUP ;
CDR ;
SIZE ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF {} { PUSH string "M_NO_OFFERS" ; FAILWITH } ;
EMPTY_MAP address nat ;
EMPTY_MAP address (map nat (map address (map address nat))) ;
EMPTY_MAP address (map address (map address nat)) ;
EMPTY_MAP address
(list (pair (pair nat (pair address bytes))
(pair address
(pair (option bytes) (pair address nat))))) ;
PUSH bool True ;
PUSH string "" ;
DUP 8 ;
CAR ;
GET 3 ;
UNIT ;
VIEW "get_management_fee" nat ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
DUP 8 ;
CDR ;
ITER { DUP 10 ;
GET 5 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ DUP 10 ;
GET 5 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 550 ; FAILWITH } {} ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
NEQ ;
IF
{ DUP ;
GET 11 ;
PUSH bool True ;
SWAP ;
IF_NONE
{}
{ NOW ; COMPARE ; GE ; IF { DROP ; PUSH bool False } {} } ;
DUP ;
IF
{ SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
CDR ;
IF_NONE
{ DUP 3 ;
GET 4 ;
IF_NONE { PUSH int 562 ; FAILWITH } {} }
{} ;
DUP ;
DUP 4 ;
GET 3 ;
CAR ;
PAIR ;
DUP 4 ;
GET 16 ;
IF_NONE
{}
{ DUP 10 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ DIG 9 ;
PUSH (option (list (pair
(pair nat
(pair address
bytes))
(pair address
(pair
(option bytes)
(pair address
nat)))))) (Some {}) ;
DUP 3 ;
CAR ;
UPDATE ;
DUG 9 } ;
DIG 9 ;
DUP ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 572 ; FAILWITH } {} ;
DUP 4 ;
DUP 9 ;
GET 3 ;
PAIR ;
DUP 8 ;
CAR ;
PAIR ;
DUP 4 ;
CDR ;
SENDER ;
PAIR ;
PUSH nat 1 ;
PAIR ;
PAIR ;
CONS ;
SOME ;
DIG 2 ;
CAR ;
UPDATE ;
DUG 8 } ;
DUP 16 ;
DUP 5 ;
CAR ;
DUP 3 ;
PAIR ;
SENDER ;
PAIR ;
PUSH nat 1 ;
DIG 13 ;
PAIR ;
PAIR ;
EXEC ;
DUG 10 ;
DUP 14 ;
GET 6 ;
UNIT ;
VIEW "get_treasury" address ;
IF_NONE { PUSH int 158 ; FAILWITH } {} ;
DUP 15 ;
CAR ;
GET 3 ;
DUP 6 ;
GET 15 ;
PUSH nat 0 ;
DUP 8 ;
GET 13 ;
PAIR 3 ;
VIEW "get_share_fee" (map address nat) ;
IF_NONE { PUSH int 136 ; FAILWITH } {} ;
DUP 8 ;
PUSH nat 0 ;
DIG 2 ;
DUP ;
DUP ;
DUG 4 ;
ITER { DIG 2 ; SWAP ; CDR ; ADD ; SWAP } ;
SWAP ;
DUP ;
DUG 2 ;
DIG 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 47 ; FAILWITH } {} ;
DUG 2 ;
DUP 9 ;
GET 9 ;
ITER { DUP ;
CDR ;
DIG 3 ;
ADD ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ SWAP ;
DUP ;
DUP 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH int 53 ; FAILWITH }
{} ;
DIG 3 ;
CDR ;
ADD ;
SOME ;
SWAP ;
UPDATE }
{ DUP ; DUG 2 ; CDR ; SOME ; DIG 2 ; CAR ; UPDATE } } ;
DUP 3 ;
DIG 2 ;
ADD ;
SWAP ;
DUP ;
DUP 6 ;
MEM ;
IF
{ DUP ;
DUP 6 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 60 ; FAILWITH } {} ;
DUP 5 ;
ADD ;
SOME ;
SWAP ;
UPDATE }
{ DUP 3 ; SOME ; DUP 6 ; UPDATE } ;
PUSH nat 10000 ;
DUP 3 ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "WrongCondition: total_fee.value <= 10000" ;
FAILWITH } ;
PUSH nat 0 ;
DUP 10 ;
GET 7 ;
COMPARE ;
GT ;
IF
{ DUP 9 ;
GET 5 ;
IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DUP 17 ;
SENDER ;
DIG 3 ;
PAIR ;
DIG 2 ;
PAIR ;
DIG 2 ;
DUP ;
CAR ;
SWAP ;
GET 7 ;
PAIR ;
DIG 8 ;
PAIR ;
PAIR ;
EXEC ;
DUG 5 }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DUP 16 ;
SENDER ;
DIG 3 ;
PAIR ;
DIG 2 ;
PAIR ;
DIG 2 ;
DUP ;
CAR ;
SWAP ;
GET 7 ;
PAIR ;
DIG 9 ;
PAIR ;
PAIR ;
EXEC ;
DUG 6 }
{ PUSH nat 0 ;
DUP 3 ;
ITER { DUP ;
CDR ;
PUSH nat 10000 ;
SWAP ;
DUP 14 ;
GET 7 ;
MUL ;
EDIV ;
IF_NONE
{ PUSH int 132 ; FAILWITH }
{ CAR } ;
DUP ;
DIG 3 ;
ADD ;
DUG 2 ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP 21 ;
DUP 3 ;
CAR ;
MEM ;
IF
{ DIG 20 ;
DUP ;
DIG 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH int 139 ;
FAILWITH }
{} ;
DIG 3 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
DUG 18 }
{ DIG 20 ;
SWAP ;
SOME ;
DIG 2 ;
CAR ;
UPDATE ;
DUG 18 } }
{ DROP 2 } } ;
DUP ;
DUP 12 ;
GET 7 ;
SUB ;
ISNAT ;
IF_NONE
{ PUSH int 141 ; FAILWITH }
{} ;
DUP 12 ;
GET 7 ;
DUP 3 ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "PH_INVALID_TOTAL" ;
FAILWITH } ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DUP 9 ;
SENDER ;
MEM ;
IF
{ DIG 8 ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE
{ PUSH int 146 ; FAILWITH }
{} ;
DIG 3 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
DUG 7 }
{ DIG 8 ;
SWAP ;
SOME ;
SENDER ;
UPDATE ;
DUG 7 } }
{ DROP 12 } } } }
{ DROP 9 } ;
DIG 9 ;
DUP ;
GET 5 ;
NONE (pair address
(pair (pair address (option nat))
(pair
(or address
(or (pair address nat)
unit))
(pair nat
(pair (map address nat)
(pair
(option timestamp)
(pair nat
(pair
(map
address
nat)
(option (pair
address
bytes)))))))))) ;
DUP 4 ;
CAR ;
UPDATE ;
UPDATE 5 ;
DUG 9 }
{ DIG 4 ;
DROP ;
DIG 4 ;
DROP 3 ;
PUSH bool False ;
DUG 2 ;
PUSH string "M_EXPIRED" ;
DUG 2 } }
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP 2 ;
PUSH bool False ;
DUG 2 ;
PUSH string "M_NO_SELF_FULFILL" ;
DUG 2 } }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
PUSH bool False ;
DUG 2 ;
PUSH string "M_ITEM_NO_EXIST" ;
DUG 2 } ;
DUP 9 ;
CAR ;
IF { DUP 4 ; IF { DROP } { DUP 3 ; FAILWITH } } { DROP } } ;
DROP 3 ;
DIG 4 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
NIL operation ;
DIG 3 ;
ITER { DUP ;
CDR ;
NIL (pair address (list (pair address (pair nat nat)))) ;
SWAP ;
ITER { DUP ;
CDR ;
ITER { DUP ;
CDR ;
NIL (pair address (pair nat nat)) ;
SWAP ;
ITER { DUP ;
DUG 2 ;
CDR ;
DUP 5 ;
CAR ;
DIG 3 ;
CAR ;
PAIR 3 ;
CONS } ;
DIG 3 ;
SWAP ;
DIG 2 ;
CAR ;
PAIR ;
CONS ;
SWAP } ;
DROP } ;
DUG 2 ;
CAR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair (address %to_)
(pair
(nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 435 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } ;
DIG 2 ;
ITER { DUP ;
CDR ;
ITER { DUP ;
CDR ;
ITER { DIG 3 ;
DUP 4 ;
CAR ;
CONTRACT %transfer (pair address
(pair address nat)) ;
IF_NONE { PUSH int 460 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DUP 5 ;
CAR ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUG 2 } ;
DROP } ;
DROP } ;
DIG 2 ;
ITER { DUP ;
DUG 2 ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 453 ; FAILWITH } {} ;
PUSH mutez 1 ;
DIG 3 ;
CDR ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS } ;
SWAP ;
ITER { DUP ;
DUG 2 ;
CAR ;
CONTRACT %enforce_conditions (list (pair
(pair (nat %amount)
(pair
(address %claimer)
(bytes %condition_id)))
(pair (address %creator)
(pair
(option %extra bytes)
(pair %token
(address %address)
(nat %token_id)))))) ;
IF_NONE { PUSH int 517 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
CDR ;
TRANSFER_TOKENS ;
CONS } }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
IF_LEFT
{ DUP ;
GET 14 ;
SENDER ;
SWAP ;
IF_NONE
{}
{ SWAP ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
IF_LEFT
{ DROP ; PUSH bool False }
{ IF_LEFT
{ DROP ; PUSH bool False }
{ DROP ; PUSH bool True } } ;
IF {} { PUSH string "M_PROXY_OFFER_ONLY_TEZ" ; FAILWITH } } ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
IF_LEFT
{ DROP ;
PUSH nat 0 ;
DUP 3 ;
GET 5 ;
COMPARE ;
GT ;
IF {} { PUSH string "M_MIN_0_FA12" ; FAILWITH } }
{ IF_LEFT
{ DROP ;
PUSH nat 0 ;
DUP 3 ;
GET 5 ;
COMPARE ;
GT ;
IF {} { PUSH string "M_MIN_0_FA2" ; FAILWITH } }
{ DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
PUSH mutez 1 ;
AMOUNT ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "M_TEZ_AMOUNT_MISMATCH" ; FAILWITH } } } ;
PUSH nat 0 ;
DUP 3 ;
GET 11 ;
ITER { CDR ; ADD } ;
DUP ;
PUSH nat 10000 ;
SWAP ;
COMPARE ;
LE ;
IF {} { PUSH string "M_REFS_EXCEED_100%" ; FAILWITH } ;
DUP 4 ;
CAR ;
GET 3 ;
UNIT ;
VIEW "get_management_fee" nat ;
IF_NONE { PUSH int 148 ; FAILWITH } {} ;
PUSH nat 100 ;
DUP 5 ;
GET 7 ;
SIZE ;
COMPARE ;
LE ;
IF {} { PUSH string "R_TOO_MANY_SHARES" ; FAILWITH } ;
PUSH nat 0 ;
DUP 5 ;
GET 7 ;
ITER { CDR ; ADD } ;
SWAP ;
DUP ;
DUG 2 ;
PUSH nat 10000 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 28 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LE ;
IF {} { PUSH string "R_INVALID_SHARES_TOTAL" ; FAILWITH } ;
DUP 6 ;
DUP ;
GET 5 ;
DIG 6 ;
DUP ;
GET 13 ;
SWAP ;
DUP ;
DUG 8 ;
GET 11 ;
DUP 6 ;
DIG 9 ;
DUP ;
GET 9 ;
SWAP ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
GET 5 ;
SWAP ;
DUP ;
GET 3 ;
SWAP ;
DUP ;
DUG 14 ;
CAR ;
DUP 14 ;
PAIR 9 ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
SOME ;
DIG 3 ;
GET 3 ;
CDR ;
UPDATE ;
UPDATE 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH nat 1 ;
ADD ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR }
{ SENDER ;
DUP 3 ;
CAR ;
CAR ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 289 ; FAILWITH } {} ;
CAR ;
COMPARE ;
EQ ;
IF {} { PUSH string "M_NOT_RETRACTOR" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
NONE (pair address
(pair (pair address nat)
(pair
(or address (or (pair address nat) unit))
(pair nat
(pair nat
(pair (map address nat)
(pair (option timestamp)
(pair nat
(pair nat
(option (pair
address
bytes))))))))))) ;
DIG 4 ;
UPDATE ;
PAIR ;
PAIR } ;
NIL operation } }
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
IF_LEFT
{ DIG 2 ;
DROP ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 277 ; FAILWITH } {} ;
DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "M_NOT_RETRACTOR" ; FAILWITH } ;
DUP ;
GET 5 ;
IF_LEFT
{ DROP ; PUSH bool False }
{ IF_LEFT { DROP ; PUSH bool False } { DROP ; PUSH bool True } } ;
IF
{ DUP ;
GET 7 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 282 ; FAILWITH } {} ;
NIL operation ;
SWAP ;
PUSH mutez 1 ;
DIG 3 ;
GET 7 ;
MUL ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP ; NIL operation } }
{ DROP ; NIL operation } ;
DIG 2 ;
DUP ;
GET 5 ;
NONE (pair address
(pair (pair address (option nat))
(pair (or address (or (pair address nat) unit))
(pair nat
(pair (map address nat)
(pair (option timestamp)
(pair nat
(pair
(map address nat)
(option (pair
address
bytes)))))))))) ;
DIG 4 ;
UPDATE ;
UPDATE 5 ;
SWAP }
{ DIG 2 ;
DROP ;
IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
UNIT ;
VIEW "get_admin" address ;
IF_NONE { PUSH int 135 ; FAILWITH } {} ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "PMI_ONLY_ADMIN" ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DIG 3 ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
UNIT ;
VIEW "get_admin" address ;
IF_NONE { PUSH int 135 ; FAILWITH } {} ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "PMI_ONLY_ADMIN" ; FAILWITH } ;
UPDATE 6 } ;
NIL operation } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR } ;
view "get_ask" nat
(pair (address %creator)
(pair (pair %token (address %address) (nat %token_id))
(pair
(or %currency (address %fa12)
(or (pair %fa2 (address %address) (nat %token_id))
(unit %tez)))
(pair (nat %amount)
(pair (nat %editions)
(pair (map %shares address nat)
(pair (option %expiry_time timestamp)
(pair (nat %referral_bonus)
(pair (nat %platform_fee)
(option %condition (pair
(address %address)
(bytes %id))))))))))))
{ UNPAIR ; SWAP ; CAR ; CAR ; SWAP ; GET ; IF_NONE { PUSH int 819 ; FAILWITH } {} } ;
view "get_next_ask_id" unit nat { GET 5 ; CAR } ;
view "get_next_offer_id" unit nat { GET 5 ; CDR } ;
view "get_offer" nat
(pair (address %creator)
(pair (pair %token (address %address) (option %token_id nat))
(pair
(or %currency (address %fa12)
(or (pair %fa2 (address %address) (nat %token_id))
(unit %tez)))
(pair (nat %amount)
(pair (map %shares address nat)
(pair (option %expiry_time timestamp)
(pair (nat %platform_fee)
(pair (map %referrers address nat)
(option %condition (pair
(address %address)
(bytes %id)))))))))))
{ UNPAIR ; SWAP ; GET 5 ; SWAP ; GET ; IF_NONE { PUSH int 815 ; FAILWITH } {} } }