x
490
parameter (or (or (nat %borrow) (or (unit %default) (unit %liquidate))) (or (or (nat %repay) (option %setDelegate key_hash)) (or (pair %updateState address nat int int bool) (mutez %withdraw))));storage (pair (pair (nat %borrowedTokens) (int %interestIndex) (bool %isLiquidated)) (address %ovenProxyContractAddress) (address %owner) (int %stabilityFeeTokens));code { DUP ; CDR ; SWAP ; CAR ; IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 6 ; FAILWITH } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH int 15 ; FAILWITH } ; NIL operation ; DIG 2 ; DUP ; DUG 3 ; CDR ; CAR ; CONTRACT %borrow (pair address (pair address (pair nat (pair nat (pair bool (pair int (pair int nat))))))) ; { IF_NONE { UNIT ; FAILWITH } {} } ; BALANCE ; DIG 3 ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CAR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CAR ; PAIR ; PUSH nat 1000000000000 ; PUSH mutez 1 ; BALANCE ; EDIV ; { IF_NONE { UNIT ; FAILWITH } {} } ; CAR ; MUL ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CAR ; PAIR ; SELF ; ADDRESS ; PAIR ; TRANSFER_TOKENS ; CONS } { IF_LEFT { DROP ; DUP ; CDR ; CAR ; CONTRACT %deposit (pair address (pair address (pair nat (pair nat (pair bool (pair int int)))))) ; { IF_NONE { UNIT ; FAILWITH } {} } ; NIL operation ; SWAP ; BALANCE ; DIG 3 ; DUP ; CAR ; CDR ; CAR ; SWAP ; DUP ; DUG 5 ; CDR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CAR ; PAIR ; PUSH nat 1000000000000 ; PUSH mutez 1 ; BALANCE ; EDIV ; { IF_NONE { UNIT ; FAILWITH } {} } ; CAR ; MUL ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CAR ; PAIR ; SELF ; ADDRESS ; PAIR ; TRANSFER_TOKENS ; CONS } { DROP ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH int 15 ; FAILWITH } ; DUP ; CDR ; CAR ; CONTRACT %liquidate (pair address (pair address (pair nat (pair nat (pair bool (pair int (pair int address))))))) ; { IF_NONE { UNIT ; FAILWITH } {} } ; NIL operation ; SWAP ; BALANCE ; SENDER ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CAR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CAR ; PAIR ; PUSH nat 1000000000000 ; PUSH mutez 1 ; BALANCE ; EDIV ; { IF_NONE { UNIT ; FAILWITH } {} } ; CAR ; MUL ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CAR ; PAIR ; SELF ; ADDRESS ; PAIR ; TRANSFER_TOKENS ; CONS } } } { IF_LEFT { IF_LEFT { SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 6 ; FAILWITH } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH int 15 ; FAILWITH } ; NIL operation ; DIG 2 ; DUP ; DUG 3 ; CDR ; CAR ; CONTRACT %repay (pair address (pair address (pair nat (pair nat (pair bool (pair int (pair int nat))))))) ; { IF_NONE { UNIT ; FAILWITH } {} } ; BALANCE ; DIG 3 ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CAR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CAR ; PAIR ; PUSH nat 1000000000000 ; PUSH mutez 1 ; BALANCE ; EDIV ; { IF_NONE { UNIT ; FAILWITH } {} } ; CAR ; MUL ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CAR ; PAIR ; SELF ; ADDRESS ; PAIR ; TRANSFER_TOKENS ; CONS } { SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 6 ; FAILWITH } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH int 15 ; FAILWITH } ; SET_DELEGATE ; NIL operation ; SWAP ; CONS } } { IF_LEFT { SWAP ; DUP ; DUG 2 ; CDR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 2 ; FAILWITH } ; SELF ; ADDRESS ; SWAP ; DUP ; DUG 2 ; CAR ; COMPARE ; EQ ; IF {} { PUSH int 13 ; FAILWITH } ; SWAP ; DUP ; CDR ; SWAP ; CAR ; CDR ; DIG 2 ; DUP ; DUG 3 ; CDR ; CAR ; PAIR ; PAIR ; DUP ; CAR ; SWAP ; CDR ; DUP ; CAR ; SWAP ; CDR ; CAR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CAR ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CDR ; DIG 3 ; DUP ; DUG 4 ; CDR ; CDR ; CDR ; CAR ; PAIR ; SWAP ; PAIR ; PAIR ; DUP ; CDR ; SWAP ; CAR ; DUP ; CAR ; SWAP ; CDR ; CAR ; DIG 3 ; CDR ; CDR ; CDR ; CDR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; NIL operation } { SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 6 ; FAILWITH } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF {} { PUSH int 15 ; FAILWITH } ; NIL operation ; DIG 2 ; DUP ; DUG 3 ; CDR ; CAR ; CONTRACT %withdraw (pair address (pair address (pair nat (pair nat (pair bool (pair int (pair int mutez))))))) ; { IF_NONE { UNIT ; FAILWITH } {} } ; BALANCE ; DIG 3 ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CAR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CDR ; CDR ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CAR ; CAR ; PAIR ; PUSH nat 1000000000000 ; PUSH mutez 1 ; BALANCE ; EDIV ; { IF_NONE { UNIT ; FAILWITH } {} } ; CAR ; MUL ; PAIR ; DIG 4 ; DUP ; DUG 5 ; CDR ; CDR ; CAR ; PAIR ; SELF ; ADDRESS ; PAIR ; TRANSFER_TOKENS ; CONS } } } ; PAIR }