x
814
1428
{ parameter (or (or (or (or (pair %add_energy (nat %amount) (nat %token_id)) (string %add_mutable_attribute)) (or (pair %add_xp (nat %amount) (nat %token_id)) (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))))) (pair %mint (address %address) (pair (map %metadata string bytes) (nat %token_id)))))) (or (or (pair %remove_energy (nat %amount) (nat %token_id)) (pair %remove_xp (nat %amount) (nat %token_id))) (or (address %set_administrator) (or (map %set_lvl_map nat nat) (address %set_marketplace))))) (or (or (or (nat %set_max_energy) (nat %set_max_stats)) (or (nat %set_max_xp) (or (big_map %set_metadata string bytes) (list %transfer (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount))))))))) (or (or (pair %update_added_mutable_attribute (string %name) (pair (nat %token_id) (nat %value))) (or (list %update_game_manager (or (address %add_game_manager) (address %remove_game_manager))) (list %update_metadata_list (pair (map %metadata string bytes) (pair (nat %token_id) (option %trooperz_attributes (pair (pair (map %added_mutable_attributes string nat) (string %family)) (pair (bool %has_pet) (pair %mutable_attributes (pair (nat %close_combat) (nat %fire_arms)) (pair (nat %hacking) (nat %trickery))))))))))) (or (pair %update_mutable_attribute (nat %token_id) (or %value (or (nat %close_combat) (nat %fire_arms)) (or (nat %hacking) (nat %trickery)))) (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))))) (pair %withdraw_mutez (mutez %amount) (address %destination))))))) ; storage (pair (pair (pair (pair (address %administrator) (set %all_tokens nat)) (pair (set %allowed_attributes string) (big_map %energy_map nat nat))) (pair (pair (set %game_manager address) (nat %last_token_id)) (pair (big_map %ledger nat address) (pair (map %lvl_map nat nat) (address %marketplace))))) (pair (pair (pair (nat %max_energy) (nat %max_stats)) (pair (nat %max_xp) (pair (big_map %metadata string bytes) (big_map %operators (pair (address %owner) (pair (address %operator) (nat %token_id))) unit)))) (pair (pair (big_map %revealed nat bool) (big_map %token_metadata nat (pair (nat %token_id) (map %token_info string bytes)))) (pair (int %total_supply) (pair (big_map %trooperz_attributes nat (pair (pair (map %added_mutable_attributes string nat) (string %family)) (pair (bool %has_pet) (pair %mutable_attributes (pair (nat %close_combat) (nat %fire_arms)) (pair (nat %hacking) (nat %trickery)))))) (big_map %xp_map nat nat)))))) ; code { UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; CAR ; SENDER ; MEM ; IF {} { PUSH string "ERROR NOT GAME MANAGER" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DUP 7 ; GET 3 ; CAR ; CAR ; DUP 7 ; CAR ; DIG 8 ; CAR ; CAR ; GET 4 ; DUP 9 ; CDR ; GET ; IF_NONE { PUSH int 316 ; FAILWITH } {} ; ADD ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; SOME ; DIG 6 ; CDR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; CAR ; SENDER ; MEM ; IF {} { PUSH string "ERROR NOT GAME MANAGER" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; GET 3 ; SWAP ; DUP ; DUG 2 ; MEM ; IF { PUSH string "ALREADY_EXISTING_ATTRIBUTE" ; FAILWITH } {} ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; PUSH bool True ; DIG 6 ; UPDATE ; PAIR ; SWAP ; PAIR ; PAIR ; PAIR } ; NIL operation } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; CAR ; SENDER ; MEM ; IF {} { PUSH string "ERROR NOT GAME MANAGER" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; DUP ; GET 10 ; DUP 4 ; GET 3 ; GET 3 ; DUP 4 ; CAR ; DIG 5 ; GET 10 ; DUP 6 ; CDR ; GET ; IF_NONE { PUSH int 292 ; FAILWITH } {} ; ADD ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; SOME ; DIG 3 ; CDR ; UPDATE ; UPDATE 10 ; NIL operation } { IF_LEFT { NIL operation ; DUP ; DUP 3 ; CDR ; PUSH mutez 0 ; DUP 5 ; CAR ; MAP { DUP 7 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; DUP ; CAR ; DUP 8 ; CAR ; GET 5 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 375 ; FAILWITH } {} ; COMPARE ; EQ ; IF { PUSH nat 1 } { PUSH nat 0 } ; SWAP ; PAIR } ; DIG 4 ; DROP ; DIG 4 ; DROP ; TRANSFER_TOKENS ; CONS } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR ; GET 8 ; SENDER ; COMPARE ; EQ } ; IF {} { PUSH string "FA2_MINT_NOT_ALLOWED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CDR ; SWAP ; DUP ; DUG 2 ; GET 4 ; MEM ; IF { PUSH string "NFT-asset: cannot mint twice same token" ; FAILWITH } {} ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; DUP 6 ; CAR ; SOME ; DUP 7 ; GET 4 ; UPDATE ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; DIG 5 ; DUP ; GET 3 ; SWAP ; DUP ; DUG 7 ; GET 4 ; PAIR ; SOME ; DUP 7 ; GET 4 ; UPDATE ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; PUSH bool True ; DUP 7 ; GET 4 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; PUSH (option bool) (Some False) ; DUP 7 ; GET 4 ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUP ; GET 10 ; PUSH (option nat) (Some 0) ; DUP 4 ; GET 4 ; UPDATE ; UPDATE 10 ; DUP ; DUG 2 ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; DIG 6 ; GET 3 ; CAR ; CAR ; SOME ; DUP 7 ; GET 4 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; UNPAIR ; CAR ; DIG 4 ; GET 4 ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; GET 7 ; PUSH int 1 ; ADD ; UPDATE 7 ; NIL operation } } } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; CAR ; SENDER ; MEM ; IF {} { PUSH string "ERROR NOT GAME MANAGER" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; PUSH int 0 ; DUP 7 ; CAR ; DIG 8 ; CAR ; CAR ; GET 4 ; DUP 9 ; CDR ; GET ; IF_NONE { PUSH int 328 ; FAILWITH } {} ; SUB ; DUP ; DUP 3 ; COMPARE ; LE ; IF { SWAP ; DROP } { DROP } ; ISNAT ; IF_NONE { PUSH int 328 ; FAILWITH } {} ; SOME ; DIG 6 ; CDR ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; CAR ; SENDER ; MEM ; IF {} { PUSH string "ERROR NOT GAME MANAGER" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; DUP ; GET 10 ; PUSH int 0 ; DUP 4 ; CAR ; DIG 5 ; GET 10 ; DUP 6 ; CDR ; GET ; IF_NONE { PUSH int 304 ; FAILWITH } {} ; SUB ; DUP ; DUP 3 ; COMPARE ; LE ; IF { SWAP ; DROP } { DROP } ; ISNAT ; IF_NONE { PUSH int 304 ; FAILWITH } {} ; SOME ; DIG 3 ; CDR ; UPDATE ; UPDATE 10 } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; DIG 4 ; PAIR ; PAIR ; PAIR ; PAIR } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CDR ; DIG 5 ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CAR ; DIG 5 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR } } } ; NIL operation } } { IF_LEFT { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CDR ; DIG 4 ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; CAR ; DIG 4 ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP ; PAIR } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; DIG 4 ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CDR ; DIG 5 ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR } { DUP ; ITER { DUP ; CDR ; ITER { DUP 4 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; GET 3 ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { DUP 4 ; GET 3 ; GET 6 ; SWAP ; DUP ; DUG 2 ; GET 3 ; SENDER ; DUP 5 ; CAR ; PAIR 3 ; MEM } ; IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ; DUP ; GET 4 ; PUSH nat 0 ; COMPARE ; LT ; IF { DUP ; GET 4 ; PUSH nat 1 ; COMPARE ; EQ ; IF { SWAP ; DUP ; DUG 2 ; CAR ; DUP 5 ; CAR ; GET 5 ; DUP 3 ; GET 3 ; GET ; IF_NONE { PUSH int 404 ; FAILWITH } {} ; COMPARE ; EQ } { PUSH bool False } ; IF {} { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } ; DIG 3 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; DUP 6 ; CAR ; SOME ; DIG 6 ; GET 3 ; UPDATE ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 2 } { DROP } } ; DROP } ; DROP } } } ; NIL operation } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; CAR ; SENDER ; MEM ; IF {} { PUSH string "ERROR NOT GAME MANAGER" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; GET 3 ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF {} { PUSH string "WrongCondition: self.data.allowed_attributes.contains(params.name)" ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 9 ; SWAP ; DUP ; DUG 2 ; GET 3 ; GET ; IF_NONE { PUSH int 336 ; FAILWITH } {} ; CAR ; CAR ; SWAP ; DUP ; DUG 2 ; CAR ; MEM ; IF { SWAP ; DUP ; GET 9 ; DUP ; DUP 4 ; GET 3 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 337 ; FAILWITH } {} ; UNPAIR ; UNPAIR ; DUP ; DUP 8 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 337 ; FAILWITH } {} ; DIG 8 ; GET 4 ; ADD ; SOME ; SWAP ; UPDATE ; PAIR ; PAIR ; SOME ; SWAP ; UPDATE ; UPDATE 9 } { SWAP ; DUP ; GET 9 ; DUP ; DUP 4 ; GET 3 ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 340 ; FAILWITH } {} ; UNPAIR ; UNPAIR ; DUP 7 ; GET 4 ; SOME ; DIG 7 ; CAR ; UPDATE ; PAIR ; PAIR ; SOME ; SWAP ; UPDATE ; UPDATE 9 } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; DUP ; ITER { IF_LEFT { DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; PUSH bool True ; DIG 6 ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { DIG 2 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; PUSH bool False ; DIG 6 ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } } ; DROP } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; CAR ; GET 8 ; SENDER ; COMPARE ; EQ } ; IF {} { PUSH string "FA2_MINT_NOT_ALLOWED" ; FAILWITH } ; DUP ; ITER { DUP 3 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH bool False ; DUP 4 ; GET 5 ; CAR ; DUP 3 ; GET 3 ; GET ; IF_NONE { PUSH int 255 ; FAILWITH } {} ; COMPARE ; EQ ; IF {} { PUSH string "FA2_ALREADY_REVEAL" ; FAILWITH } } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; DIG 5 ; DUP ; CAR ; SWAP ; DUP ; DUG 7 ; GET 3 ; PAIR ; SOME ; DUP 7 ; GET 3 ; UPDATE ; SWAP ; PUSH (option bool) (Some True) ; DUP 7 ; GET 3 ; UPDATE ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUG 2 ; DUP ; GET 4 ; IF_NONE { DROP } { DROP ; DIG 2 ; DUP ; GET 9 ; DUP 3 ; GET 4 ; IF_NONE { PUSH int 259 ; FAILWITH } {} ; SOME ; DIG 3 ; GET 3 ; UPDATE ; UPDATE 9 ; SWAP } } ; DROP } } ; NIL operation } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CAR ; GET 3 ; CAR ; SENDER ; MEM ; IF {} { PUSH string "ERROR NOT GAME MANAGER" ; FAILWITH } ; DUP ; CDR ; IF_LEFT { IF_LEFT { DUP 3 ; DUP ; GET 9 ; DUP ; DIG 4 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 355 ; FAILWITH } {} ; DUP ; GET 4 ; UNPAIR ; CDR ; DIG 6 ; DIG 7 ; GET 3 ; CAR ; CDR ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; PAIR ; PAIR ; UPDATE 4 ; SOME ; SWAP ; UPDATE ; UPDATE 9 } { DUP 3 ; DUP ; GET 9 ; DUP ; DIG 4 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 353 ; FAILWITH } {} ; DUP ; GET 4 ; UNPAIR ; CAR ; DIG 6 ; DIG 7 ; GET 3 ; CAR ; CDR ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; SWAP ; PAIR ; PAIR ; UPDATE 4 ; SOME ; SWAP ; UPDATE ; UPDATE 9 } } { IF_LEFT { DUP 3 ; DUP ; GET 9 ; DUP ; DIG 4 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 349 ; FAILWITH } {} ; DUP ; GET 4 ; DIG 5 ; DIG 6 ; GET 3 ; CAR ; CDR ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; UPDATE 3 ; UPDATE 4 ; SOME ; SWAP ; UPDATE ; UPDATE 9 } { DUP 3 ; DUP ; GET 9 ; DUP ; DIG 4 ; CAR ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 351 ; FAILWITH } {} ; DUP ; GET 4 ; DIG 5 ; DIG 6 ; GET 3 ; CAR ; CDR ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; UPDATE 4 ; UPDATE 4 ; SOME ; SWAP ; UPDATE ; UPDATE 9 } } ; NIL operation } { IF_LEFT { DUP ; ITER { IF_LEFT { DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; PUSH (option unit) (Some Unit) ; DIG 7 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP } { DUP ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ; DIG 2 ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; NONE unit ; DIG 7 ; UPDATE ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; SWAP } } ; DROP ; NIL operation } { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ; DUP ; CDR ; CONTRACT unit ; IF_NONE { PUSH int 555 ; FAILWITH } {} ; NIL operation ; SWAP ; DIG 2 ; CAR ; UNIT ; TRANSFER_TOKENS ; CONS } } } } } ; PAIR } ; view "get_added_stats" nat (map string nat) { UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 9 ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "CAN NOT FIND TROOPERZ" ; FAILWITH } ; SWAP ; GET 9 ; SWAP ; GET ; IF_NONE { PUSH int 398 ; FAILWITH } {} ; CAR ; CAR } ; view "get_balance_of" (list (pair (address %owner) (nat %token_id))) (list (pair (pair %request (address %owner) (nat %token_id)) (nat %balance))) { UNPAIR ; DUP ; MAP { DUP 3 ; GET 5 ; CDR ; SWAP ; DUP ; DUG 2 ; CDR ; MEM ; IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ; DUP ; CAR ; DUP 4 ; CAR ; GET 5 ; DUP 3 ; CDR ; GET ; IF_NONE { PUSH int 375 ; FAILWITH } {} ; COMPARE ; EQ ; IF { PUSH nat 1 } { PUSH nat 0 } ; SWAP ; PAIR } ; SWAP ; DROP ; SWAP ; DROP } ; view "get_energy" nat nat { UNPAIR ; SWAP ; DUP ; DUG 2 ; CAR ; CAR ; GET 4 ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "CAN NOT FIND TROOPERZ" ; FAILWITH } ; SWAP ; CAR ; CAR ; GET 4 ; SWAP ; GET ; IF_NONE { PUSH int 393 ; FAILWITH } {} } ; view "get_lvl" nat nat { UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 10 ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "CAN NOT FIND TROOPERZ" ; FAILWITH } ; PUSH nat 0 ; DUP 3 ; CAR ; GET 7 ; PUSH nat 1 ; DUP 3 ; ADD ; MEM ; IF { DUP 3 ; CAR ; GET 7 ; PUSH nat 1 ; DUP 3 ; ADD ; GET ; IF_NONE { PUSH int 410 ; FAILWITH } {} ; DUP 4 ; GET 10 ; DUP 4 ; GET ; IF_NONE { PUSH int 410 ; FAILWITH } {} ; COMPARE ; GE } { PUSH bool False } ; LOOP { PUSH nat 1 ; ADD ; DUP 3 ; CAR ; GET 7 ; PUSH nat 1 ; DUP 3 ; ADD ; MEM ; IF { DUP 3 ; CAR ; GET 7 ; PUSH nat 1 ; DUP 3 ; ADD ; GET ; IF_NONE { PUSH int 410 ; FAILWITH } {} ; DUP 4 ; GET 10 ; DUP 4 ; GET ; IF_NONE { PUSH int 410 ; FAILWITH } {} ; COMPARE ; GE } { PUSH bool False } } ; SWAP ; DROP ; SWAP ; DROP } ; view "get_trooperz_attributes" nat (pair (pair (map %added_mutable_attributes string nat) (string %family)) (pair (bool %has_pet) (pair %mutable_attributes (pair (nat %close_combat) (nat %fire_arms)) (pair (nat %hacking) (nat %trickery))))) { UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 9 ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "CAN NOT FIND TROOPERZ" ; FAILWITH } ; SWAP ; GET 9 ; SWAP ; GET ; IF_NONE { PUSH int 388 ; FAILWITH } {} } ; view "get_xp" nat nat { UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 10 ; SWAP ; DUP ; DUG 2 ; MEM ; IF {} { PUSH string "CAN NOT FIND TROOPERZ" ; FAILWITH } ; SWAP ; GET 10 ; SWAP ; GET ; IF_NONE { PUSH int 403 ; FAILWITH } {} } ; view "is_revealed" nat bool { UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; SWAP ; DUP ; DUG 2 ; MEM ; IF { SWAP ; GET 5 ; CAR ; SWAP ; GET ; IF_NONE { PUSH int 421 ; FAILWITH } {} } { DROP 2 ; PUSH bool False } } }