x
737
1439
{ parameter (or (or (or (pair %bid (nat %auction_id) (pair (nat %amount) (pair (map %referrers address nat) (option %condition_extra bytes)))) (nat %cancel_auction)) (or (pair %create_auction (pair %token (address %address) (nat %token_id)) (pair (or %currency (address %fa12) (pair %fa2 (address %address) (nat %token_id))) (pair (nat %reserve) (pair (option %start_time timestamp) (pair (nat %duration) (pair (nat %extension_time) (pair (nat %price_increment) (pair (map %shares address nat) (pair (nat %referral_bonus) (option %condition (pair (address %address) (bytes %id)))))))))))) (or (pair %create_auction_gallery (pair %token (address %address) (nat %token_id)) (pair (nat %exhibition_id) (pair (or %currency (address %fa12) (pair %fa2 (address %address) (nat %token_id))) (pair (nat %reserve) (pair (option %start_time timestamp) (pair (nat %duration) (pair (nat %extension_time) (pair (nat %price_increment) (pair (map %shares address nat) (pair (nat %referral_bonus) (option %condition (pair (address %address) (bytes %id))))))))))))) (unit %default)))) (or (or (unit %delegate) (nat %settle_auction)) (or (address %update_fee_sharing_registry) (or (address %update_gallery_factory) (address %update_permission_module))))) ; storage (pair (pair (big_map %auctions nat (pair (address %creator) (pair (pair %token (address %address) (nat %token_id)) (pair (option %exhibition_id nat) (pair (or %currency (address %fa12) (pair %fa2 (address %address) (nat %token_id))) (pair (nat %reserve) (pair (nat %duration) (pair (timestamp %start_time) (pair (option %end_time timestamp) (pair (nat %extension_time) (pair (nat %price_increment) (pair (nat %current_price) (pair (address %highest_bidder) (pair (map %shares address nat) (pair (nat %platform_fee) (pair (nat %referral_bonus) (pair (map %share_fees address nat) (option %condition (pair (address %address) (bytes %id)))))))))))))))))))) (pair (address %fee_sharing_registry) (address %gallery_factory))) (pair (big_map %metadata string bytes) (pair (nat %next_auction_id) (address %permission_module)))) ; code { 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 (option nat) (pair (or address (pair address nat)) (pair nat (pair nat (pair timestamp (pair (option timestamp) (pair nat (pair nat (pair nat (pair address (pair (map address nat) (pair nat (pair nat (pair (map address nat) (option (pair address bytes))))))))))))))))))) (pair address address)) (pair (big_map string bytes) (pair nat address))))) (pair unit (pair (list operation) (pair (pair (big_map nat (pair address (pair (pair address nat) (pair (option nat) (pair (or address (pair address nat)) (pair nat (pair nat (pair timestamp (pair (option timestamp) (pair nat (pair nat (pair nat (pair address (pair (map address nat) (pair nat (pair nat (pair (map address nat) (option (pair address bytes))))))))))))))))))) (pair address address)) (pair (big_map string bytes) (pair nat 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 { IF_LEFT { DUP ; GET 5 ; SIZE ; PUSH nat 50 ; SWAP ; COMPARE ; LE ; IF {} { PUSH string "E_MAX_50_REFERRERS" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SWAP ; DUP ; DUG 2 ; CAR ; GET ; IF_NONE { PUSH int 388 ; FAILWITH } {} ; DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH string "E_NO_SELF_BID" ; FAILWITH } {} ; DUP ; GET 13 ; NOW ; COMPARE ; GE ; IF {} { PUSH string "E_NOT_STARTED" ; FAILWITH } ; DUP ; GET 15 ; IF_NONE { PUSH bool False } { DROP ; PUSH bool True } ; DUP ; IF { SWAP ; DUP ; DUG 2 ; GET 15 ; IF_NONE { PUSH int 399 ; FAILWITH } {} ; NOW ; COMPARE ; LT } { PUSH bool True } ; IF {} { PUSH string "E_NOT_IN_WINDOW" ; FAILWITH } ; DUP ; IF { PUSH bool False } { SWAP ; DUP ; DUG 2 ; GET 9 ; DUP 4 ; GET 3 ; COMPARE ; GE } ; IF { PUSH bool True } { DUP ; IF { SWAP ; DUP ; GET 19 ; SWAP ; DUP ; DUG 3 ; GET 21 ; ADD ; DUP 4 ; GET 3 ; COMPARE ; GE } { PUSH bool False } } ; IF {} { PUSH string "E_BID_TOO_SMALL" ; FAILWITH } ; PUSH nat 0 ; DUP 4 ; GET 3 ; COMPARE ; GT ; IF {} { PUSH string "WrongCondition: params.amount > 0" ; FAILWITH } ; DUP ; IF {} { DIG 3 ; UNPAIR ; UNPAIR ; DUP ; DUP 7 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 411 ; FAILWITH } {} ; DUP 7 ; GET 11 ; INT ; NOW ; ADD ; SOME ; UPDATE 15 ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; DUG 3 } ; DUP 4 ; CAR ; GET 3 ; DUP 4 ; GET 5 ; DIG 3 ; DUP ; GET 29 ; SWAP ; DUP ; DUG 5 ; GET 27 ; PAIR 3 ; VIEW "get_share_fee" (map address nat) ; IF_NONE { PUSH int 136 ; FAILWITH } {} ; DIG 4 ; UNPAIR ; UNPAIR ; DUP ; DUP 8 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 422 ; FAILWITH } {} ; DUP 6 ; UPDATE 31 ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; DUG 4 ; DUP 3 ; GET 7 ; IF_LEFT { DUP ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH int 460 ; FAILWITH } {} ; NIL operation ; SWAP ; PUSH mutez 0 ; DUP 8 ; GET 3 ; SELF_ADDRESS ; PAIR ; SENDER ; PAIR ; TRANSFER_TOKENS ; CONS ; PUSH nat 0 ; DUP 6 ; GET 21 ; COMPARE ; EQ ; IF { SWAP ; DROP } { SWAP ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH int 460 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 5 ; DUP ; GET 21 ; SWAP ; DUP ; DUG 7 ; GET 23 ; PAIR ; SELF_ADDRESS ; PAIR ; TRANSFER_TOKENS ; CONS } } { NIL operation ; DUP 8 ; DUP 3 ; CDR ; SELF_ADDRESS ; PAIR ; SENDER ; PAIR ; DUP 4 ; CAR ; DUP 9 ; GET 3 ; PAIR ; PAIR ; SWAP ; DIG 8 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 7 ; DIG 2 ; DUG 7 ; DUG 7 ; PUSH nat 0 ; DUP 6 ; GET 21 ; COMPARE ; EQ ; IF { SWAP ; DROP } { DUP 8 ; DUP 3 ; CDR ; DUP 7 ; GET 23 ; PAIR ; SELF_ADDRESS ; PAIR ; DIG 3 ; CAR ; DUP 7 ; GET 21 ; PAIR ; PAIR ; SWAP ; DIG 7 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 6 ; DIG 2 ; DUG 6 ; DUG 6 } } ; DUP 4 ; GET 32 ; IF_NONE { SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } { DIG 2 ; DROP ; DIG 2 ; DROP ; 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 ; NIL (pair (pair nat (pair address bytes)) (pair address (pair (option bytes) (pair address nat)))) ; DUP 6 ; GET 3 ; DUP 8 ; GET 6 ; PAIR ; DIG 6 ; CAR ; PAIR ; DIG 5 ; CDR ; SENDER ; PAIR ; PUSH nat 1 ; PAIR ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS } ; DIG 2 ; UNPAIR ; UNPAIR ; DUP ; DUP 6 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 478 ; FAILWITH } {} ; DUP 7 ; GET 3 ; UPDATE 21 ; SOME ; SWAP ; UPDATE ; DUP ; DUP 6 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 479 ; FAILWITH } {} ; SENDER ; UPDATE 23 ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; DUP ; DUG 3 ; CAR ; CAR ; DUP 3 ; CAR ; GET ; IF_NONE { PUSH int 484 ; FAILWITH } {} ; GET 17 ; INT ; NOW ; DUP 5 ; CAR ; CAR ; DUP 5 ; CAR ; GET ; IF_NONE { PUSH int 483 ; FAILWITH } {} ; GET 15 ; IF_NONE { PUSH int 483 ; FAILWITH } {} ; SUB ; COMPARE ; LT ; IF { DIG 3 ; DROP ; DUP 3 ; UNPAIR ; UNPAIR ; DUP ; DUP 6 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 486 ; FAILWITH } {} ; DIG 7 ; CAR ; CAR ; DIG 7 ; CAR ; GET ; IF_NONE { PUSH int 488 ; FAILWITH } {} ; GET 17 ; INT ; NOW ; ADD ; SOME ; UPDATE 15 ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; SWAP } { SWAP ; DROP ; DIG 2 ; DROP } } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 341 ; FAILWITH } {} ; DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "E_NOT_SELLER" ; FAILWITH } ; DUP ; GET 15 ; IF_NONE {} { PUSH string "E_HAS_BID" ; FAILWITH } ; NIL operation ; DIG 4 ; DUP 3 ; GET 3 ; CDR ; SENDER ; PAIR ; SELF_ADDRESS ; PAIR ; DIG 3 ; GET 3 ; CAR ; PUSH nat 1 ; PAIR ; PAIR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; NONE (pair address (pair (pair address nat) (pair (option nat) (pair (or address (pair address nat)) (pair nat (pair nat (pair timestamp (pair (option timestamp) (pair nat (pair nat (pair nat (pair address (pair (map address nat) (pair nat (pair nat (pair (map address nat) (option (pair address bytes)))))))))))))))))) ; DIG 5 ; UPDATE ; PAIR ; PAIR ; SWAP } } { IF_LEFT { DUP ; GET 9 ; PUSH nat 2592000 ; SWAP ; COMPARE ; LE ; IF {} { PUSH string "E_MAX_30_DAYS" ; FAILWITH } ; DUP ; GET 13 ; PUSH nat 1 ; SWAP ; COMPARE ; GE ; IF {} { PUSH string "E_PRICE_INCR_0" ; FAILWITH } ; DUP ; GET 11 ; PUSH nat 3600 ; SWAP ; COMPARE ; LE ; IF {} { PUSH string "E_MAX_1_HR_EXT" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; UNIT ; VIEW "get_management_fee" nat ; IF_NONE { PUSH int 148 ; FAILWITH } {} ; PUSH nat 100 ; DUP 3 ; GET 15 ; SIZE ; COMPARE ; LE ; IF {} { PUSH string "R_TOO_MANY_SHARES" ; FAILWITH } ; PUSH nat 0 ; DUP 3 ; GET 15 ; 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 4 ; CAR ; GET 3 ; DUP 4 ; GET 17 ; VIEW "is_valid_referral_fee_level" bool ; IF_NONE { PUSH int 156 ; FAILWITH } {} ; IF {} { PUSH string "E_INVALID_R_FEE" ; FAILWITH } ; NIL operation ; DUP 6 ; DUP 5 ; CAR ; CDR ; SELF_ADDRESS ; PAIR ; SENDER ; PAIR ; DUP 6 ; CAR ; CAR ; PUSH nat 1 ; PAIR ; PAIR ; SWAP ; DIG 6 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 6 ; DIG 3 ; DUG 6 ; DUG 6 ; NOW ; DUP 6 ; GET 7 ; IF_NONE {} { SWAP ; DROP } ; DUP 7 ; UNPAIR ; UNPAIR ; DUP 9 ; GET 18 ; EMPTY_MAP address nat ; DUP 11 ; GET 17 ; DUP 11 ; DUP 13 ; GET 15 ; SENDER ; PUSH nat 0 ; DIG 15 ; DUP ; GET 13 ; SWAP ; DUP ; DUG 17 ; GET 11 ; NONE timestamp ; DUP 14 ; DIG 19 ; DUP ; GET 9 ; SWAP ; DUP ; GET 5 ; SWAP ; DUP ; DUG 22 ; GET 3 ; NONE nat ; DUP 24 ; CAR ; SENDER ; PAIR 17 ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 6 ; DROP ; SOME ; DIG 5 ; GET 5 ; UPDATE ; PAIR ; PAIR ; DUP ; GET 5 ; PUSH nat 1 ; ADD ; UPDATE 5 ; SWAP } { IF_LEFT { DUP ; GET 11 ; PUSH nat 2592000 ; SWAP ; COMPARE ; LE ; IF {} { PUSH string "E_MAX_30_DAYS" ; FAILWITH } ; DUP ; GET 15 ; PUSH nat 1 ; SWAP ; COMPARE ; GE ; IF {} { PUSH string "E_PRICE_INCR_0" ; FAILWITH } ; DUP ; GET 13 ; PUSH nat 3600 ; SWAP ; COMPARE ; LE ; IF {} { PUSH string "E_MAX_1_HR_EXT" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; UNIT ; VIEW "get_management_fee" nat ; IF_NONE { PUSH int 148 ; FAILWITH } {} ; PUSH nat 100 ; DUP 3 ; GET 17 ; SIZE ; COMPARE ; LE ; IF {} { PUSH string "R_TOO_MANY_SHARES" ; FAILWITH } ; PUSH nat 0 ; DUP 3 ; GET 17 ; 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 4 ; CAR ; GET 3 ; DUP 4 ; GET 19 ; VIEW "is_valid_referral_fee_level" bool ; IF_NONE { PUSH int 156 ; FAILWITH } {} ; IF {} { PUSH string "E_INVALID_R_FEE" ; FAILWITH } ; NIL operation ; DUP 6 ; DUP 5 ; CAR ; CDR ; SELF_ADDRESS ; PAIR ; SENDER ; PAIR ; DUP 6 ; CAR ; CAR ; PUSH nat 1 ; PAIR ; PAIR ; SWAP ; DIG 6 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 6 ; DIG 3 ; DUG 6 ; DUG 6 ; NOW ; DUP 6 ; GET 9 ; IF_NONE {} { SWAP ; DROP } ; DUP 7 ; UNPAIR ; UNPAIR ; DUP 9 ; GET 20 ; EMPTY_MAP address nat ; DUP 11 ; GET 19 ; DUP 11 ; DUP 13 ; GET 17 ; SENDER ; PUSH nat 0 ; DIG 15 ; DUP ; GET 15 ; SWAP ; DUP ; DUG 17 ; GET 13 ; NONE timestamp ; DUP 14 ; DIG 19 ; DUP ; GET 11 ; SWAP ; DUP ; GET 7 ; SWAP ; DUP ; GET 5 ; SWAP ; DUP ; DUG 23 ; GET 3 ; SOME ; DUP 24 ; CAR ; SENDER ; PAIR 17 ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 6 ; DROP ; SOME ; DIG 5 ; GET 5 ; UPDATE ; PAIR ; PAIR ; DUP ; GET 5 ; PUSH nat 1 ; ADD ; UPDATE 5 ; SWAP } { 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 } } } } { IF_LEFT { IF_LEFT { 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 } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 499 ; FAILWITH } {} ; DUP ; GET 15 ; IF_NONE { PUSH int 501 ; FAILWITH } {} ; NOW ; COMPARE ; GE ; IF {} { PUSH string "E_AUCTION_ACTIVE" ; FAILWITH } ; NIL operation ; DUP 5 ; DIG 2 ; DUP ; GET 3 ; CDR ; SWAP ; DUP ; DUG 4 ; GET 23 ; PAIR ; SELF_ADDRESS ; PAIR ; DUP 4 ; GET 3 ; CAR ; PUSH nat 1 ; PAIR ; PAIR ; SWAP ; DIG 5 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 5 ; DIG 3 ; DUG 5 ; DUG 5 ; PUSH nat 0 ; DUP 4 ; GET 21 ; COMPARE ; GT ; IF { DUP 5 ; GET 6 ; UNIT ; VIEW "get_treasury" address ; IF_NONE { PUSH int 158 ; FAILWITH } {} ; DUP 4 ; GET 27 ; PUSH nat 0 ; DUP 6 ; GET 31 ; DUP 7 ; GET 31 ; ITER { DIG 2 ; SWAP ; CDR ; ADD ; SWAP } ; PUSH nat 0 ; DUP 8 ; GET 29 ; COMPARE ; EQ ; IF { SWAP ; DUP ; DUG 2 ; DIG 3 ; SUB ; ISNAT ; IF_NONE { PUSH int 47 ; FAILWITH } {} ; DUG 2 } {} ; DUP 7 ; GET 25 ; 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 7 ; GET 7 ; IF_LEFT { PUSH nat 0 ; DUP 3 ; ITER { DUP ; CDR ; PUSH nat 10000 ; SWAP ; DUP 12 ; GET 21 ; 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 ; SELF_ADDRESS ; PAIR ; TRANSFER_TOKENS ; CONS ; DUG 7 } { DROP 2 } } ; DUP ; DUP 10 ; GET 21 ; SUB ; DUP 10 ; GET 21 ; 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 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 } {} ; DUP 5 ; CAR ; PAIR ; SELF_ADDRESS ; PAIR ; TRANSFER_TOKENS ; CONS } { DROP 8 ; DIG 4 ; DROP } } { PUSH nat 0 ; NIL (pair address (pair nat nat)) ; DUP 4 ; ITER { DUP ; CDR ; PUSH nat 10000 ; SWAP ; DUP 13 ; GET 21 ; 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 ; GET 21 ; DUP 3 ; COMPARE ; LE ; IF {} { PUSH string "PH_INVALID_TOTAL" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; DUP 11 ; GET 21 ; 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 7 ; DROP ; ISNAT ; IF_NONE { PUSH int 122 ; FAILWITH } {} ; DUP 3 ; CDR ; DUP 6 ; CAR ; PAIR 3 ; CONS } { DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; 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 ; SELF_ADDRESS ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS } } { DROP ; DIG 4 ; DROP } ; SWAP ; DUP ; DUG 2 ; GET 5 ; IF_NONE { SWAP ; DROP } { SWAP ; DUP 3 ; CAR ; CONTRACT %_update_sales (pair (nat %amount) (pair %token (address %address) (pair (nat %exhibition_id) (nat %token_id)))) ; IF_NONE { PUSH int 551 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 5 ; GET 3 ; CDR ; DIG 4 ; DIG 5 ; GET 3 ; CAR ; PAIR 3 ; PUSH nat 1 ; PAIR ; TRANSFER_TOKENS ; CONS } ; DIG 2 ; UNPAIR ; UNPAIR ; NONE (pair address (pair (pair address nat) (pair (option nat) (pair (or address (pair address nat)) (pair nat (pair nat (pair timestamp (pair (option timestamp) (pair nat (pair nat (pair nat (pair address (pair (map address nat) (pair nat (pair nat (pair (map address nat) (option (pair address bytes)))))))))))))))))) ; DIG 5 ; UPDATE ; PAIR ; PAIR ; 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 } { 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 ; CAR ; DIG 3 ; SWAP ; 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_next_auction_id" unit nat { CDR ; GET 5 } }