x
815
1223
parameter (or (or (or (unit %accept_superadmin) (or (nat %activate_pool) (address %add_admin))) (or (or (nat %buy_five) (nat %buy_one)) (or (nat %buy_three) (pair %create_pool (timestamp %end_time) (pair (nat %max_per_wallet) (pair (mutez %price_per_nft) (pair (timestamp %start_time) (list %tokens (pair (nat %editions) (pair (address %fa2_address) (nat %token_id))))))))))) (or (or (nat %deactivate_pool) (or (address %propose_superadmin) (list %register_tokens (pair (address %artist_address) (pair (address %fa2_address) (nat %token_id)))))) (or (or (address %remove_admin) (pair %remove_token (address %fa2_address) (nat %token_id))) (or (bool %set_pause) (pair %withdraw_tokens (nat %amount) (pair (address %destination) (pair (address %fa2_address) (nat %token_id))))))));storage (pair (big_map %admins address unit) (pair (nat %next_pool_id) (pair (bool %paused) (pair (big_map %pools nat (pair (bool %active) (pair (timestamp %end_time) (pair (nat %max_per_wallet) (pair (nat %num_tokens) (pair (mutez %price_per_nft) (pair (timestamp %start_time) (pair (map %tokens nat (pair (nat %editions) (pair (address %fa2_address) (nat %token_id)))) (nat %total_editions))))))))) (pair (address %project_address) (pair (option %proposed_superadmin address) (pair (big_map %purchases (pair nat address) nat) (pair (address %superadmin) (big_map %token_registry (pair address nat) address)))))))));code { LAMBDA (pair (pair nat nat) (pair (list operation) (pair (big_map address unit) (pair nat (pair bool (pair (big_map nat (pair bool (pair timestamp (pair nat (pair nat (pair mutez (pair timestamp (pair (map nat (pair nat (pair address nat))) nat)))))))) (pair address (pair (option address) (pair (big_map (pair nat address) nat) (pair address (big_map (pair address nat) address))))))))))) (pair unit (pair (list operation) (pair (big_map address unit) (pair nat (pair bool (pair (big_map nat (pair bool (pair timestamp (pair nat (pair nat (pair mutez (pair timestamp (pair (map nat (pair nat (pair address nat))) nat)))))))) (pair address (pair (option address) (pair (big_map (pair nat address) nat) (pair address (big_map (pair address nat) address))))))))))) { UNPAIR 3 ; SWAP ; DUP 2 ; CAR ; DUP 3 ; CDR ; DUP 5 ; GET 7 ; DUP 3 ; MEM ; IF {} { PUSH string "POOL_NOT_FOUND" ; FAILWITH } ; DUP 5 ; GET 7 ; DUP 3 ; GET ; IF_NONE { PUSH int 129 ; FAILWITH } {} ; DUP ; CAR ; IF {} { PUSH string "POOL_INACTIVE" ; FAILWITH } ; DUP ; GET 11 ; NOW ; COMPARE ; GE ; IF {} { PUSH string "SALE_NOT_STARTED" ; FAILWITH } ; DUP ; GET 3 ; NOW ; COMPARE ; LE ; IF {} { PUSH string "SALE_ENDED" ; FAILWITH } ; DUP 2 ; DUP 2 ; GET 7 ; COMPARE ; GE ; IF {} { PUSH string "NOT_ENOUGH_TOKENS" ; FAILWITH } ; SENDER ; DUP 4 ; PAIR ; DUP 7 ; GET 13 ; DUP 2 ; GET ; IF_NONE { PUSH nat 0 } {} ; DUP 3 ; GET 5 ; DUP 5 ; DUP 3 ; ADD ; COMPARE ; LE ; IF {} { PUSH string "WALLET_LIMIT_EXCEEDED" ; FAILWITH } ; DUP 4 ; DUP 4 ; GET 9 ; MUL ; DUP ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "WRONG_AMOUNT" ; FAILWITH } ; DIG 8 ; DUP ; GET 13 ; DUP 7 ; DUP 5 ; ADD ; SOME ; DUP 6 ; UPDATE ; UPDATE 13 ; DUG 8 ; LEVEL ; PUSH timestamp "1970-01-01T00:00:00Z" ; NOW ; SUB ; ISNAT ; IF_NONE { PUSH int 155 ; FAILWITH } {} ; ADD ; EMPTY_MAP address mutez ; PUSH mutez 0 ; PUSH nat 5 ; PUSH nat 4 ; DUP 9 ; GET 9 ; MUL ; EDIV ; IF_NONE { PUSH int 162 ; FAILWITH } {} ; CAR ; DUP 9 ; PUSH nat 0 ; DUP 2 ; INT ; GT ; LOOP { DUP 10 ; GET 14 ; PUSH nat 7919 ; PUSH nat 1 ; DUP 4 ; ADD ; DUP 9 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 168 ; FAILWITH } { CDR } ; PUSH nat 0 ; PUSH nat 0 ; PUSH bool False ; DUP 14 ; GET 7 ; PUSH nat 0 ; DUP 2 ; INT ; GT ; LOOP { DUP 3 ; IF {} { DUP 16 ; GET 13 ; DUP 2 ; GET ; IF_NONE { PUSH int 178 ; FAILWITH } {} ; CAR ; DUP 7 ; DUP 2 ; DUP 8 ; ADD ; COMPARE ; GT ; IF { DIG 3 ; DROP ; DIG 3 ; DROP 2 ; DUP ; DUG 2 ; PUSH bool True ; DUG 2 } { DIG 5 ; ADD ; DUG 4 } } ; PUSH nat 1 ; ADD ; DUP ; DUP 3 ; COMPARE ; GT } ; DROP 3 ; DUP 13 ; GET 13 ; DUP 2 ; GET ; IF_NONE { PUSH int 185 ; FAILWITH } {} ; PUSH nat 1 ; DUP 2 ; GET 4 ; SENDER ; PAIR 3 ; NIL (pair address (pair nat nat)) ; SWAP ; CONS ; SELF_ADDRESS ; PAIR ; DUP 2 ; GET 3 ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH string "INVALID_FA2" ; FAILWITH } {} ; DIG 18 ; SWAP ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; DIG 4 ; CONS ; TRANSFER_TOKENS ; CONS ; DUG 16 ; DUP ; GET 4 ; DUP 2 ; GET 3 ; PAIR ; DUP 20 ; GET 16 ; SWAP ; GET ; IF_NONE { PUSH int 207 ; FAILWITH } {} ; DUP 10 ; DUP 2 ; GET ; IF_NONE { PUSH mutez 0 } {} ; DIG 10 ; DUP 10 ; DIG 2 ; ADD ; SOME ; DIG 2 ; UPDATE ; DUG 8 ; DIG 7 ; DUP 8 ; ADD ; DUG 7 ; PUSH nat 1 ; DUP 15 ; GET 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 215 ; FAILWITH } {} ; DUP ; DUP 4 ; COMPARE ; NEQ ; IF { DIG 3 ; DROP ; DIG 3 ; DROP ; DUP 13 ; DUP ; GET 13 ; DIG 14 ; GET 13 ; DUP 4 ; GET ; IF_NONE { PUSH int 217 ; FAILWITH } {} ; SOME ; DIG 5 ; UPDATE ; UPDATE 13 ; DUP ; GET 13 ; DUP 4 ; SOME ; DUP 4 ; UPDATE ; UPDATE 13 ; DUG 11 } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } ; SWAP ; CAR ; DUP 12 ; GET 14 ; SUB ; ISNAT ; IF_NONE { PUSH int 221 ; FAILWITH } {} ; DIG 11 ; SWAP ; UPDATE 14 ; SWAP ; UPDATE 7 ; DUG 9 ; PUSH nat 1 ; ADD ; DUP ; DUP 3 ; COMPARE ; GT } ; DROP 2 ; EMPTY_MAP nat (pair nat (pair address nat)) ; DUP 10 ; PUSH nat 0 ; DUP 2 ; INT ; GT ; LOOP { DUP ; DUP 12 ; GET 7 ; ADD ; DIG 3 ; DUP 12 ; GET 13 ; DUP 3 ; GET ; IF_NONE { PUSH int 232 ; FAILWITH } {} ; SOME ; DUP 4 ; UPDATE ; DUG 3 ; DIG 11 ; DUP ; GET 13 ; NONE (pair nat (pair address nat)) ; DIG 3 ; UPDATE ; UPDATE 13 ; DUG 10 ; PUSH nat 1 ; ADD ; DUP ; DUP 3 ; COMPARE ; GT } ; DROP 2 ; DUP 10 ; PUSH nat 0 ; DUP 2 ; INT ; GT ; LOOP { DUP 3 ; DUP 2 ; GET ; IF_NONE { PUSH int 236 ; FAILWITH } {} ; PUSH nat 1 ; DUP 2 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH int 237 ; FAILWITH } {} ; DUP ; INT ; GT ; IF { DUP 13 ; DUP ; GET 13 ; DUP 4 ; GET 4 ; DIG 4 ; GET 3 ; DUP 5 ; PAIR 3 ; SOME ; DIG 14 ; GET 7 ; UPDATE ; UPDATE 13 ; DUP ; GET 7 ; PUSH nat 1 ; ADD ; UPDATE 7 ; DUP ; GET 14 ; DIG 2 ; ADD ; UPDATE 14 ; DUG 10 } { DROP 2 } ; PUSH nat 1 ; ADD ; DUP ; DUP 3 ; COMPARE ; GT } ; DROP 2 ; DIG 13 ; DUP ; GET 7 ; DUP 11 ; SOME ; DUP 14 ; UPDATE ; UPDATE 7 ; DUG 13 ; DUP 4 ; ITER { DIG 12 ; DUP 2 ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 252 ; FAILWITH } {} ; DIG 2 ; CDR ; UNIT ; TRANSFER_TOKENS ; CONS ; DUG 11 } ; DROP 2 ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; AMOUNT ; SUB_MUTEZ ; IF_NONE { PUSH int 255 ; FAILWITH } {} ; SWAP ; DUP 3 ; GET 9 ; CONTRACT unit ; IF_NONE { PUSH int 256 ; FAILWITH } {} ; DIG 2 ; UNIT ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (big_map address unit) (pair nat (pair bool (pair (big_map nat (pair bool (pair timestamp (pair nat (pair nat (pair mutez (pair timestamp (pair (map nat (pair nat (pair address nat))) nat)))))))) (pair address (pair (option address) (pair (big_map (pair nat address) nat) (pair address (big_map (pair address nat) address)))))))))) (pair unit (pair (big_map address unit) (pair nat (pair bool (pair (big_map nat (pair bool (pair timestamp (pair nat (pair nat (pair mutez (pair timestamp (pair (map nat (pair nat (pair address nat))) nat)))))))) (pair address (pair (option address) (pair (big_map (pair nat address) nat) (pair address (big_map (pair address nat) address)))))))))) { CDR ; DUP ; GET 15 ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP ; CAR ; SENDER ; MEM } ; IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ; UNIT ; PAIR } ; SWAP ; LAMBDA (pair unit (pair (big_map address unit) (pair nat (pair bool (pair (big_map nat (pair bool (pair timestamp (pair nat (pair nat (pair mutez (pair timestamp (pair (map nat (pair nat (pair address nat))) nat)))))))) (pair address (pair (option address) (pair (big_map (pair nat address) nat) (pair address (big_map (pair address nat) address)))))))))) (pair unit (pair (big_map address unit) (pair nat (pair bool (pair (big_map nat (pair bool (pair timestamp (pair nat (pair nat (pair mutez (pair timestamp (pair (map nat (pair nat (pair address nat))) nat)))))))) (pair address (pair (option address) (pair (big_map (pair nat address) nat) (pair address (big_map (pair address nat) address)))))))))) { CDR ; DUP ; GET 5 ; IF { PUSH string "PAUSED" ; FAILWITH } {} ; UNIT ; PAIR } ; SWAP ; LAMBDA (pair unit (pair (big_map address unit) (pair nat (pair bool (pair (big_map nat (pair bool (pair timestamp (pair nat (pair nat (pair mutez (pair timestamp (pair (map nat (pair nat (pair address nat))) nat)))))))) (pair address (pair (option address) (pair (big_map (pair nat address) nat) (pair address (big_map (pair address nat) address)))))))))) (pair unit (pair (big_map address unit) (pair nat (pair bool (pair (big_map nat (pair bool (pair timestamp (pair nat (pair nat (pair mutez (pair timestamp (pair (map nat (pair nat (pair address nat))) nat)))))))) (pair address (pair (option address) (pair (big_map (pair nat address) nat) (pair address (big_map (pair address nat) address)))))))))) { CDR ; DUP ; GET 15 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "NOT_SUPERADMIN" ; FAILWITH } ; UNIT ; PAIR } ; SWAP ; LAMBDA (pair (pair nat (pair address (pair address (pair address nat)))) (list operation)) (pair unit (list operation)) { UNPAIR ; SWAP ; DUP 2 ; CAR ; DUP 3 ; GET 8 ; DUP 4 ; GET 7 ; PAIR 3 ; NIL (pair address (pair nat nat)) ; SWAP ; CONS ; DUP 3 ; GET 5 ; PAIR ; DIG 2 ; GET 3 ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH string "INVALID_FA2" ; FAILWITH } {} ; DIG 2 ; SWAP ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; DIG 4 ; CONS ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DUP ; GET 11 ; IF_NONE { PUSH string "NO_PROPOSAL" ; FAILWITH } {} ; DUP ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "NOT_PROPOSED_SUPERADMIN" ; FAILWITH } ; UPDATE 15 ; NONE address ; UPDATE 11 } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; DUP 2 ; GET 7 ; DUP 2 ; MEM ; IF {} { PUSH string "POOL_NOT_FOUND" ; FAILWITH } ; DUP 2 ; GET 7 ; DUP 2 ; GET ; IF_NONE { PUSH int 387 ; FAILWITH } {} ; PUSH bool True ; UPDATE 1 ; DIG 2 ; DUP ; GET 7 ; DIG 2 ; SOME ; DIG 3 ; UPDATE ; UPDATE 7 } { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUP ; CAR ; PUSH (option unit) (Some Unit) ; DIG 3 ; UPDATE ; UPDATE 1 } } ; NIL operation } { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DIG 2 ; SWAP ; DIG 2 ; NIL operation ; DIG 3 ; PUSH nat 5 ; DIG 3 ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DIG 2 ; SWAP ; DIG 2 ; NIL operation ; DIG 3 ; PUSH nat 1 ; DIG 3 ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DIG 2 ; SWAP ; DIG 2 ; NIL operation ; DIG 3 ; PUSH nat 3 ; DIG 3 ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DUP 6 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUG 6 ; DUG 6 ; DIG 5 ; DIG 6 ; EMPTY_MAP nat (pair nat (pair address nat)) ; PUSH nat 0 ; PUSH nat 0 ; DUP 4 ; GET 8 ; ITER { DUP ; GET 4 ; DUP 2 ; GET 3 ; PAIR ; DUP 7 ; GET 16 ; SWAP ; MEM ; IF {} { PUSH string "TOKEN_NOT_REGISTERED" ; FAILWITH } ; PUSH nat 0 ; DUP 2 ; CAR ; COMPARE ; GT ; IF {} { PUSH string "ZERO_EDITIONS" ; FAILWITH } ; DIG 3 ; DUP 2 ; SOME ; DUP 5 ; UPDATE ; DUG 3 ; CAR ; ADD ; SWAP ; PUSH nat 1 ; ADD ; SWAP } ; DUP ; DUP 4 ; DUP 6 ; GET 7 ; DUP 7 ; GET 5 ; DUP 6 ; DUP 9 ; GET 3 ; DUP 10 ; CAR ; PUSH bool True ; PAIR 8 ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DUP 2 ; DUP ; GET 7 ; DIG 2 ; SOME ; DIG 3 ; GET 3 ; UPDATE ; UPDATE 7 ; DUP ; GET 3 ; PUSH nat 1 ; ADD ; UPDATE 3 ; NIL operation } } } } { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; DUP 2 ; GET 7 ; DUP 2 ; MEM ; IF {} { PUSH string "POOL_NOT_FOUND" ; FAILWITH } ; DUP 2 ; GET 7 ; DUP 2 ; GET ; IF_NONE { PUSH int 378 ; FAILWITH } {} ; PUSH bool False ; UPDATE 1 ; DIG 2 ; DUP ; GET 7 ; DIG 2 ; SOME ; DIG 3 ; UPDATE ; UPDATE 7 } { IF_LEFT { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; SOME ; UPDATE 11 } { DUP 6 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUG 6 ; DUG 6 ; DIG 5 ; DIG 6 ; DUP ; ITER { DUP ; GET 4 ; DUP 2 ; GET 3 ; PAIR ; DIG 3 ; DUP ; GET 16 ; DIG 3 ; CAR ; SOME ; DIG 3 ; UPDATE ; UPDATE 16 ; SWAP } ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } } ; NIL operation } { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUP ; CAR ; NONE unit ; DIG 3 ; UPDATE ; UPDATE 1 } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; DUP 2 ; GET 16 ; DUP 2 ; MEM ; IF {} { PUSH string "TOKEN_NOT_REGISTERED" ; FAILWITH } ; SWAP ; DUP ; GET 16 ; NONE address ; DIG 3 ; UPDATE ; UPDATE 16 } ; NIL operation } { IF_LEFT { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; UPDATE 5 ; NIL operation } { DUP 6 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUG 6 ; DUG 6 ; DIG 5 ; DIG 6 ; NIL operation ; DUP 4 ; DUP 3 ; GET 6 ; DUP 4 ; GET 3 ; SELF_ADDRESS ; DUP 6 ; GET 5 ; DUP 7 ; CAR ; PAIR 5 ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; SWAP ; DUG 2 ; PAIR ; EXEC ; CDR } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }