x
165
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 (timestamp %last_update) (pair (address %lp_address) (address %lp_token_address))) (pair (pair (nat %lpt_total_supply) (address %value_token_address)) (pair (nat %value_token_balance_of) (nat %value_token_per_lpt_ratio))));code { UNPAIR ; IF_LEFT { IF_LEFT { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 3 ; CAR ; GET 4 ; CONTRACT %getTotalSupply (pair unit (contract nat)) ; IF_NONE { PUSH int 48 ; FAILWITH } {} ; PUSH mutez 0 ; SELF_ADDRESS ; CONTRACT %set_lpt_total_supply nat ; IF_NONE { PUSH int 53 ; FAILWITH } {} ; UNIT ; PAIR ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 3 ; CDR ; CONTRACT %getBalance (pair address (contract nat)) ; IF_NONE { PUSH int 62 ; FAILWITH } {} ; PUSH mutez 0 ; SELF_ADDRESS ; CONTRACT %set_value_token_balance_of nat ; IF_NONE { PUSH int 67 ; FAILWITH } {} ; DUP 6 ; CAR ; GET 3 ; PAIR ; TRANSFER_TOKENS ; CONS ; SELF %internal_get_price ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; SELF_ADDRESS ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 400 ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 3 ; CAR ; PUSH nat 1000000 ; DUP 4 ; GET 5 ; MUL ; EDIV ; IF_NONE { PUSH int 84 ; FAILWITH } { CAR } ; PUSH nat 0 ; DUP 4 ; GET 6 ; COMPARE ; NEQ ; IF { PUSH nat 900 ; DUP ; DUP 5 ; CAR ; CAR ; NOW ; SUB ; ISNAT ; IF_NONE { PUSH int 95 ; FAILWITH } {} ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; PUSH nat 5 ; DUP 6 ; GET 6 ; LSR ; MUL ; EDIV ; IF_NONE { PUSH int 93 ; FAILWITH } { CAR } ; DUP 4 ; SWAP ; DUP ; DUG 2 ; DUP 6 ; GET 6 ; ADD ; DIG 2 ; DIG 5 ; GET 6 ; SUB ; ISNAT ; IF_NONE { PUSH int 104 ; FAILWITH } {} ; DIG 3 ; DUP ; DUP 3 ; COMPARE ; LE ; IF { SWAP ; DROP } { DROP } ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; UPDATE 6 ; SWAP } { DIG 2 ; SWAP ; UPDATE 6 ; SWAP } ; SWAP ; UNPAIR ; CDR ; NOW ; PAIR ; PAIR ; SWAP ; NIL operation ; SWAP ; PUSH mutez 0 ; PUSH nat 2 ; DUP 5 ; GET 6 ; MUL ; PUSH nat 100000000000000000000 ; EDIV ; IF_NONE { PUSH int 122 ; FAILWITH } { CAR } ; TRANSFER_TOKENS ; CONS } } { IF_LEFT { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CDR ; DIG 3 ; PAIR ; PAIR ; SWAP ; PAIR } { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; UPDATE 5 } ; NIL operation } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }