x
88
parameter (or (or (contract %get_price nat) (contract %internal_get_price nat)) (or (nat %set_lpt_total_supply) (nat %set_value_token_balance_of)));storage (pair (pair (address %lp_address) (pair (address %lp_token_address) (nat %lpt_total_supply))) (pair (pair (address %value_token_address) (nat %value_token_balance_of)) (pair (address %value_token_oracle_address) (string %value_token_oracle_symbol))));code { UNPAIR ; IF_LEFT { IF_LEFT { NIL operation ; DUP 3 ; CAR ; GET 3 ; CONTRACT %getTotalSupply (pair unit (contract nat)) ; IF_NONE { PUSH int 39 ; FAILWITH } {} ; PUSH mutez 0 ; SELF_ADDRESS ; CONTRACT %set_lpt_total_supply nat ; IF_NONE { PUSH int 40 ; FAILWITH } {} ; UNIT ; PAIR ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 3 ; CAR ; CONTRACT %getBalance (pair address (contract nat)) ; IF_NONE { PUSH int 43 ; FAILWITH } {} ; PUSH mutez 0 ; SELF_ADDRESS ; CONTRACT %set_value_token_balance_of nat ; IF_NONE { PUSH int 44 ; FAILWITH } {} ; DUP 6 ; CAR ; CAR ; PAIR ; TRANSFER_TOKENS ; CONS ; SELF %internal_get_price ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { SELF_ADDRESS ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 400 ; FAILWITH } ; NIL operation ; SWAP ; PUSH mutez 0 ; PUSH nat 2 ; DUP 5 ; CAR ; GET 4 ; PUSH nat 1000000 ; DUP 7 ; GET 3 ; CDR ; MUL ; EDIV ; IF_NONE { PUSH int 54 ; FAILWITH } { CAR } ; DIG 5 ; DUP ; GET 5 ; SWAP ; DUP ; DUG 7 ; GET 6 ; VIEW "get_price" nat ; IF_NONE { PUSH int 502 ; FAILWITH } {} ; MUL ; MUL ; PUSH nat 100000000000000000000000000 ; EDIV ; IF_NONE { PUSH int 57 ; FAILWITH } { CAR } ; TRANSFER_TOKENS ; CONS } } { IF_LEFT { SWAP ; UNPAIR ; UNPAIR ; SWAP ; CAR ; DIG 3 ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR } { SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DIG 3 ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR } ; NIL operation } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }