x
715
{ parameter (or (or (or (or (nat %cancel_swap) (nat %collect)) (or (unit %default) (pair %execute (lambda %lambda (pair (pair (pair (pair (pair (address %administrator) (set %coreParticipants address)) (bool %isPaused) (address %marketplaceAddress)) (pair (address %minterAddress) (address %registryAddress)) (nat %residuals) (map %shares address nat)) (pair (pair (nat %threshold) (address %tokenAddress)) (nat %totalReceived) (nat %totalShares)) (map %undistributed address nat)) bytes) (list operation)) (bytes %packedParams)))) (or (or (pair %mint_OBJKT (pair (address %address) (nat %amount)) (bytes %metadata) (nat %royalties)) (pair %registry (bytes %metadata) (bytes %subjkt))) (or (nat %set_threshold) (pair %swap (pair (address %creator) (nat %objkt_amount)) (nat %objkt_id) (nat %royalties) (mutez %xtz_per_objkt))))) (or (or (or (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (nat %token_id) (nat %amount))))) (unit %unregistry)) (or (address %update_admin) (list %update_operators (or (pair %add_operator (address %owner) (address %operator) (nat %token_id)) (pair %remove_operator (address %owner) (address %operator) (nat %token_id)))))) (address %withdraw))) ; storage (pair (pair (pair (pair (address %administrator) (set %coreParticipants address)) (bool %isPaused) (address %marketplaceAddress)) (pair (address %minterAddress) (address %registryAddress)) (nat %residuals) (map %shares address nat)) (pair (pair (nat %threshold) (address %tokenAddress)) (nat %totalReceived) (nat %totalShares)) (map %undistributed address nat)) ; code { LAMBDA address (contract unit) { CONTRACT unit ; IF_NONE { PUSH string "ADDR_NF" ; FAILWITH } {} } ; LAMBDA nat mutez { PUSH mutez 1 ; SWAP ; MUL } ; LAMBDA unit unit { DROP ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF { UNIT } { PUSH string "AMNT_FRBD" ; FAILWITH } } ; LAMBDA (pair (pair (pair (pair address (set address)) (pair bool address)) (pair (pair address address) (pair nat (map address nat)))) (pair (pair (pair nat address) (pair nat nat)) (map address nat))) unit { CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { UNIT } { PUSH string "NOT_ADMIN" ; FAILWITH } } ; DIG 4 ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { DIG 4 ; DIG 5 ; DROP 2 ; IF_LEFT { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; CDR ; CONTRACT %cancel_swap nat ; IF_NONE { PUSH string "SWAP_NF" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; CDR ; CONTRACT %collect nat ; IF_NONE { PUSH string "SWAP_NF" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } } { DIG 3 ; DROP ; IF_LEFT { DIG 2 ; DROP 2 ; AMOUNT ; PUSH mutez 1 ; SWAP ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; CDR ; CAR ; SWAP ; DUP ; DUG 2 ; ADD ; DUP 3 ; CDR ; CDR ; DUP 4 ; CDR ; CAR ; CDR ; CDR ; DIG 3 ; DUP 5 ; CDR ; CAR ; CDR ; CAR ; ADD ; PAIR ; DUP 4 ; CDR ; CAR ; CAR ; PAIR ; PAIR ; DIG 2 ; CAR ; PAIR ; NIL operation ; SWAP ; DUP ; DUG 2 ; PUSH nat 0 ; PAIR ; PAIR ; SWAP ; CAR ; CDR ; CDR ; CDR ; ITER { SWAP ; PAIR ; DUP ; CAR ; CAR ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; DUP 3 ; CDR ; CAR ; DUP 3 ; CDR ; CAR ; CDR ; CDR ; DUP 5 ; CDR ; CDR ; DUP 7 ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP ; DUP 6 ; CAR ; CAR ; CAR ; ADD ; DUP 5 ; DUP 4 ; SWAP ; CDR ; CDR ; SWAP ; GET ; IF_NONE { PUSH nat 0 } {} ; DIG 2 ; ADD ; DUP 5 ; CDR ; CDR ; DUP 6 ; CDR ; CAR ; CAR ; CAR ; DUP 3 ; COMPARE ; GE ; IF { PUSH nat 0 } { SWAP ; DUP ; DUG 2 } ; DUP 5 ; SWAP ; SOME ; SWAP ; UPDATE ; DUP 6 ; CDR ; CAR ; PAIR ; DIG 5 ; CAR ; PAIR ; DUP ; CDR ; CAR ; CAR ; CAR ; DUP 3 ; COMPARE ; GE ; IF { SWAP } { SWAP ; DROP ; PUSH nat 0 } ; PUSH nat 0 ; SWAP ; DUP ; DUG 2 ; COMPARE ; GT ; IF { DIG 4 ; DIG 4 ; DIG 2 ; SWAP ; DUP 9 ; SWAP ; EXEC ; SWAP ; DUP 8 ; SWAP ; EXEC ; UNIT ; TRANSFER_TOKENS ; CONS } { DIG 3 ; DROP 2 ; DIG 2 } ; DIG 3 ; CAR ; UNPAIR ; CDR ; DIG 4 ; PAIR ; PAIR ; DUP ; CDR ; DIG 3 ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; CAR ; PAIR } ; DIG 2 ; DIG 3 ; DROP 2 ; DUP ; CAR ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; DIG 3 ; SUB ; PUSH int 0 ; SWAP ; DUP ; DUG 2 ; COMPARE ; GE ; IF { SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; CDR ; CDR ; DIG 2 ; ABS ; PAIR ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } { DROP ; PUSH string "WR_SHARES" ; FAILWITH } ; SWAP ; CDR ; PAIR } { DIG 3 ; DIG 4 ; DROP 2 ; SWAP ; DUP ; DUG 2 ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CDR ; DUP 3 ; PAIR ; SWAP ; CAR ; SWAP ; EXEC ; PAIR } } } { DIG 4 ; DIG 5 ; DROP 2 ; IF_LEFT { IF_LEFT { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; DUG 2 ; CAR ; CDR ; CAR ; CAR ; CONTRACT %mint_OBJKT (pair (pair (address %address) (nat %amount)) (pair (bytes %metadata) (nat %royalties))) ; IF_NONE { PUSH string "MINT_NF" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; DUG 2 ; CAR ; CDR ; CAR ; CDR ; CONTRACT %registry (pair (bytes %metadata) (bytes %subjkt)) ; IF_NONE { PUSH string "REG_NF" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } } { IF_LEFT { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CDR ; CDR ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; CDR ; DUP 3 ; CDR ; CAR ; CAR ; CDR ; DIG 4 ; PAIR ; PAIR ; PAIR ; SWAP ; CAR ; PAIR ; NIL operation ; PAIR } { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; DUG 2 ; CAR ; CAR ; CDR ; CDR ; CONTRACT %swap (pair (pair (address %creator) (nat %objkt_amount)) (pair (nat %objkt_id) (pair (nat %royalties) (mutez %xtz_per_objkt)))) ; IF_NONE { PUSH string "SWAP_NF" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } } } } { IF_LEFT { DIG 4 ; DIG 5 ; DROP 2 ; IF_LEFT { IF_LEFT { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; DUG 2 ; CDR ; CAR ; CAR ; CDR ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (nat %token_id) (nat %amount))))) ; IF_NONE { PUSH string "FA2_NF" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } { DROP ; UNIT ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; DIG 2 ; SWAP ; EXEC ; DROP ; DUP ; CAR ; CDR ; CAR ; CDR ; CONTRACT %unregistry unit ; IF_NONE { PUSH string "REG_NF" ; FAILWITH } {} ; PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } } { IF_LEFT { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; CDR ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; DUP 3 ; CAR ; CAR ; CDR ; DIG 3 ; CAR ; CAR ; CAR ; CDR ; DIG 4 ; PAIR ; PAIR ; PAIR ; PAIR ; NIL operation ; PAIR } { SWAP ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; DUP ; DIG 3 ; SWAP ; EXEC ; DROP ; DUP ; DUG 2 ; CDR ; CAR ; CAR ; CDR ; CONTRACT %update_operators (list (or (pair %add_operator (address %owner) (address %operator) (nat %token_id)) (pair %remove_operator (address %owner) (address %operator) (nat %token_id)))) ; IF_NONE { PUSH string "FA2_NF" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } } } { DIG 2 ; DROP ; SWAP ; UNIT ; DIG 3 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; DIG 4 ; SWAP ; EXEC ; SWAP ; DUP ; DUG 2 ; DUP 4 ; SWAP ; CDR ; CDR ; SWAP ; GET ; IF_NONE { PUSH nat 0 } {} ; DIG 4 ; SWAP ; EXEC ; DUP 3 ; CDR ; CDR ; DUP 4 ; CAR ; CDR ; CDR ; CDR ; DUP 6 ; MEM ; IF { PUSH nat 0 } { PUSH string "WR_ADDR" ; FAILWITH } ; DIG 5 ; SWAP ; SOME ; SWAP ; UPDATE ; DUP 4 ; CDR ; CAR ; PAIR ; DIG 3 ; CAR ; PAIR ; DUG 2 ; UNIT ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } } } ; view "get_administrator" unit address { CDR ; CAR ; CAR ; CAR ; CAR } ; view "get_core_participants" unit (set address) { CDR ; CAR ; CAR ; CAR ; CDR } ; view "get_shares" unit (map address nat) { CDR ; CAR ; CDR ; CDR ; CDR } ; view "get_total_received" unit nat { CDR ; CDR ; CAR ; CDR ; CAR } ; view "get_total_shares" unit nat { CDR ; CDR ; CAR ; CDR ; CDR } }