x
750
1734
parameter (or (or (or (or (pair %add_Game (bytes %payout) (pair (bytes %gameplay) (nat %guess_limit))) (or %admin (or (unit %confirm_admin) (bool %pause)) (address %set_admin))) (or (or %assets (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))))) (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount))))))) (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)))))) (nat %cancel_Bet))) (or (or (nat %disable_Game) (pair %divest_Shares (pair %bankroll_currency (address %fa2_address) (option %token_id nat)) (nat %amt))) (or (pair %invest (pair %bankroll_currency (address %fa2_address) (option %token_id nat)) (nat %amt)) (pair %make_Bet (pair %game_currency (address %fa2_address) (option %token_id nat)) (pair (nat %game_id) (pair (nat %bet) (list %guess nat))))))) (or (or (or (pair %resolve_Bet (nat %game_id) (bytes %revealed_secret)) (address %set_GP)) (or (nat %set_GPCutoff) (nat %set_InvestFee))) (nat %set_MaxPayout)));storage (pair (pair %assets (pair (big_map %ledger (pair address nat) nat) (big_map %operators (pair address (pair address nat)) unit)) (pair (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes))) (big_map %token_total_supply nat nat))) (pair (big_map %metadata string bytes) (pair (option %pauseable_admin (pair (pair (address %admin) (bool %paused)) (option %pending_admin address))) (pair (big_map %game_info nat (pair (nat %game_id) (pair (pair %game_currency (address %fa2_address) (option %token_id nat)) (pair (or %stage (unit %game_Resolved) (unit %maker_Committed)) (pair (address %maker) (pair (option %house_hash bytes) (pair (timestamp %start_time) (pair (nat %bet) (pair (list %guess nat) (pair (nat %payout) (pair (option %ended timestamp) (pair (option %winner bool) (pair (option %result nat) (bool %notify)))))))))))))) (pair (big_map %game_code nat (pair (nat %game_id) (pair (bool %playable) (pair (bytes %payout_calc_lambda) (pair (bytes %gameplay_lambda) (nat %guess_limit)))))) (pair (big_map %bankroll_ledger (pair (address %fa2_address) (option %token_id nat)) (pair (pair %game_currency (address %fa2_address) (option %token_id nat)) (pair (pair %share_currency (address %fa2_address) (option %token_id nat)) (pair (nat %total_bankroll) (pair (nat %total_vbankroll) (nat %total_shares_issued)))))) (pair (nat %current_game_id) (pair (nat %next_share_token_id) (pair (nat %next_game_id) (pair (address %house_wallet) (pair (address %gp_core) (pair (nat %gp_cutoff) (pair (nat %game_accuracy) (pair (nat %invest_fee) (nat %max_payout)))))))))))))));code { LAMBDA (option (pair (pair address bool) (option address))) unit { IF_NONE { UNIT } { CAR ; CAR ; SENDER ; COMPARE ; NEQ ; IF { PUSH string "NOT_AN_ADMIN" ; FAILWITH } { UNIT } } } ; LAMBDA (option (pair (pair address bool) (option address))) unit { IF_NONE { UNIT } { CAR ; CDR ; IF { PUSH string "PAUSED" ; FAILWITH } { UNIT } } } ; PUSH string "FA2_TOKEN_UNDEFINED" ; PUSH string "FA2_INSUFFICIENT_BALANCE" ; LAMBDA (pair (pair address nat) (big_map (pair address nat) nat)) nat { UNPAIR ; GET ; IF_NONE { PUSH nat 0 } {} } ; DUP ; LAMBDA (pair (lambda (pair (pair address nat) (big_map (pair address nat) nat)) nat) (pair (pair address nat) (pair nat (big_map (pair address nat) nat)))) (big_map (pair address nat) nat) { UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; DIG 2 ; UNPAIR ; DIG 3 ; DIG 3 ; PAIR ; DUP 3 ; SWAP ; DUP ; DUG 2 ; PAIR ; DIG 4 ; SWAP ; EXEC ; DIG 2 ; ADD ; PUSH nat 0 ; SWAP ; DUP ; DUG 2 ; COMPARE ; EQ ; IF { DROP ; NONE nat ; SWAP ; UPDATE } { DIG 2 ; SWAP ; SOME ; DIG 2 ; UPDATE } } ; SWAP ; APPLY ; DUP 3 ; DUP 3 ; PAIR ; LAMBDA (pair (pair (lambda (pair (pair address nat) (big_map (pair address nat) nat)) nat) string) (pair (pair address nat) (pair nat (big_map (pair address nat) nat)))) (big_map (pair address nat) nat) { UNPAIR ; UNPAIR ; DIG 2 ; UNPAIR ; UNPAIR ; DIG 2 ; UNPAIR ; DIG 3 ; DIG 3 ; PAIR ; DUP 3 ; SWAP ; DUP ; DUG 2 ; PAIR ; DIG 4 ; SWAP ; EXEC ; DIG 2 ; SWAP ; SUB ; ISNAT ; IF_NONE { DROP 2 ; FAILWITH } { DIG 3 ; DROP ; PUSH nat 0 ; SWAP ; DUP ; DUG 2 ; COMPARE ; EQ ; IF { DROP ; NONE nat ; SWAP ; UPDATE } { DIG 2 ; SWAP ; SOME ; DIG 2 ; UPDATE } } } ; SWAP ; APPLY ; LAMBDA (pair (pair address address) (pair nat (pair address (option nat)))) operation { UNPAIR ; UNPAIR ; DIG 2 ; UNPAIR ; SWAP ; DUP ; DUG 2 ; CDR ; IF_NONE { SWAP ; CAR ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH string "Invalid FA1.2 Address" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DIG 4 ; DIG 4 ; SWAP ; PAIR ; SWAP ; PAIR ; TRANSFER_TOKENS } { DROP ; SWAP ; DUP ; DUG 2 ; CDR ; IF_NONE { PUSH string "NO_ID" ; FAILWITH } {} ; DIG 2 ; CAR ; SWAP ; DIG 2 ; SWAP ; PAIR ; SWAP ; PAIR ; DUP ; CAR ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH string "Invalid FA2 Address" ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; DIG 4 ; NIL (pair address (pair nat nat)) ; DIG 6 ; DUP 7 ; CDR ; CAR ; DIG 7 ; CDR ; CDR ; SWAP ; PAIR ; SWAP ; PAIR ; CONS ; SWAP ; PAIR ; CONS ; TRANSFER_TOKENS } } ; LAMBDA (or unit unit) bool { IF_LEFT { DROP ; PUSH bool False } { DROP ; PUSH bool True } } ; LAMBDA (pair bool string) unit { UNPAIR ; NOT ; IF { FAILWITH } { DROP ; UNIT } } ; LAMBDA (list nat) nat { PUSH nat 0 ; SWAP ; ITER { DROP ; PUSH nat 1 ; ADD } } ; LAMBDA (pair nat (pair (pair (pair (big_map (pair address nat) nat) (big_map (pair address (pair address nat)) unit)) (pair (big_map nat (pair nat (map string bytes))) (big_map nat nat))) (pair (big_map string bytes) (pair (option (pair (pair address bool) (option address))) (pair (big_map nat (pair nat (pair (pair address (option nat)) (pair (or unit unit) (pair address (pair (option bytes) (pair timestamp (pair nat (pair (list nat) (pair nat (pair (option timestamp) (pair (option bool) (pair (option nat) bool))))))))))))) (pair (big_map nat (pair nat (pair bool (pair bytes (pair bytes nat))))) (pair (big_map (pair address (option nat)) (pair (pair address (option nat)) (pair (pair address (option nat)) (pair nat (pair nat nat))))) (pair nat (pair nat (pair nat (pair address (pair address (pair nat (pair nat (pair nat nat))))))))))))))) (pair nat (pair bool (pair bytes (pair bytes nat)))) { UNPAIR ; SWAP ; GET 9 ; SWAP ; GET ; IF_NONE { PUSH string "NO_GAME" ; FAILWITH } { PUSH bool True ; SWAP ; DUP ; DUG 2 ; GET 3 ; COMPARE ; EQ ; IF {} { DROP ; PUSH string "NO_GAME" ; FAILWITH } } } ; LAMBDA (pair nat (pair (pair (pair (big_map (pair address nat) nat) (big_map (pair address (pair address nat)) unit)) (pair (big_map nat (pair nat (map string bytes))) (big_map nat nat))) (pair (big_map string bytes) (pair (option (pair (pair address bool) (option address))) (pair (big_map nat (pair nat (pair (pair address (option nat)) (pair (or unit unit) (pair address (pair (option bytes) (pair timestamp (pair nat (pair (list nat) (pair nat (pair (option timestamp) (pair (option bool) (pair (option nat) bool))))))))))))) (pair (big_map nat (pair nat (pair bool (pair bytes (pair bytes nat))))) (pair (big_map (pair address (option nat)) (pair (pair address (option nat)) (pair (pair address (option nat)) (pair nat (pair nat nat))))) (pair nat (pair nat (pair nat (pair address (pair address (pair nat (pair nat (pair nat nat))))))))))))))) (pair nat (pair (pair address (option nat)) (pair (or unit unit) (pair address (pair (option bytes) (pair timestamp (pair nat (pair (list nat) (pair nat (pair (option timestamp) (pair (option bool) (pair (option nat) bool)))))))))))) { UNPAIR ; SWAP ; GET 7 ; SWAP ; GET ; IF_NONE { PUSH string "GAME_MISSING" ; FAILWITH } {} } ; LAMBDA (pair (pair address (option nat)) (pair (pair (pair (big_map (pair address nat) nat) (big_map (pair address (pair address nat)) unit)) (pair (big_map nat (pair nat (map string bytes))) (big_map nat nat))) (pair (big_map string bytes) (pair (option (pair (pair address bool) (option address))) (pair (big_map nat (pair nat (pair (pair address (option nat)) (pair (or unit unit) (pair address (pair (option bytes) (pair timestamp (pair nat (pair (list nat) (pair nat (pair (option timestamp) (pair (option bool) (pair (option nat) bool))))))))))))) (pair (big_map nat (pair nat (pair bool (pair bytes (pair bytes nat))))) (pair (big_map (pair address (option nat)) (pair (pair address (option nat)) (pair (pair address (option nat)) (pair nat (pair nat nat))))) (pair nat (pair nat (pair nat (pair address (pair address (pair nat (pair nat (pair nat nat))))))))))))))) (pair (pair address (option nat)) (pair (pair address (option nat)) (pair nat (pair nat nat)))) { UNPAIR ; SWAP ; GET 11 ; SWAP ; GET ; IF_NONE { PUSH string "BANKROLL_MISSING" ; FAILWITH } {} } ; DIG 14 ; UNPAIR ; PUSH string "Amount must be 0mutez" ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; PAIR ; DUP 8 ; SWAP ; EXEC ; DROP ; SELF_ADDRESS ; SWAP ; IF_LEFT { IF_LEFT { DIG 5 ; DIG 6 ; DIG 13 ; DIG 15 ; DROP 4 ; IF_LEFT { DIG 3 ; DIG 4 ; DIG 5 ; DIG 6 ; DIG 7 ; DIG 8 ; DIG 9 ; DIG 10 ; DIG 11 ; DROP 9 ; IF_LEFT { DIG 2 ; SWAP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 3 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUP ; DUG 3 ; GET 9 ; DUP 4 ; GET 17 ; PUSH bool True ; DUP 5 ; CAR ; DUP 6 ; GET 3 ; DIG 6 ; GET 4 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SOME ; DUP 4 ; GET 17 ; UPDATE ; UPDATE 9 ; PUSH nat 1 ; DIG 2 ; GET 17 ; ADD ; UPDATE 17 ; NIL operation ; PAIR } { SWAP ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; SWAP ; IF_LEFT { IF_LEFT { DIG 3 ; DROP 2 ; IF_NONE { PUSH string "NO_ADMIN_CAPABILITIES_CONFIGURED" ; FAILWITH } { DUP ; CDR ; IF_NONE { DROP ; PUSH string "NO_PENDING_ADMIN" ; FAILWITH } { SENDER ; COMPARE ; EQ ; IF { NONE address ; SWAP ; CAR ; CDR ; SENDER ; PAIR ; PAIR ; SOME } { DROP ; PUSH string "NOT_A_PENDING_ADMIN" ; FAILWITH } } } ; NIL operation ; PAIR } { SWAP ; DUP ; DUG 2 ; DIG 4 ; SWAP ; EXEC ; DROP ; SWAP ; IF_NONE { DROP ; PUSH string "NO_ADMIN_CAPABILITIES_CONFIGURED" ; FAILWITH } { DUP ; CDR ; DUG 2 ; CAR ; CAR ; PAIR ; PAIR ; SOME } ; NIL operation ; PAIR } } { SWAP ; DUP ; DUG 2 ; DIG 4 ; SWAP ; EXEC ; DROP ; SWAP ; IF_NONE { DROP ; PUSH string "NO_ADMIN_CAPABILITIES_CONFIGURED" ; FAILWITH } { SWAP ; SOME ; SWAP ; CAR ; PAIR ; SOME } ; NIL operation ; PAIR } ; UNPAIR ; DUG 2 ; UPDATE 5 ; SWAP ; PAIR } } { DIG 12 ; DROP ; IF_LEFT { SWAP ; DIG 3 ; DIG 4 ; DIG 5 ; DIG 6 ; DIG 7 ; DROP 6 ; SWAP ; DUP ; DUG 2 ; CAR ; SWAP ; IF_LEFT { IF_LEFT { DIG 3 ; DIG 4 ; DROP 2 ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; DUP 3 ; CAR ; CAR ; DIG 2 ; DUP ; CAR ; MAP { DUP 4 ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; NOT ; IF { DROP ; DUP 7 ; FAILWITH } { DUP 3 ; SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; PAIR ; PAIR ; DUP 8 ; SWAP ; EXEC ; SWAP ; PAIR } } ; DIG 2 ; DIG 3 ; DIG 6 ; DIG 7 ; DROP 4 ; SWAP ; CDR ; PUSH mutez 0 ; DIG 2 ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } { DIG 5 ; DROP ; SWAP ; DUP ; DUG 2 ; LAMBDA (pair (pair address address) (pair nat (big_map (pair address (pair address nat)) unit))) unit { UNPAIR ; UNPAIR ; DIG 2 ; UNPAIR ; DUP 4 ; DUP 4 ; COMPARE ; EQ ; IF { DROP 4 ; UNIT } { DIG 3 ; PAIR ; DIG 2 ; PAIR ; MEM ; IF { UNIT } { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } } } ; DIG 2 ; DUP 3 ; CAR ; CAR ; SWAP ; ITER { DUP ; DUG 2 ; CDR ; ITER { SWAP ; DUP 5 ; CDR ; CAR ; DUP 3 ; GET 3 ; MEM ; NOT ; IF { DROP 2 ; DUP 8 ; FAILWITH } { DUP 5 ; CAR ; CDR ; DUP 3 ; GET 3 ; PAIR ; SENDER ; DUP 5 ; CAR ; PAIR ; PAIR ; DUP 5 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; GET 4 ; PAIR ; SWAP ; DUP ; DUG 2 ; GET 3 ; DUP 4 ; CAR ; PAIR ; PAIR ; DUP 8 ; SWAP ; EXEC ; SWAP ; DUP ; DUG 2 ; GET 4 ; PAIR ; SWAP ; DUP ; DUG 2 ; GET 3 ; DIG 2 ; CAR ; PAIR ; PAIR ; DUP 8 ; SWAP ; EXEC } } ; SWAP ; DROP } ; SWAP ; DIG 2 ; DIG 5 ; DIG 6 ; DIG 7 ; DROP 5 ; SWAP ; DUP ; DUG 2 ; CDR ; DIG 2 ; CAR ; CDR ; DIG 2 ; PAIR ; PAIR ; NIL operation ; PAIR } } { DIG 3 ; DIG 4 ; DIG 5 ; DIG 6 ; DROP 4 ; SWAP ; DUP ; DUG 2 ; CAR ; CDR ; SWAP ; SENDER ; DUG 2 ; ITER { SWAP ; DUP 3 ; DUP 3 ; IF_LEFT {} {} ; CAR ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; SWAP ; IF_LEFT { SWAP ; UNIT ; SOME ; DUP 3 ; GET 4 ; DUP 4 ; GET 3 ; PAIR ; DIG 3 ; CAR ; PAIR ; UPDATE } { DUP ; DUG 2 ; GET 4 ; DUP 3 ; GET 3 ; PAIR ; DIG 2 ; CAR ; PAIR ; NONE unit ; SWAP ; UPDATE } } ; SWAP ; DROP ; SWAP ; DUP ; DUG 2 ; CDR ; SWAP ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR ; NIL operation ; PAIR } ; UNPAIR ; DUG 2 ; UPDATE 1 ; SWAP ; PAIR } { DIG 8 ; DIG 9 ; DIG 10 ; DIG 11 ; DROP 4 ; DIG 2 ; SWAP ; DIG 2 ; PUSH string "NOT_HOUSE_WALLET" ; DUP 4 ; GET 19 ; SENDER ; COMPARE ; EQ ; PAIR ; DIG 6 ; SWAP ; EXEC ; DROP ; DUP 3 ; DUP 3 ; PAIR ; DIG 5 ; SWAP ; EXEC ; DUP ; GET 7 ; SENDER ; COMPARE ; EQ ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 7 ; SWAP ; EXEC ; AND ; IF { DUP ; PUSH unit Unit ; LEFT unit ; UPDATE 5 ; NOW ; SOME ; UPDATE 19 ; DUP 5 ; SWAP ; DUP ; DUG 2 ; GET 3 ; PAIR ; DIG 6 ; SWAP ; EXEC ; DUP ; DUP 4 ; GET 17 ; DIG 2 ; GET 7 ; ADD ; UPDATE 7 ; DUP 3 ; GET 3 ; DIG 3 ; GET 13 ; PAIR ; SENDER ; DIG 4 ; PAIR ; PAIR ; DIG 5 ; SWAP ; EXEC ; DIG 4 ; DUP ; DUP ; DUG 6 ; GET 7 ; DUP 5 ; SOME ; DIG 6 ; UPDATE ; UPDATE 7 ; DIG 4 ; GET 11 ; DIG 3 ; SOME ; DIG 4 ; GET 3 ; UPDATE ; UPDATE 11 ; NIL operation ; DIG 2 ; CONS ; PAIR } { DROP 6 ; PUSH string "CANCEL_FAIL" ; FAILWITH } } } } { DIG 4 ; DIG 8 ; DIG 12 ; DROP 3 ; IF_LEFT { DIG 5 ; DIG 9 ; DIG 12 ; DROP 3 ; IF_LEFT { DIG 3 ; DIG 5 ; DIG 6 ; DIG 7 ; DIG 8 ; DIG 9 ; DROP 6 ; DIG 2 ; SWAP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 4 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; SWAP ; DUP ; DUG 2 ; PAIR ; DIG 3 ; SWAP ; EXEC ; DIG 2 ; DUP ; GET 9 ; DIG 2 ; PUSH bool False ; UPDATE 3 ; SOME ; DIG 3 ; UPDATE ; UPDATE 9 ; NIL operation ; PAIR } { DIG 4 ; DIG 10 ; DROP 2 ; DIG 2 ; SWAP ; DUP ; DUG 2 ; CDR ; PAIR ; SWAP ; CAR ; DUG 2 ; UNPAIR ; PUSH string "AMT_TOO_LOW" ; PUSH nat 0 ; DUP 3 ; COMPARE ; GT ; PAIR ; DIG 6 ; SWAP ; EXEC ; DROP ; SWAP ; DUP ; DUG 2 ; DIG 4 ; PAIR ; DIG 4 ; SWAP ; EXEC ; PUSH nat 0 ; SWAP ; DUP ; DUG 2 ; GET 8 ; COMPARE ; EQ ; IF { PUSH string "NO_SHARES" ; FAILWITH } { PUSH int 0 ; DUP 3 ; DUP 3 ; GET 8 ; SUB ; COMPARE ; LT ; IF { PUSH string "AMT_TOO_HIGH" ; FAILWITH } { DUP ; GET 8 ; SWAP ; DUP ; DUG 2 ; GET 7 ; DUP 4 ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR } } ; DUP ; DUP 3 ; GET 7 ; SUB ; ISNAT ; IF_NONE { PUSH string "TOKENS_TOO_HIGH" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; DUP 4 ; GET 5 ; SUB ; ISNAT ; IF_NONE { PUSH string "TOKENS_TOO_HIGH" ; FAILWITH } {} ; DUP 5 ; DUP 5 ; GET 8 ; SUB ; ISNAT ; IF_NONE { PUSH string "SHARES_OVERFLOW" ; FAILWITH } {} ; DUP 5 ; CAR ; DIG 4 ; PAIR ; SENDER ; DIG 8 ; PAIR ; PAIR ; DIG 7 ; SWAP ; EXEC ; DUP 5 ; GET 3 ; CDR ; IF_NONE { PUSH string "NO_ID" ; FAILWITH } {} ; DUP 8 ; CAR ; NIL (pair address (pair nat nat)) ; SENDER ; DIG 3 ; DIG 9 ; SWAP ; PAIR ; SWAP ; PAIR ; CONS ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SWAP ; DUP ; DUG 2 ; ITER { DUP ; DUG 2 ; GET 4 ; PAIR ; SWAP ; DUP ; DUG 2 ; GET 3 ; DIG 2 ; CAR ; PAIR ; PAIR ; DUP 10 ; SWAP ; EXEC } ; DIG 9 ; DROP ; DUP 3 ; CDR ; CDR ; DIG 2 ; ITER { SWAP ; DUP ; DUP 3 ; GET 3 ; GET ; IF_NONE { DROP 2 ; DUP 10 ; FAILWITH } { DUP 3 ; GET 4 ; SWAP ; SUB ; ISNAT ; IF_NONE { DUP 11 ; FAILWITH } {} ; SOME ; DIG 2 ; GET 3 ; UPDATE } } ; DIG 9 ; DIG 10 ; DROP 2 ; DUP 3 ; CDR ; DIG 3 ; CAR ; CDR ; DIG 3 ; PAIR ; PAIR ; DUP ; DUG 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR ; DIG 6 ; DUP ; GET 11 ; DUP 8 ; DIG 7 ; UPDATE 7 ; DIG 6 ; UPDATE 5 ; DIG 5 ; UPDATE 8 ; SOME ; DIG 5 ; CAR ; UPDATE ; UPDATE 11 ; SWAP ; UPDATE 1 ; NIL operation ; DIG 2 ; CONS ; PAIR } } { DIG 8 ; DIG 10 ; DIG 13 ; DROP 3 ; IF_LEFT { DIG 4 ; DIG 5 ; DROP 2 ; DIG 2 ; SWAP ; DUP ; DUG 2 ; CDR ; PAIR ; SWAP ; CAR ; DUG 2 ; UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 10 ; SWAP ; EXEC ; DROP ; PUSH string "AMT_TOO_LOW" ; PUSH nat 0 ; DUP 3 ; COMPARE ; GT ; PAIR ; DIG 6 ; SWAP ; EXEC ; DROP ; DUP 3 ; DIG 2 ; DUP 5 ; SWAP ; DUP ; DUG 2 ; GET 11 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { SWAP ; DUP ; DUG 2 ; CAR ; DUP 3 ; GET 15 ; EMPTY_MAP string bytes ; PUSH bytes 0x697066733a2f2f516d59684d4d7967573434657651786248327651367739786d626b48634131724455577739566d58335865564336 ; SOME ; PUSH string "thumbnailUri" ; UPDATE ; PUSH bytes 0x53425432 ; SOME ; PUSH string "symbol" ; UPDATE ; PUSH bytes 0x7344414f2042616e6b726f6c6c20546f6b656e207632 ; SOME ; PUSH string "name" ; UPDATE ; PUSH bytes 0x36 ; SOME ; PUSH string "decimals" ; UPDATE ; SWAP ; PAIR ; DUP ; CAR ; DUP 3 ; CDR ; CAR ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { DUP 3 ; CDR ; CDR ; DUP 4 ; CDR ; CAR ; DIG 3 ; DUP 4 ; SWAP ; SOME ; SWAP ; UPDATE ; PAIR ; DUP 3 ; CAR ; PAIR ; DIG 2 ; CDR ; CDR ; PUSH nat 0 ; DIG 3 ; SWAP ; SOME ; SWAP ; UPDATE ; SWAP ; DUP ; DUG 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR } { DROP 4 ; PUSH string "FA2_DUP_TOKEN_ID" ; FAILWITH } ; DUP 3 ; SWAP ; UPDATE 1 ; PUSH nat 1 ; DUP 4 ; GET 15 ; ADD ; UPDATE 15 ; DUP 3 ; GET 11 ; DUP 3 ; DIG 5 ; DIG 5 ; GET 15 ; SOME ; SWAP ; PAIR ; PUSH nat 0 ; PUSH nat 0 ; PUSH nat 0 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SOME ; DIG 3 ; UPDATE ; UPDATE 11 } { SWAP ; DIG 3 ; DROP 3 } ; DUP ; DIG 4 ; PAIR ; DIG 4 ; SWAP ; EXEC ; PUSH nat 10000 ; DUP 3 ; GET 27 ; SWAP ; DUP ; DUG 2 ; SUB ; DUP 5 ; MUL ; ISNAT ; IF_NONE { PUSH string "INVEST_OVERFLOW" ; FAILWITH } {} ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP ; DIG 4 ; SUB ; ISNAT ; IF_NONE { PUSH string "FEE_OVERFLOW" ; FAILWITH } {} ; PUSH nat 0 ; DUP 4 ; GET 5 ; COMPARE ; EQ ; IF { SWAP ; DUP ; DUG 2 } { DUP 3 ; GET 5 ; DUP 4 ; GET 8 ; DUP 4 ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR } ; DUP 4 ; CAR ; DUP 4 ; PAIR ; DIG 6 ; SENDER ; PAIR ; PAIR ; DUP 7 ; SWAP ; EXEC ; DUP 5 ; CAR ; DUP 4 ; PAIR ; DUP 7 ; GET 21 ; SENDER ; PAIR ; PAIR ; DIG 7 ; SWAP ; EXEC ; DUP 7 ; GET 21 ; NOW ; PAIR ; DUP 7 ; CAR ; DIG 5 ; DIG 2 ; UNPAIR ; SWAP ; CONTRACT %notifyRewards (pair (pair %token (address %fa2_address) (option %token_id nat)) (pair (nat %amt) (timestamp %timestamp))) ; IF_NONE { PUSH string "Invalid" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; DIG 4 ; DIG 4 ; SWAP ; PAIR ; SWAP ; PAIR ; TRANSFER_TOKENS ; DUP 6 ; DUP 6 ; DUP 8 ; GET 7 ; ADD ; UPDATE 7 ; DIG 5 ; DUP 7 ; GET 5 ; ADD ; UPDATE 5 ; DUP 5 ; DUP 7 ; GET 8 ; ADD ; UPDATE 8 ; DUP 6 ; GET 3 ; CDR ; IF_NONE { PUSH string "NO_ID" ; FAILWITH } {} ; DUP 8 ; CAR ; NIL (pair address (pair nat nat)) ; SENDER ; DIG 3 ; DIG 8 ; SWAP ; PAIR ; SWAP ; PAIR ; CONS ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; SWAP ; DUP ; DUG 2 ; ITER { DUP ; DUG 2 ; GET 4 ; PAIR ; SWAP ; DUP ; DUG 2 ; GET 3 ; DIG 2 ; CAR ; PAIR ; PAIR ; DUP 10 ; SWAP ; EXEC } ; DIG 9 ; DROP ; DUP 3 ; CDR ; CDR ; DIG 2 ; ITER { SWAP ; DUP ; DUP 3 ; GET 3 ; GET ; IF_NONE { DROP 2 ; DUP 9 ; FAILWITH } { DUP 3 ; GET 4 ; ADD ; SOME ; DIG 2 ; GET 3 ; UPDATE } } ; DIG 9 ; DROP ; DUP 3 ; CDR ; DIG 3 ; CAR ; CDR ; DIG 3 ; PAIR ; PAIR ; DUP ; DUG 2 ; CDR ; CAR ; PAIR ; SWAP ; CAR ; PAIR ; DIG 6 ; DUP ; GET 11 ; DIG 3 ; SOME ; DIG 7 ; CAR ; UPDATE ; UPDATE 11 ; SWAP ; UPDATE 1 ; NIL operation ; DIG 4 ; CONS ; DIG 2 ; CONS ; DIG 2 ; CONS ; PAIR } { DIG 8 ; DIG 9 ; DROP 2 ; DIG 2 ; SWAP ; DIG 2 ; DUP 3 ; GET 5 ; DIG 9 ; SWAP ; EXEC ; DROP ; PUSH string "NO_BET" ; PUSH nat 0 ; DUP 4 ; GET 5 ; COMPARE ; GT ; PAIR ; DUP 8 ; SWAP ; EXEC ; DROP ; DUP 3 ; DUP 3 ; CAR ; PAIR ; DIG 4 ; SWAP ; EXEC ; DUP 4 ; DUP 4 ; GET 3 ; PAIR ; DIG 5 ; SWAP ; EXEC ; PUSH string "NO_GUESS" ; PUSH nat 0 ; DUP 6 ; GET 6 ; DUP 9 ; SWAP ; EXEC ; COMPARE ; GT ; PAIR ; DUP 8 ; SWAP ; EXEC ; DROP ; PUSH string "GUESS_OVERFLOW" ; SWAP ; DUP ; DUG 2 ; GET 8 ; DUP 6 ; GET 6 ; DIG 8 ; SWAP ; EXEC ; COMPARE ; LT ; PAIR ; DIG 6 ; SWAP ; EXEC ; DROP ; GET 5 ; UNPACK (lambda (pair (list nat) nat) nat) ; IF_NONE { PUSH string "CALC_CORRUPT" ; FAILWITH } {} ; DUP 4 ; GET 5 ; DUP 5 ; GET 6 ; PAIR ; EXEC ; DUP 5 ; GET 23 ; DUP 3 ; GET 5 ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 5 ; GET 5 ; COMPARE ; GT ; IF { PUSH bool True } { PUSH bool False } ; DUP 5 ; GET 3 ; DUP 6 ; CAR ; PUSH unit Unit ; RIGHT unit ; SENDER ; NONE bytes ; NOW ; DUP 11 ; GET 5 ; DUP 12 ; GET 6 ; DUP 14 ; GET 28 ; DUP 12 ; GET 7 ; DIG 11 ; DUG 2 ; MUL ; PUSH nat 100 ; DUP 3 ; MUL ; COMPARE ; GT ; IF { DROP ; PUSH string "PAYOUT TOO HIGH" ; FAILWITH } {} ; NONE timestamp ; NONE bool ; NONE nat ; DIG 12 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUP 4 ; CAR ; DIG 4 ; GET 5 ; PAIR ; DIG 3 ; SENDER ; PAIR ; PAIR ; DIG 4 ; SWAP ; EXEC ; SWAP ; DUP ; DUG 2 ; GET 17 ; DUP 4 ; GET 7 ; SUB ; ISNAT ; IF_NONE { PUSH string "HOUSE_BANKROLL_DRY" ; FAILWITH } {} ; DIG 4 ; DUP ; DUP ; DUG 6 ; GET 7 ; DUP 5 ; SOME ; DUP 8 ; GET 13 ; UPDATE ; UPDATE 7 ; PUSH nat 1 ; DUP 7 ; GET 13 ; ADD ; UPDATE 13 ; DIG 5 ; GET 11 ; DIG 5 ; DIG 3 ; UPDATE 7 ; SOME ; DIG 4 ; GET 3 ; UPDATE ; UPDATE 11 ; NIL operation ; DIG 2 ; CONS ; PAIR } } } } { DIG 6 ; DIG 10 ; DIG 11 ; DIG 12 ; DIG 13 ; DIG 14 ; DIG 15 ; DROP 7 ; IF_LEFT { IF_LEFT { IF_LEFT { DIG 9 ; DROP ; DIG 2 ; SWAP ; DIG 2 ; PUSH string "NOT_HOUSE_WALLET" ; DUP 4 ; GET 19 ; SENDER ; COMPARE ; EQ ; PAIR ; DIG 7 ; SWAP ; EXEC ; DROP ; DUP 3 ; DUP 3 ; CAR ; PAIR ; DIG 5 ; SWAP ; EXEC ; DUP ; GET 5 ; DIG 7 ; SWAP ; EXEC ; IF { DUP ; PUSH unit Unit ; LEFT unit ; UPDATE 5 ; DUP 4 ; CDR ; SOME ; UPDATE 9 ; NOW ; SOME ; UPDATE 19 ; DUP 4 ; CDR ; DUP 6 ; PAIR ; SWAP ; DUP ; DUG 2 ; DIG 4 ; DIG 2 ; UNPAIR ; DUP 4 ; GET 9 ; IF_NONE { PUSH string "NO_HOUSE_HASH" ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; DUP 6 ; CAR ; PAIR ; DIG 11 ; SWAP ; EXEC ; GET 7 ; UNPACK (lambda (pair (list nat) bytes) (pair (pair bool nat) (option nat))) ; IF_NONE { PUSH string "GAME_CORRUPT" ; FAILWITH } {} ; SWAP ; DIG 3 ; CONCAT ; SHA256 ; PUSH nat 2 ; PUSH nat 30 ; SLICE ; IF_NONE { PUSH string "SLICE" ; FAILWITH } {} ; DUP 5 ; GET 15 ; PAIR ; EXEC ; UNPAIR ; UNPAIR ; DIG 2 ; IF_NONE { PUSH nat 0 ; DUP 6 ; GET 17 ; PAIR } { DUP 4 ; GET 25 ; SUB ; DUP 6 ; GET 17 ; MUL ; ISNAT ; IF_NONE { PUSH string "PAYCUT_OVERFLOW" ; FAILWITH } {} ; DUP 4 ; GET 25 ; SWAP ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP ; DUP 7 ; GET 17 ; SUB ; ISNAT ; IF_NONE { PUSH string "CHG_OVERFLOW" ; FAILWITH } {} ; SWAP ; PAIR } ; UNPAIR ; DIG 4 ; DUP 7 ; GET 3 ; PAIR ; DIG 11 ; SWAP ; EXEC ; SWAP ; DUP ; DUG 2 ; SWAP ; DUP ; DUG 2 ; GET 5 ; SUB ; ISNAT ; IF_NONE { PUSH string "HOUSE_BANKROLL_OVERFLOW" ; FAILWITH } {} ; PUSH bool True ; DIG 5 ; COMPARE ; EQ ; IF { NIL operation ; DUP 8 ; GET 3 ; DIG 4 ; DUP 9 ; GET 13 ; ADD ; PAIR ; DIG 7 ; GET 7 ; DIG 7 ; PAIR ; PAIR ; DIG 10 ; SWAP ; EXEC ; CONS ; DUP 3 ; DIG 2 ; UPDATE 5 ; DIG 3 ; DIG 3 ; GET 7 ; ADD ; UPDATE 7 ; PUSH bool True ; SOME ; DIG 3 ; SOME ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR } { DIG 2 ; DIG 3 ; DIG 5 ; DIG 11 ; DROP 5 ; NIL operation ; SWAP ; DUP ; DUG 2 ; DUP 5 ; GET 13 ; DUP 4 ; GET 5 ; ADD ; UPDATE 5 ; DUP 5 ; GET 17 ; DIG 5 ; GET 13 ; DIG 4 ; GET 7 ; ADD ; ADD ; UPDATE 7 ; PUSH bool False ; SOME ; DIG 3 ; SOME ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR } ; DUP ; DUG 2 ; GET 5 ; UPDATE 21 ; SWAP ; DUP ; DUG 2 ; GET 6 ; UPDATE 23 ; DUP 5 ; GET 21 ; NOW ; PAIR ; SWAP ; DUP ; DUG 2 ; GET 3 ; DUP 5 ; GET 7 ; DIG 2 ; UNPAIR ; SWAP ; CONTRACT %notifyGP (pair (pair %token (address %fa2_address) (option %token_id nat)) (pair (address %user_address) (timestamp %timestamp))) ; IF_NONE { PUSH string "Invalid" ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; DIG 4 ; DIG 4 ; SWAP ; PAIR ; SWAP ; PAIR ; TRANSFER_TOKENS ; DIG 5 ; DUP ; DUP ; DUG 7 ; GET 7 ; DUP 4 ; SOME ; DIG 7 ; CAR ; UPDATE ; UPDATE 7 ; DIG 5 ; GET 11 ; DUP 5 ; GET 3 ; SOME ; DIG 4 ; GET 3 ; UPDATE ; UPDATE 11 ; PUSH bool True ; DIG 4 ; GET 24 ; COMPARE ; EQ ; IF { DIG 2 ; CAR ; DIG 2 ; CONS } { SWAP ; DROP ; SWAP ; CAR } ; PAIR } { DROP 7 ; PUSH string "RESOLVE_FAIL" ; FAILWITH } } { DIG 3 ; DIG 4 ; DIG 5 ; DIG 6 ; DIG 7 ; DIG 8 ; DROP 6 ; DIG 2 ; SWAP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 3 ; SWAP ; EXEC ; DROP ; UPDATE 21 ; NIL operation ; PAIR } } { DIG 3 ; DIG 4 ; DIG 5 ; DIG 6 ; DIG 7 ; DIG 8 ; DROP 6 ; IF_LEFT { DIG 2 ; SWAP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 3 ; SWAP ; EXEC ; DROP ; UPDATE 23 ; NIL operation ; PAIR } { DIG 2 ; SWAP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 3 ; SWAP ; EXEC ; DROP ; UPDATE 27 ; NIL operation ; PAIR } } } { DIG 3 ; DIG 4 ; DIG 5 ; DIG 6 ; DIG 7 ; DIG 8 ; DROP 6 ; DIG 2 ; SWAP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; DIG 3 ; SWAP ; EXEC ; DROP ; UPDATE 28 ; NIL operation ; PAIR } } }