x
639
1155
parameter (or (or (or (pair %balance_of (list %requests (pair (address %owner) (nat %token_id))) (contract %callback (list (pair (pair %request (address %owner) (nat %token_id)) (nat %balance))))) (unit %default)) (or (pair %mint (map %metadata string bytes) (address %to_)) (or (unit %play) (list %redeem nat)))) (or (or (bool %toggle_pause) (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount))))))) (or (list %update_operators (or (pair %add_operator (address %owner) (pair (address %operator) (nat %token_id))) (pair %remove_operator (address %owner) (pair (address %operator) (nat %token_id))))) (or (nat %withdraw_hux) (mutez %withdraw_tez)))));storage (pair (address %administrator) (pair (address %burn_address) (pair (pair %distribution nat nat) (pair (string %failure_nft_base_url) (pair (big_map %game_ledger nat (pair (address %player) (pair (bool %redeemed) (pair (nat %result) (nat %result_id))))) (pair (mutez %game_price) (pair (mutez %game_reward) (pair (nat %hux_amount) (pair (address %hux_contract_address) (pair (nat %last_failure_id) (pair (nat %last_success_id) (pair (big_map %ledger nat address) (pair (nat %max_mint) (pair (big_map %metadata string bytes) (pair (nat %next_token_id) (pair (big_map %operators (pair (address %owner) (pair (address %operator) (nat %token_id))) unit) (pair (bool %pause) (pair (string %success_nft_base_url) (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes)))))))))))))))))))));code { LAMBDA (pair unit (pair address (pair address (pair (pair nat nat) (pair string (pair (big_map nat (pair address (pair bool (pair nat nat)))) (pair mutez (pair mutez (pair nat (pair address (pair nat (pair nat (pair (big_map nat address) (pair nat (pair (big_map string bytes) (pair nat (pair (big_map (pair address (pair address nat)) unit) (pair bool (pair string (big_map nat (pair nat (map string bytes)))))))))))))))))))))) (pair unit (pair address (pair address (pair (pair nat nat) (pair string (pair (big_map nat (pair address (pair bool (pair nat nat)))) (pair mutez (pair mutez (pair nat (pair address (pair nat (pair nat (pair (big_map nat address) (pair nat (pair (big_map string bytes) (pair nat (pair (big_map (pair address (pair address nat)) unit) (pair bool (pair string (big_map nat (pair nat (map string bytes)))))))))))))))))))))) { CDR ; DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "NotAdmin" ; FAILWITH } ; UNIT ; PAIR } ; SWAP ; LAMBDA (pair unit (pair address (pair address (pair (pair nat nat) (pair string (pair (big_map nat (pair address (pair bool (pair nat nat)))) (pair mutez (pair mutez (pair nat (pair address (pair nat (pair nat (pair (big_map nat address) (pair nat (pair (big_map string bytes) (pair nat (pair (big_map (pair address (pair address nat)) unit) (pair bool (pair string (big_map nat (pair nat (map string bytes)))))))))))))))))))))) (pair unit (pair address (pair address (pair (pair nat nat) (pair string (pair (big_map nat (pair address (pair bool (pair nat nat)))) (pair mutez (pair mutez (pair nat (pair address (pair nat (pair nat (pair (big_map nat address) (pair nat (pair (big_map string bytes) (pair nat (pair (big_map (pair address (pair address nat)) unit) (pair bool (pair string (big_map nat (pair nat (map string bytes)))))))))))))))))))))) { CDR ; PUSH bool False ; DUP 2 ; GET 33 ; COMPARE ; EQ ; IF {} { PUSH string "ContractPaused" ; 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 ; GET 7 ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH int 98 ; FAILWITH } {} ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; DUP 5 ; CAR ; DUP 6 ; GET 8 ; DUP 7 ; GET 3 ; PAIR 3 ; CONS ; DIG 4 ; GET 5 ; PAIR ; CONS ; DUG 2 ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { NIL (pair (pair address nat) nat) ; DUP 2 ; CAR ; ITER { DUP 4 ; GET 29 ; DUP 2 ; CDR ; COMPARE ; LT ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; SWAP ; DUP 2 ; CAR ; DUP 5 ; GET 23 ; DUP 4 ; CDR ; GET ; IF_NONE { PUSH int 142 ; FAILWITH } {} ; COMPARE ; EQ ; IF { PUSH nat 1 } { PUSH nat 0 } ; DIG 2 ; PAIR ; CONS } ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 2 ; CDR ; PUSH mutez 0 ; DIG 3 ; NIL (pair (pair address nat) nat) ; SWAP ; ITER { CONS } ; TRANSFER_TOKENS ; CONS } { DROP ; SWAP ; DROP ; DIG 2 ; DROP ; UNIT ; PAIR ; EXEC ; CDR ; NIL operation } } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DUP 2 ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SELF_ADDRESS ; SENDER ; COMPARE ; EQ } ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; DUP 2 ; GET 29 ; DIG 2 ; DUP ; GET 36 ; DUP 4 ; CAR ; DUP 4 ; PAIR ; SOME ; DUP 4 ; UPDATE ; UPDATE 36 ; DUP ; GET 23 ; DIG 3 ; CDR ; SOME ; DIG 3 ; UPDATE ; UPDATE 23 ; DUP ; GET 29 ; PUSH nat 1 ; ADD ; UPDATE 29 ; NIL operation } { IF_LEFT { DUP 4 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUG 4 ; DUG 4 ; DIG 3 ; DIG 4 ; DUP 2 ; GET 11 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH string "InsufficientAmount" ; FAILWITH } ; DUP 2 ; GET 25 ; DUP 3 ; GET 29 ; COMPARE ; LT ; IF {} { PUSH string "MaxMintReached" ; FAILWITH } ; PUSH mutez 9000000 ; BALANCE ; COMPARE ; GE ; IF {} { PUSH string "InsufficientBalance" ; FAILWITH } ; DUP 2 ; GET 29 ; LAMBDA timestamp nat { PUSH timestamp "1970-01-01T00:00:00Z" ; SWAP ; SUB ; ABS } ; PUSH int 86400 ; PUSH nat 17623 ; DUP 6 ; GET 29 ; ADD ; INT ; MUL ; NOW ; ADD ; EXEC ; LEVEL ; PUSH nat 2 ; DUP 6 ; GET 29 ; DUP 3 ; DUP 5 ; MUL ; ADD ; EDIV ; IF_NONE { PUSH int 162 ; FAILWITH } { CDR } ; DUP 6 ; GET 5 ; UNPAIR ; PUSH string "" ; PUSH nat 1 ; DUP 5 ; COMPARE ; EQ ; IF { DUP 3 ; DUP 10 ; GET 19 ; COMPARE ; LT ; IF { DROP ; PUSH (list string) { ".json" } ; LAMBDA int string { PUSH (map int string) { Elt 0 "0" ; Elt 1 "1" ; Elt 2 "2" ; Elt 3 "3" ; Elt 4 "4" ; Elt 5 "5" ; Elt 6 "6" ; Elt 7 "7" ; Elt 8 "8" ; Elt 9 "9" } ; DUP 2 ; GE ; IF { PUSH int 10 ; DUP 3 ; COMPARE ; LT } { PUSH bool False } ; IF {} { PUSH string "Assert failure: (d >= 0) and (d < 10)" ; FAILWITH } ; SWAP ; GET ; IF_NONE { PUSH int 653 ; FAILWITH } {} } ; DUP 10 ; GET 19 ; INT ; EXEC ; CONS ; DUP 9 ; GET 7 ; CONS ; CONCAT ; DIG 8 ; DUP ; GET 36 ; EMPTY_MAP string bytes ; DUP 4 ; PACK ; SOME ; PUSH string "" ; UPDATE ; DUP 10 ; PAIR ; SOME ; DUP 10 ; UPDATE ; UPDATE 36 ; DUG 8 ; DUP 9 ; DUP ; GET 9 ; DUP 11 ; GET 19 ; DUP 7 ; PUSH bool False ; SENDER ; PAIR 4 ; DIG 11 ; DROP ; SOME ; DUP 10 ; UPDATE ; UPDATE 9 ; DUP ; GET 19 ; PUSH nat 1 ; ADD ; UPDATE 19 ; DUG 8 } { DIG 3 ; DROP 2 ; PUSH nat 0 ; DUG 2 ; PUSH (list string) { ".json" } ; LAMBDA int string { PUSH (map int string) { Elt 0 "0" ; Elt 1 "1" ; Elt 2 "2" ; Elt 3 "3" ; Elt 4 "4" ; Elt 5 "5" ; Elt 6 "6" ; Elt 7 "7" ; Elt 8 "8" ; Elt 9 "9" } ; DUP 2 ; GE ; IF { PUSH int 10 ; DUP 3 ; COMPARE ; LT } { PUSH bool False } ; IF {} { PUSH string "Assert failure: (d >= 0) and (d < 10)" ; FAILWITH } ; SWAP ; GET ; IF_NONE { PUSH int 653 ; FAILWITH } {} } ; DUP 10 ; GET 21 ; INT ; EXEC ; CONS ; DUP 9 ; GET 35 ; CONS ; CONCAT ; DIG 8 ; DUP ; GET 36 ; EMPTY_MAP string bytes ; DUP 4 ; PACK ; SOME ; PUSH string "" ; UPDATE ; DUP 10 ; PAIR ; SOME ; DUP 10 ; UPDATE ; UPDATE 36 ; DUG 8 ; DUP 9 ; DUP ; GET 9 ; DUP 11 ; GET 21 ; DUP 7 ; PUSH bool False ; SENDER ; PAIR 4 ; DIG 11 ; DROP ; SOME ; DUP 10 ; UPDATE ; UPDATE 9 ; DUP ; GET 21 ; PUSH nat 1 ; ADD ; UPDATE 21 ; DUG 8 } } { DUP 4 ; INT ; EQ ; IF { DUP 2 ; DUP 10 ; GET 21 ; COMPARE ; LT ; IF { DROP ; PUSH (list string) { ".json" } ; LAMBDA int string { PUSH (map int string) { Elt 0 "0" ; Elt 1 "1" ; Elt 2 "2" ; Elt 3 "3" ; Elt 4 "4" ; Elt 5 "5" ; Elt 6 "6" ; Elt 7 "7" ; Elt 8 "8" ; Elt 9 "9" } ; DUP 2 ; GE ; IF { PUSH int 10 ; DUP 3 ; COMPARE ; LT } { PUSH bool False } ; IF {} { PUSH string "Assert failure: (d >= 0) and (d < 10)" ; FAILWITH } ; SWAP ; GET ; IF_NONE { PUSH int 653 ; FAILWITH } {} } ; DUP 10 ; GET 21 ; INT ; EXEC ; CONS ; DUP 9 ; GET 35 ; CONS ; CONCAT ; DIG 8 ; DUP ; GET 36 ; EMPTY_MAP string bytes ; DUP 4 ; PACK ; SOME ; PUSH string "" ; UPDATE ; DUP 10 ; PAIR ; SOME ; DUP 10 ; UPDATE ; UPDATE 36 ; DUG 8 ; DUP 9 ; DUP ; GET 9 ; DUP 11 ; GET 21 ; DUP 7 ; PUSH bool False ; SENDER ; PAIR 4 ; DIG 11 ; DROP ; SOME ; DUP 10 ; UPDATE ; UPDATE 9 ; DUP ; GET 21 ; PUSH nat 1 ; ADD ; UPDATE 21 ; DUG 8 } { DIG 3 ; DROP 2 ; PUSH nat 1 ; DUG 2 ; PUSH (list string) { ".json" } ; LAMBDA int string { PUSH (map int string) { Elt 0 "0" ; Elt 1 "1" ; Elt 2 "2" ; Elt 3 "3" ; Elt 4 "4" ; Elt 5 "5" ; Elt 6 "6" ; Elt 7 "7" ; Elt 8 "8" ; Elt 9 "9" } ; DUP 2 ; GE ; IF { PUSH int 10 ; DUP 3 ; COMPARE ; LT } { PUSH bool False } ; IF {} { PUSH string "Assert failure: (d >= 0) and (d < 10)" ; FAILWITH } ; SWAP ; GET ; IF_NONE { PUSH int 653 ; FAILWITH } {} } ; DUP 10 ; GET 19 ; INT ; EXEC ; CONS ; DUP 9 ; GET 7 ; CONS ; CONCAT ; DIG 8 ; DUP ; GET 36 ; EMPTY_MAP string bytes ; DUP 4 ; PACK ; SOME ; PUSH string "" ; UPDATE ; DUP 10 ; PAIR ; SOME ; DUP 10 ; UPDATE ; UPDATE 36 ; DUG 8 ; DUP 9 ; DUP ; GET 9 ; DUP 11 ; GET 19 ; DUP 7 ; PUSH bool False ; SENDER ; PAIR 4 ; DIG 11 ; DROP ; SOME ; DUP 10 ; UPDATE ; UPDATE 9 ; DUP ; GET 19 ; PUSH nat 1 ; ADD ; UPDATE 19 ; DUG 8 } } {} } ; DIG 8 ; DUP ; GET 36 ; EMPTY_MAP string bytes ; DUP 4 ; PACK ; SOME ; PUSH string "" ; UPDATE ; DUP 10 ; PAIR ; SOME ; DUP 10 ; UPDATE ; UPDATE 36 ; DUP ; GET 23 ; SENDER ; SOME ; DUP 10 ; UPDATE ; UPDATE 23 ; DUG 8 ; NIL operation ; DUP 11 ; PUSH nat 0 ; DUP 12 ; GET 17 ; SELF_ADDRESS ; SENDER ; DUP 15 ; GET 15 ; PAIR 5 ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 5 ; DROP ; DIG 6 ; DROP ; DIG 6 ; DROP ; DIG 6 ; DROP ; SWAP ; DUG 2 ; PAIR ; EXEC ; CDR ; SWAP ; SENDER ; DIG 3 ; PAIR 3 ; EMIT %GamePlayed (pair (nat %game_id) (pair (address %player) (nat %result))) ; CONS ; SWAP ; DUP ; GET 29 ; PUSH nat 1 ; ADD ; UPDATE 29 ; SWAP } { PUSH nat 0 ; DUP 2 ; SIZE ; COMPARE ; GT ; IF {} { PUSH string "InvalidTokenIds" ; FAILWITH } ; PUSH mutez 9000000 ; BALANCE ; COMPARE ; GE ; IF {} { PUSH string "InsufficientBalance" ; FAILWITH } ; DUP 4 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUG 4 ; DUG 4 ; DIG 3 ; DIG 4 ; NIL operation ; DUP 2 ; ITER { DUP 4 ; GET 9 ; DUP 2 ; GET ; IF_NONE { PUSH int 295 ; FAILWITH } {} ; SENDER ; DUP 2 ; CAR ; COMPARE ; EQ ; IF {} { PUSH string "InvalidSender" ; FAILWITH } ; PUSH nat 0 ; DUP 2 ; GET 5 ; COMPARE ; EQ ; IF {} { PUSH string "InvalidResult" ; FAILWITH } ; PUSH bool False ; DUP 2 ; GET 3 ; COMPARE ; EQ ; IF {} { PUSH string "AlreadyRedeemed" ; FAILWITH } ; DUP 6 ; DUP 3 ; SELF_ADDRESS ; SENDER ; DUP 9 ; GET 3 ; PUSH nat 1 ; PAIR 5 ; DIG 2 ; DROP ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUG 6 ; DUG 6 ; DIG 5 ; DIG 6 ; SWAP ; SENDER ; CONTRACT unit ; IF_NONE { PUSH int 308 ; FAILWITH } {} ; DUP 5 ; GET 13 ; UNIT ; TRANSFER_TOKENS ; CONS ; SWAP ; DIG 3 ; DUP ; GET 9 ; DUP ; DIG 3 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 309 ; FAILWITH } {} ; PUSH bool True ; UPDATE 3 ; SOME ; SWAP ; UPDATE ; UPDATE 9 ; DUG 2 } ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; SENDER ; DIG 2 ; PAIR ; EMIT %RewardRedeemed (pair (list %game_id nat) (address %player)) ; CONS } } } } { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUP 2 ; UPDATE 33 ; SWAP ; EMIT %PauseToggled bool ; NIL operation ; SWAP ; CONS } { DUP ; ITER { DUP ; CDR ; ITER { DUP 4 ; GET 29 ; DUP 2 ; GET 3 ; COMPARE ; LT ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; SENDER ; DUP 3 ; CAR ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 4 ; GET 31 ; DUP 2 ; GET 3 ; SENDER ; DUP 5 ; CAR ; PAIR 3 ; MEM } ; IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ; PUSH nat 0 ; DUP 2 ; GET 4 ; COMPARE ; GT ; IF { PUSH nat 1 ; DUP 2 ; GET 4 ; COMPARE ; EQ ; IF { DUP 2 ; CAR ; DUP 5 ; GET 23 ; DUP 3 ; GET 3 ; GET ; IF_NONE { PUSH int 94 ; FAILWITH } {} ; COMPARE ; EQ } { PUSH bool False } ; IF {} { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } ; DIG 3 ; DUP ; GET 23 ; DUP 3 ; CAR ; SOME ; DIG 3 ; GET 3 ; UPDATE ; UPDATE 23 ; DUG 2 } { DROP } } ; DROP } ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; NIL operation } } { IF_LEFT { DUP ; ITER { IF_LEFT { SENDER ; DUP 2 ; CAR ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; DIG 2 ; DUP ; GET 31 ; PUSH (option unit) (Some Unit) ; DIG 3 ; UPDATE ; UPDATE 31 ; SWAP } { SENDER ; DUP 2 ; CAR ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; DIG 2 ; DUP ; GET 31 ; NONE unit ; DIG 3 ; UPDATE ; UPDATE 31 ; SWAP } } ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; NIL operation } { IF_LEFT { DUP 5 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; DUG 4 ; DUG 4 ; DIG 3 ; DIG 4 ; NIL operation ; DUP 4 ; PUSH nat 0 ; DUP 5 ; GET 17 ; SELF_ADDRESS ; DUP 7 ; CAR ; DUP 7 ; PAIR 5 ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; SWAP ; DUG 2 ; PAIR ; EXEC ; CDR ; SWAP ; EMIT %HuxWithdrawn nat ; CONS } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; UNIT ; SWAP ; DIG 3 ; DIG 2 ; PAIR ; EXEC ; CDR ; SWAP ; DUP ; BALANCE ; COMPARE ; GE ; IF {} { PUSH string "InsufficientBalance" ; FAILWITH } ; NIL operation ; DUP 3 ; CAR ; CONTRACT unit ; IF_NONE { PUSH int 324 ; FAILWITH } {} ; DUP 3 ; UNIT ; TRANSFER_TOKENS ; CONS ; SWAP ; EMIT %TezWithdrawn mutez ; CONS } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }