x
527
parameter (or (or (nat %cancel_swap) (nat %collect)) (or (pair %swap (pair (address %creator) (nat %objkt_amount)) (pair (nat %objkt_id) (pair (nat %royalties) (mutez %xtz_per_objkt)))) (or (nat %update_fee) (address %update_manager))));storage (pair (pair (nat %counter) (pair (nat %fee) (address %manager))) (pair (big_map %metadata string bytes) (pair (address %objkt) (big_map %swaps nat (pair (pair (address %creator) (pair (address %issuer) (nat %objkt_amount))) (pair (nat %objkt_id) (pair (nat %royalties) (mutez %xtz_per_objkt))))))));code { CAST (pair (or (or nat nat) (or (pair (pair address nat) (pair nat (pair nat mutez))) (or nat address))) (pair (pair nat (pair nat address)) (pair (big_map string bytes) (pair address (big_map nat (pair (pair address (pair address nat)) (pair nat (pair nat mutez)))))))) ; UNPAIR ; IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; GET 6 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 328 ; FAILWITH } {} ; CAR ; GET 3 ; SENDER ; COMPARE ; EQ ; IF { PUSH nat 0 ; DUP 3 ; GET 6 ; DUP 3 ; GET ; IF_NONE { PUSH int 328 ; FAILWITH } {} ; CAR ; GET 4 ; COMPARE ; NEQ } { PUSH bool False } ; IF {} { PUSH string "WrongCondition: (sp.sender == self.data.swaps[params].issuer) & (self.data.swaps[params].objkt_amount != 0)" ; FAILWITH } ; NIL operation ; DUP 3 ; GET 5 ; CONTRACT %transfer (list (pair address (list (pair address (pair nat nat))))) ; IF_NONE { PUSH int 343 ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; DUP 7 ; GET 6 ; DUP 7 ; GET ; IF_NONE { PUSH int 329 ; FAILWITH } {} ; CAR ; GET 4 ; DUP 8 ; GET 6 ; DUP 8 ; GET ; IF_NONE { PUSH int 329 ; FAILWITH } {} ; GET 3 ; SENDER ; PAIR 3 ; CONS ; SELF_ADDRESS ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS ; DIG 2 ; DUP ; GET 6 ; NONE (pair (pair address (pair address nat)) (pair nat (pair nat mutez))) ; DIG 4 ; UPDATE ; UPDATE 6 ; SWAP } { PUSH mutez 1 ; DUP ; DUP 4 ; GET 6 ; DUP 4 ; GET ; IF_NONE { PUSH int 301 ; FAILWITH } {} ; GET 6 ; EDIV ; IF_NONE { PUSH int 301 ; FAILWITH } {} ; CAR ; MUL ; AMOUNT ; COMPARE ; EQ ; IF { PUSH nat 0 ; DUP 3 ; GET 6 ; DUP 3 ; GET ; IF_NONE { PUSH int 301 ; FAILWITH } {} ; CAR ; GET 4 ; COMPARE ; NEQ } { PUSH bool False } ; IF {} { PUSH string "WrongCondition: (sp.amount == sp.mul(sp.fst(sp.ediv(self.data.swaps[params.swap_id].xtz_per_objkt, sp.mutez(1)).open_some()), sp.mutez(1))) & (self.data.swaps[params.swap_id].objkt_amount != 0)" ; FAILWITH } ; PUSH mutez 0 ; DUP 3 ; GET 6 ; DUP 3 ; GET ; IF_NONE { PUSH int 305 ; FAILWITH } {} ; GET 6 ; COMPARE ; NEQ ; IF { NIL operation ; DUP 3 ; GET 6 ; DUP 3 ; GET ; IF_NONE { PUSH int 314 ; FAILWITH } {} ; CAR ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 314 ; FAILWITH } {} ; PUSH mutez 1 ; DIG 4 ; DUP ; CAR ; GET 3 ; SWAP ; DUP ; DUG 6 ; GET 6 ; DUP 6 ; GET ; IF_NONE { PUSH int 311 ; FAILWITH } {} ; GET 5 ; ADD ; PUSH nat 1000 ; DIG 6 ; DUP ; CAR ; GET 3 ; SWAP ; DUP ; DUG 8 ; GET 6 ; DUP 8 ; GET ; IF_NONE { PUSH int 310 ; FAILWITH } {} ; GET 5 ; ADD ; PUSH mutez 1 ; DUP 9 ; GET 6 ; DUP 9 ; GET ; IF_NONE { PUSH int 307 ; FAILWITH } {} ; GET 6 ; EDIV ; IF_NONE { PUSH int 307 ; FAILWITH } {} ; CAR ; MUL ; EDIV ; IF_NONE { PUSH int 310 ; FAILWITH } { CAR } ; DUP 7 ; GET 6 ; DUP 7 ; GET ; IF_NONE { PUSH int 311 ; FAILWITH } {} ; GET 5 ; MUL ; EDIV ; IF_NONE { PUSH int 311 ; FAILWITH } { CAR } ; MUL ; UNIT ; TRANSFER_TOKENS ; CONS ; DUP 3 ; CAR ; GET 4 ; CONTRACT unit ; IF_NONE { PUSH int 317 ; FAILWITH } {} ; PUSH mutez 1 ; DIG 4 ; DUP ; CAR ; GET 3 ; SWAP ; DUP ; DUG 6 ; GET 6 ; DUP 6 ; GET ; IF_NONE { PUSH int 311 ; FAILWITH } {} ; GET 5 ; ADD ; PUSH nat 1000 ; DIG 6 ; DUP ; CAR ; GET 3 ; SWAP ; DUP ; DUG 8 ; GET 6 ; DUP 8 ; GET ; IF_NONE { PUSH int 310 ; FAILWITH } {} ; GET 5 ; ADD ; PUSH mutez 1 ; DUP 9 ; GET 6 ; DUP 9 ; GET ; IF_NONE { PUSH int 307 ; FAILWITH } {} ; GET 6 ; EDIV ; IF_NONE { PUSH int 307 ; FAILWITH } {} ; CAR ; MUL ; EDIV ; IF_NONE { PUSH int 310 ; FAILWITH } { CAR } ; DUP 7 ; GET 6 ; DUP 7 ; GET ; IF_NONE { PUSH int 311 ; FAILWITH } {} ; GET 5 ; MUL ; EDIV ; IF_NONE { PUSH int 311 ; FAILWITH } { CAR } ; PUSH nat 1000 ; DIG 6 ; DUP ; CAR ; GET 3 ; SWAP ; DUP ; DUG 8 ; GET 6 ; DUP 8 ; GET ; IF_NONE { PUSH int 310 ; FAILWITH } {} ; GET 5 ; ADD ; PUSH mutez 1 ; DUP 9 ; GET 6 ; DUP 9 ; GET ; IF_NONE { PUSH int 307 ; FAILWITH } {} ; GET 6 ; EDIV ; IF_NONE { PUSH int 307 ; FAILWITH } {} ; CAR ; MUL ; EDIV ; IF_NONE { PUSH int 310 ; FAILWITH } { CAR } ; SUB ; ABS ; MUL ; UNIT ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 6 ; DUP 3 ; GET ; IF_NONE { PUSH int 320 ; FAILWITH } {} ; CAR ; GET 3 ; CONTRACT unit ; IF_NONE { PUSH int 320 ; FAILWITH } {} ; PUSH mutez 1 ; PUSH nat 1000 ; DIG 5 ; DUP ; CAR ; GET 3 ; SWAP ; DUP ; DUG 7 ; GET 6 ; DUP 7 ; GET ; IF_NONE { PUSH int 310 ; FAILWITH } {} ; GET 5 ; ADD ; PUSH mutez 1 ; DUP 8 ; GET 6 ; DUP 8 ; GET ; IF_NONE { PUSH int 307 ; FAILWITH } {} ; GET 6 ; EDIV ; IF_NONE { PUSH int 307 ; FAILWITH } {} ; CAR ; MUL ; EDIV ; IF_NONE { PUSH int 310 ; FAILWITH } { CAR } ; MUL ; AMOUNT ; SUB ; UNIT ; TRANSFER_TOKENS ; CONS } { NIL operation } ; DUP 3 ; DUP ; GET 6 ; DUP ; DUP 5 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 322 ; FAILWITH } {} ; UNPAIR ; UNPAIR ; SWAP ; CAR ; PUSH nat 1 ; DIG 9 ; GET 6 ; DUP 10 ; GET ; IF_NONE { PUSH int 322 ; FAILWITH } {} ; CAR ; GET 4 ; SUB ; ISNAT ; IF_NONE { PUSH int 322 ; FAILWITH } {} ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SOME ; SWAP ; UPDATE ; UPDATE 6 ; DUP ; DUG 3 ; GET 5 ; CONTRACT %transfer (list (pair address (list (pair address (pair nat nat))))) ; IF_NONE { PUSH int 343 ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; PUSH nat 1 ; DUP 8 ; GET 6 ; DIG 7 ; GET ; IF_NONE { PUSH int 324 ; FAILWITH } {} ; GET 3 ; SENDER ; PAIR 3 ; CONS ; SELF_ADDRESS ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS } } { IF_LEFT { DUP ; CAR ; CDR ; PUSH nat 0 ; COMPARE ; LT ; IF { DUP ; GET 5 ; PUSH nat 0 ; SWAP ; COMPARE ; GE ; IF { DUP ; GET 5 ; PUSH nat 250 ; SWAP ; COMPARE ; LE } { PUSH bool False } } { PUSH bool False } ; IF {} { PUSH string "WrongCondition: (params.objkt_amount > 0) & ((params.royalties >= 0) & (params.royalties <= 250))" ; FAILWITH } ; NIL operation ; DUP 3 ; GET 5 ; CONTRACT %transfer (list (pair address (list (pair address (pair nat nat))))) ; IF_NONE { PUSH int 343 ; FAILWITH } {} ; 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 3 ; SELF_ADDRESS ; PAIR 3 ; CONS ; SENDER ; PAIR ; CONS ; TRANSFER_TOKENS ; CONS ; DUP 3 ; DUP ; GET 6 ; DIG 3 ; DUP ; GET 6 ; SWAP ; DUP ; DUG 5 ; GET 5 ; PAIR ; DUP 5 ; GET 3 ; PAIR ; DUP 5 ; CAR ; CDR ; SENDER ; PAIR ; DIG 5 ; CAR ; CAR ; PAIR ; PAIR ; SOME ; DIG 4 ; CAR ; CAR ; UPDATE ; UPDATE 6 ; UNPAIR ; UNPAIR ; PUSH nat 1 ; ADD ; PAIR ; PAIR ; SWAP } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; GET 4 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "WrongCondition: sp.sender == self.data.manager" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; DIG 3 ; PAIR ; SWAP ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; GET 4 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "WrongCondition: sp.sender == self.data.manager" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CAR ; DIG 3 ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR } ; NIL operation } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }