x
509
parameter (or (or (or (nat %cancel_swap) (nat %collect)) (or (unit %payout_balance) (bool %set_pause_collects))) (or (or (bool %set_pause_swaps) (pair %swap (address %fa2) (pair (nat %objkt_id) (pair (nat %objkt_amount) (pair (mutez %xtz_per_objkt) (pair (nat %royalties) (address %creator))))))) (or (nat %update_fee) (nat %update_royalties))));storage (pair (pair (pair (big_map %allowed_fa2s address unit) (bool %collects_paused)) (pair (nat %counter) (pair (nat %fee) (address %fee_recipient)))) (pair (pair (address %manager) (big_map %metadata string bytes)) (pair (nat %royalties) (pair (big_map %swaps nat (pair (address %issuer) (pair (address %fa2) (pair (nat %objkt_id) (pair (nat %objkt_amount) (pair (mutez %xtz_per_objkt) (pair (nat %royalties) (address %creator)))))))) (bool %swaps_paused)))));code { UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 7 ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "MP_WRONG_SWAP_ID" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 7 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 83 ; FAILWITH } {} ; DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "MP_NOT_SWAP_ISSUER" ; FAILWITH } ; DUP ; GET 7 ; PUSH nat 0 ; COMPARE ; LT ; IF {} { PUSH string "MP_SWAP_COLLECTED" ; FAILWITH } ; DUP ; GET 3 ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH int 125 ; 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 ; GET 7 ; SWAP ; GET 5 ; SENDER ; PAIR 3 ; CONS ; SELF_ADDRESS ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS ; DIG 2 ; DUP ; GET 7 ; NONE (pair address (pair address (pair nat (pair nat (pair mutez (pair nat address)))))) ; DIG 4 ; UPDATE ; UPDATE 7 ; SWAP } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; IF { PUSH string "MP_COLLECTS_PAUSED" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; GET 7 ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "MP_WRONG_SWAP_ID" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 7 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 61 ; FAILWITH } {} ; DUP ; CAR ; SENDER ; COMPARE ; NEQ ; IF {} { PUSH string "MP_IS_SWAP_ISSUER" ; FAILWITH } ; DUP ; GET 9 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "MP_WRONG_TEZ_AMOUNT" ; FAILWITH } ; DUP ; GET 7 ; PUSH nat 0 ; COMPARE ; LT ; IF {} { PUSH string "MP_SWAP_COLLECTED" ; FAILWITH } ; DUP ; GET 9 ; PUSH mutez 0 ; COMPARE ; NEQ ; IF { PUSH nat 1000 ; SWAP ; DUP ; GET 11 ; SWAP ; DUP ; DUG 3 ; GET 9 ; MUL ; EDIV ; IF_NONE { PUSH int 66 ; FAILWITH } {} ; CAR ; DUP ; PUSH mutez 0 ; COMPARE ; LT ; IF { NIL operation ; DUP 3 ; GET 12 ; CONTRACT unit ; IF_NONE { PUSH int 68 ; FAILWITH } {} ; DUP 3 ; UNIT ; TRANSFER_TOKENS ; CONS } { NIL operation } ; PUSH nat 1000 ; DUP 6 ; CAR ; GET 5 ; DUP 5 ; GET 9 ; MUL ; EDIV ; IF_NONE { PUSH int 69 ; FAILWITH } {} ; CAR ; DUP ; PUSH mutez 0 ; COMPARE ; LT ; IF { SWAP ; DUP 6 ; CAR ; GET 6 ; CONTRACT unit ; IF_NONE { PUSH int 71 ; FAILWITH } {} ; DUP 3 ; UNIT ; TRANSFER_TOKENS ; CONS ; SWAP } {} ; SWAP ; DUP 4 ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 72 ; FAILWITH } {} ; DIG 2 ; DIG 3 ; AMOUNT ; SUB_MUTEZ ; IF_NONE { PUSH int 72 ; FAILWITH } {} ; SUB_MUTEZ ; IF_NONE { PUSH int 72 ; FAILWITH } {} ; UNIT ; TRANSFER_TOKENS ; CONS } { NIL operation } ; SWAP ; DUP ; DUG 2 ; GET 3 ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH int 125 ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; PUSH nat 1 ; DUP 7 ; GET 5 ; SENDER ; PAIR 3 ; CONS ; SELF_ADDRESS ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS ; DIG 3 ; DUP ; GET 7 ; DUP ; DUP 6 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 74 ; FAILWITH } {} ; PUSH nat 1 ; DIG 6 ; GET 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 74 ; FAILWITH } {} ; UPDATE 7 ; SOME ; SWAP ; UPDATE ; UPDATE 7 ; DUG 2 ; PUSH nat 0 ; DUP 4 ; GET 7 ; DUP 4 ; GET ; IF_NONE { PUSH int 75 ; FAILWITH } {} ; GET 7 ; COMPARE ; EQ ; IF { DIG 2 ; DUP ; GET 7 ; NONE (pair address (pair address (pair nat (pair nat (pair mutez (pair nat address)))))) ; DIG 4 ; UPDATE ; UPDATE 7 ; SWAP } { SWAP ; DROP } } } { IF_LEFT { DROP ; DUP ; GET 3 ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "only the admin can receive the payment from the contract" ; FAILWITH } ; DUP ; GET 3 ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 122 ; FAILWITH } {} ; NIL operation ; SWAP ; BALANCE ; UNIT ; TRANSFER_TOKENS ; CONS } { SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; CAR ; DIG 3 ; SWAP ; PAIR ; PAIR ; PAIR ; NIL operation } } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ; UPDATE 8 ; NIL operation } { SWAP ; DUP ; DUG 2 ; GET 8 ; IF { PUSH string "MP_SWAPS_PAUSED" ; FAILWITH } {} ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF {} { PUSH string "MP_FA2_NOT_ALLOWED" ; FAILWITH } ; DUP ; GET 5 ; PUSH nat 0 ; COMPARE ; LT ; IF {} { PUSH string "MP_NO_SWAPPED_EDITIONS" ; FAILWITH } ; DUP ; CAR ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH int 125 ; 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 ; GET 5 ; SWAP ; DUP ; DUG 7 ; GET 3 ; SELF_ADDRESS ; PAIR 3 ; CONS ; SENDER ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS ; DUP 3 ; DUP ; GET 7 ; DUP 4 ; GET 10 ; DUP 6 ; GET 5 ; DIG 5 ; DUP ; GET 7 ; SWAP ; DUP ; GET 5 ; SWAP ; DUP ; GET 3 ; SWAP ; DUP ; DUG 9 ; CAR ; SENDER ; PAIR 7 ; DIG 4 ; DROP ; SOME ; DIG 4 ; CAR ; GET 3 ; UPDATE ; UPDATE 7 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; PUSH nat 1 ; ADD ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ; DUP ; PUSH nat 250 ; SWAP ; COMPARE ; LE ; IF {} { PUSH string "MP_WRONG_FEES" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CDR ; DIG 4 ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "MP_NOT_MANAGER" ; FAILWITH } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "MP_TEZ_TRANSFER" ; FAILWITH } ; DUP ; PUSH nat 250 ; SWAP ; COMPARE ; LE ; IF {} { PUSH string "MP_WRONG_ROYALTIES" ; FAILWITH } ; UPDATE 5 } ; NIL operation } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }