diff --git a/compiled_contracts/Comptroller/log.txt b/compiled_contracts/Comptroller/log.txt index b355fb29..40ec4b8b 100644 --- a/compiled_contracts/Comptroller/log.txt +++ b/compiled_contracts/Comptroller/log.txt @@ -1,10 +1,10 @@ Creating contract KT1TezoooozzSmartPyzzSTATiCzzzwwBFA1 - -> (Pair (Pair (Pair (Pair (Pair {} {}) (Pair "KT1NF6DKX5giazRTzPtEuNX1npkVcaoQkvK2" 500000000000000000)) (Pair (Pair {} 1000000000000000000) (Pair 500000000000000000 1050000000000000000))) (Pair (Pair (Pair {} {}) (Pair {} 15)) (Pair (Pair 86400 "KT1LDtNKDnpziwSrmSfx3xCbs7nBMg7VFp4m") (Pair None True)))) {Elt 0 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { DROP } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP; GET 7; IF_NONE { PUSH string "CMPT_NOT_SET_PENDING_ADMIN"; FAILWITH } {}; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_PENDING_ADMIN"; FAILWITH }; DUP; GET 7; IF_NONE { PUSH int 594; FAILWITH } {}; SWAP; UNPAIR; UNPAIR; UNPAIR; SWAP; CDR; DIG 4; PAIR; SWAP; PAIR; PAIR; PAIR; NONE address; UPDATE 7; NIL operation; PAIR }; Elt 1 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } {} } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 217; FAILWITH } {}; CAR; CAR; CAR; IF { PUSH string "CMPT_BORROW_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; PUSH bool True; DUP 3; CAR; GET 3; CAR; DUP 3; GET 3; MEM; IF { DUP 3; CAR; GET 3; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 827; FAILWITH } {}; DUP 3; CAR; MEM; IF { DROP; PUSH bool False } {} } {}; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF { DUP } { PUSH bool False }; IF { DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 831; FAILWITH } {}; DUP 3; CAR; MEM; IF { DROP; PUSH bool False } {} } {}; DUP; IF { EMPTY_SET address; DUP 4; CAR; GET 3; CAR; DUP 4; GET 3; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; GET 3; GET; IF_NONE { PUSH int 814; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; GET 3; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; GET 3; GET; IF_NONE { PUSH int 818; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 4; GET 3; GET 4; SWAP; SIZE; COMPARE; LT; IF {} { PUSH string "CMPT_TOO_MANY_ASSETS"; FAILWITH } } {}; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF {} { DUP 2; CAR; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_INVALID_BORROW_SENDER"; FAILWITH }; DUP 3; GET 3; GET 3; SENDER; MEM; IF { DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF { DIG 2; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 8; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 239; FAILWITH } {}; PUSH bool True; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR; DUG 2 } { DIG 2; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; EMPTY_SET address; PUSH bool True; SENDER; UPDATE; SOME; DUP 8; GET 3; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR; DUG 2 } }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 801; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 803; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 2 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DIG 6; DUP; DUG 2; GET; IF_NONE { PUSH int 776; FAILWITH } {}; UNPAIR; UNPAIR; SWAP; CDR; PUSH bool False; PAIR; SWAP; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 3 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; EMPTY_SET address; DUP 3; CAR; GET 3; CAR; SENDER; MEM; IF { DUP 3; CAR; GET 3; CAR; SENDER; GET; IF_NONE { PUSH int 814; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 3; GET 3; CAR; CAR; SENDER; MEM; IF { DUP 3; GET 3; CAR; CAR; SENDER; GET; IF_NONE { PUSH int 818; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP; SIZE; DUP 3; ITER { PUSH bool True; DUP 6; CAR; GET 3; CAR; SENDER; MEM; IF { DUP 6; CAR; GET 3; CAR; SENDER; GET; IF_NONE { PUSH int 827; FAILWITH } {}; DUP 3; MEM; IF { DROP; PUSH bool False } {} } {}; DUP 6; GET 3; CAR; CAR; SENDER; MEM; IF { DUP } { PUSH bool False }; IF { DUP 6; GET 3; CAR; CAR; SENDER; GET; IF_NONE { PUSH int 831; FAILWITH } {}; DUP 3; MEM; IF { DROP; PUSH bool False } {} } {}; IF { DUP 5; GET 3; GET 4; DUP 3; COMPARE; LT; IF {} { PUSH string "CMPT_TOO_MANY_ASSETS"; FAILWITH }; SWAP; PUSH nat 1; ADD; SWAP } {}; DUP 5; GET 3; GET 3; DUP 2; MEM; IF { DUP 5; GET 3; GET 3; DUP 2; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 5; CAR; GET 3; CAR; SENDER; MEM; IF { DIG 4; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; DUP; SENDER; DUP; DUG 2; GET; IF_NONE { PUSH int 94; FAILWITH } {}; PUSH bool True; DIG 8; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; DUG 3 } { DIG 4; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; EMPTY_SET address; PUSH bool True; DIG 7; UPDATE; SOME; SENDER; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; DUG 3 } }; DROP 3; DUP; CAR; CAR; CAR; CAR; SENDER; MEM; IF { UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; SENDER; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } {}; NIL operation; PAIR }; Elt 4 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { DROP } } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; DUP; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; UNPAIR; UNPAIR; UNPAIR; CAR; EMPTY_SET nat; SWAP; PAIR; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 5 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; CDR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; GET 3; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; GET 3; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; PUSH (pair nat nat) (Pair 0 0); DUP; DUP 4; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 500; FAILWITH } {}; ITER { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 508; FAILWITH } {}; ITER { DUP 5; CAR; GET 3; CAR; DUP 5; CAR; CAR; MEM; IF { DUP 5; CAR; GET 3; CAR; DUP 5; CAR; CAR; GET; IF_NONE { PUSH int 511; FAILWITH } {}; DUP 2; MEM; IF { DROP } { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } }; DROP } { DROP }; UNPAIR; SWAP; SUB; PUSH int 0; COMPARE; GT; IF {} { PUSH string "CMPT_INSUFFICIENT_SHORTFALL"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; CAR; CDR; DUP 3; CAR; CAR; VIEW "borrowBalanceStoredView" (pair nat nat); IF_NONE { PUSH string "INVALID ACCOUNT BORROW BALANCE VIEW"; FAILWITH } {}; CAR; DUP 4; CAR; CAR; GET 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; SWAP; DUP; GET 6; DIG 2; COMPARE; GE; IF {} { PUSH string "CMPT_TOO_MUCH_REPAY"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 5; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 5; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 6 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 158; FAILWITH } {}; CAR; GET 4; IF { PUSH string "CMPT_MINT_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 7 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; GET 3; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 185; FAILWITH } {}; DUP 2; CAR; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; GET 3; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 801; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 803; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 8 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; SENDER; MEM; IF { DUP 2; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; GET 3; CAR; CAR; DUP 2; MEM; IF { DUP 2; GET 3; CAR; CAR; DUP 2; GET; IF_NONE { PUSH int 248; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; DUP; DUG 2; GET; IF_NONE { PUSH int 249; FAILWITH } {}; PUSH bool False; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR } { DROP }; NIL operation; PAIR }; Elt 9 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 5; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; GET 5; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 10 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; PUSH (pair nat nat) (Pair 0 0); DUP; DUP 4; CAR; GET 3; CAR; DUP 4; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; GET; IF_NONE { PUSH int 500; FAILWITH } {}; ITER { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; GET; IF_NONE { PUSH int 508; FAILWITH } {}; ITER { DUP 5; CAR; GET 3; CAR; DUP 5; MEM; IF { DUP 5; CAR; GET 3; CAR; DUP 5; GET; IF_NONE { PUSH int 511; FAILWITH } {}; DUP 2; MEM; IF { DROP } { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } } {}; DUP 2; DUP 5; CAR; CAR; CAR; CDR; PUSH nat 4; MEM; IF {} { PUSH string "OP_NOT_ACTIVE"; FAILWITH }; DIG 4; UNPAIR; UNPAIR; UNPAIR; UNPAIR; SWAP; PUSH bool False; PUSH nat 4; UPDATE; SWAP; PUSH bool True; LEVEL; DIG 8; DROP; DIG 8; DROP; DIG 7; UNPAIR; SWAP; SUB; PAIR 3; SOME; DIG 6; UPDATE; PAIR; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 11 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CDR; PUSH nat 1; MEM; IF {} { PUSH string "OP_NOT_ACTIVE"; FAILWITH }; SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; SWAP; PUSH bool False; PUSH nat 1; UPDATE; SWAP; PAIR; PAIR; PAIR; PAIR; SWAP; PUSH nat 0; DUP 2; CAR; CDR; COMPARE; EQ; IF {} { PUSH string "CMPT_BORROW_IN_MARKET"; FAILWITH }; DUP 2; GET 3; GET 3; SENDER; MEM; IF { DUP 2; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 185; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 801; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 803; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 3; DUP 4; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 138; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 140; FAILWITH } {}; PUSH bool False; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 12 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 631; FAILWITH } {}; UNPAIR; UNPAIR; CDR; DIG 9; CDR; PAIR; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 13 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; UNPAIR; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 14 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 713; FAILWITH } {}; UNPAIR; UNPAIR; CAR; DIG 9; CDR; SWAP; PAIR; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 15 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; SWAP; PAIR; PAIR; NIL operation; PAIR }; Elt 16 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 17 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 613; FAILWITH } {}; UNPAIR; UNPAIR; SWAP; CAR; DIG 9; CDR; SWAP; PAIR; SWAP; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 18 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SOME; UPDATE 7; NIL operation; PAIR }; Elt 19 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; SWAP; CDR; DIG 3; UNPAIR; SWAP; PAIR; PAIR; SWAP; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 20 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; UPDATE 8; NIL operation; PAIR }; Elt 21 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 789; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF { PUSH string "CMPT_MARKET_ALREADY_LISTED"; FAILWITH } {}; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; PUSH (pair timestamp nat) (Pair "1970-01-01T00:00:00Z" 0); DUP 7; GET 4; PAIR; PUSH nat 0; DUP 8; GET 3; PAIR; PAIR; PUSH (pair (pair bool nat) (pair bool bool)) (Pair (Pair True 500000000000000000) (Pair True True)); PAIR; SOME; DUP 7; CAR; UPDATE; PAIR; SWAP; UNPAIR; SWAP; DUP 6; CAR; SOME; PUSH string "-USD"; DIG 7; GET 3; CONCAT; UPDATE; SWAP; PAIR; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 22 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 8; IF { PUSH string "CMPT_TRANSFER_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CDR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 185; FAILWITH } {}; DUP 2; CAR; CAR; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; CAR; CDR; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; CAR; CDR; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 801; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 803; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; CAR; CDR; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; CAR; CDR; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }}) + -> (Pair (Pair (Pair (Pair (Pair {} {}) (Pair "KT1NF6DKX5giazRTzPtEuNX1npkVcaoQkvK2" 500000000000000000)) (Pair (Pair {} 1000000000000000000) (Pair 500000000000000000 1050000000000000000))) (Pair (Pair (Pair {} {}) (Pair {} 15)) (Pair (Pair 86400 "KT1LDtNKDnpziwSrmSfx3xCbs7nBMg7VFp4m") (Pair None True)))) {Elt 0 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { DROP } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP; GET 7; IF_NONE { PUSH string "CMPT_NOT_SET_PENDING_ADMIN"; FAILWITH } {}; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_PENDING_ADMIN"; FAILWITH }; DUP; GET 7; IF_NONE { PUSH int 595; FAILWITH } {}; SWAP; UNPAIR; UNPAIR; UNPAIR; SWAP; CDR; DIG 4; PAIR; SWAP; PAIR; PAIR; PAIR; NONE address; UPDATE 7; NIL operation; PAIR }; Elt 1 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } {} } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 217; FAILWITH } {}; CAR; CAR; CAR; IF { PUSH string "CMPT_BORROW_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; PUSH bool True; DUP 3; CAR; GET 3; CAR; DUP 3; GET 3; MEM; IF { DUP 3; CAR; GET 3; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 828; FAILWITH } {}; DUP 3; CAR; MEM; IF { DROP; PUSH bool False } {} } {}; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF { DUP } { PUSH bool False }; IF { DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 832; FAILWITH } {}; DUP 3; CAR; MEM; IF { DROP; PUSH bool False } {} } {}; DUP; IF { EMPTY_SET address; DUP 4; CAR; GET 3; CAR; DUP 4; GET 3; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; GET 3; GET; IF_NONE { PUSH int 815; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; GET 3; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; GET 3; GET; IF_NONE { PUSH int 819; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 4; GET 3; GET 4; SWAP; SIZE; COMPARE; LT; IF {} { PUSH string "CMPT_TOO_MANY_ASSETS"; FAILWITH } } {}; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF {} { DUP 2; CAR; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_INVALID_BORROW_SENDER"; FAILWITH } }; DUP 2; CAR; SENDER; COMPARE; EQ; IF { DUP 3; GET 3; GET 3; DUP 3; CAR; MEM; IF { DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF { DIG 2; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 8; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 240; FAILWITH } {}; PUSH bool True; DUP 10; CAR; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR; DUG 2 } { DIG 2; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; EMPTY_SET address; PUSH bool True; DUP 9; CAR; UPDATE; SOME; DUP 8; GET 3; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR; DUG 2 } } {}; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 802; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 804; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 2 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DIG 6; DUP; DUG 2; GET; IF_NONE { PUSH int 777; FAILWITH } {}; UNPAIR; UNPAIR; SWAP; CDR; PUSH bool False; PAIR; SWAP; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 3 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; EMPTY_SET address; DUP 3; CAR; GET 3; CAR; SENDER; MEM; IF { DUP 3; CAR; GET 3; CAR; SENDER; GET; IF_NONE { PUSH int 815; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 3; GET 3; CAR; CAR; SENDER; MEM; IF { DUP 3; GET 3; CAR; CAR; SENDER; GET; IF_NONE { PUSH int 819; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP; SIZE; DUP 3; ITER { PUSH bool True; DUP 6; CAR; GET 3; CAR; SENDER; MEM; IF { DUP 6; CAR; GET 3; CAR; SENDER; GET; IF_NONE { PUSH int 828; FAILWITH } {}; DUP 3; MEM; IF { DROP; PUSH bool False } {} } {}; DUP 6; GET 3; CAR; CAR; SENDER; MEM; IF { DUP } { PUSH bool False }; IF { DUP 6; GET 3; CAR; CAR; SENDER; GET; IF_NONE { PUSH int 832; FAILWITH } {}; DUP 3; MEM; IF { DROP; PUSH bool False } {} } {}; IF { DUP 5; GET 3; GET 4; DUP 3; COMPARE; LT; IF {} { PUSH string "CMPT_TOO_MANY_ASSETS"; FAILWITH }; SWAP; PUSH nat 1; ADD; SWAP } {}; DUP 5; GET 3; GET 3; DUP 2; MEM; IF { DUP 5; GET 3; GET 3; DUP 2; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 5; CAR; GET 3; CAR; SENDER; MEM; IF { DIG 4; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; DUP; SENDER; DUP; DUG 2; GET; IF_NONE { PUSH int 94; FAILWITH } {}; PUSH bool True; DIG 8; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; DUG 3 } { DIG 4; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; EMPTY_SET address; PUSH bool True; DIG 7; UPDATE; SOME; SENDER; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; DUG 3 } }; DROP 3; DUP; CAR; CAR; CAR; CAR; SENDER; MEM; IF { UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; SENDER; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } {}; NIL operation; PAIR }; Elt 4 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { DROP } } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; DUP; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; UNPAIR; UNPAIR; UNPAIR; CAR; EMPTY_SET nat; SWAP; PAIR; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 5 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; CDR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; GET 3; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; GET 3; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; PUSH (pair nat nat) (Pair 0 0); DUP; DUP 4; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 501; FAILWITH } {}; ITER { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 509; FAILWITH } {}; ITER { DUP 5; CAR; GET 3; CAR; DUP 5; CAR; CAR; MEM; IF { DUP 5; CAR; GET 3; CAR; DUP 5; CAR; CAR; GET; IF_NONE { PUSH int 512; FAILWITH } {}; DUP 2; MEM; IF { DROP } { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } }; DROP } { DROP }; UNPAIR; SWAP; SUB; PUSH int 0; COMPARE; GT; IF {} { PUSH string "CMPT_INSUFFICIENT_SHORTFALL"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; CAR; CDR; DUP 3; CAR; CAR; VIEW "borrowBalanceStoredView" (pair nat nat); IF_NONE { PUSH string "INVALID ACCOUNT BORROW BALANCE VIEW"; FAILWITH } {}; CAR; DUP 4; CAR; CAR; GET 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; SWAP; DUP; GET 6; DIG 2; COMPARE; GE; IF {} { PUSH string "CMPT_TOO_MUCH_REPAY"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 5; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 5; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 6 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 158; FAILWITH } {}; CAR; GET 4; IF { PUSH string "CMPT_MINT_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 7 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; GET 3; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 185; FAILWITH } {}; DUP 2; CAR; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; GET 3; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 802; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 804; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 8 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; SENDER; MEM; IF { DUP 2; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; GET 3; CAR; CAR; DUP 2; MEM; IF { DUP 2; GET 3; CAR; CAR; DUP 2; GET; IF_NONE { PUSH int 249; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; DUP; DUG 2; GET; IF_NONE { PUSH int 250; FAILWITH } {}; PUSH bool False; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR } { DROP }; NIL operation; PAIR }; Elt 9 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 5; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; GET 5; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 10 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; PUSH (pair nat nat) (Pair 0 0); DUP; DUP 4; CAR; GET 3; CAR; DUP 4; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; GET; IF_NONE { PUSH int 501; FAILWITH } {}; ITER { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; GET; IF_NONE { PUSH int 509; FAILWITH } {}; ITER { DUP 5; CAR; GET 3; CAR; DUP 5; MEM; IF { DUP 5; CAR; GET 3; CAR; DUP 5; GET; IF_NONE { PUSH int 512; FAILWITH } {}; DUP 2; MEM; IF { DROP } { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } } {}; DUP 2; DUP 5; CAR; CAR; CAR; CDR; PUSH nat 4; MEM; IF {} { PUSH string "OP_NOT_ACTIVE"; FAILWITH }; DIG 4; UNPAIR; UNPAIR; UNPAIR; UNPAIR; SWAP; PUSH bool False; PUSH nat 4; UPDATE; SWAP; PUSH bool True; LEVEL; DIG 8; DROP; DIG 8; DROP; DIG 7; UNPAIR; SWAP; SUB; PAIR 3; SOME; DIG 6; UPDATE; PAIR; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 11 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CDR; PUSH nat 1; MEM; IF {} { PUSH string "OP_NOT_ACTIVE"; FAILWITH }; SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; SWAP; PUSH bool False; PUSH nat 1; UPDATE; SWAP; PAIR; PAIR; PAIR; PAIR; SWAP; PUSH nat 0; DUP 2; CAR; CDR; COMPARE; EQ; IF {} { PUSH string "CMPT_BORROW_IN_MARKET"; FAILWITH }; DUP 2; GET 3; GET 3; SENDER; MEM; IF { DUP 2; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 185; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 802; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 804; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 3; DUP 4; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 138; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 140; FAILWITH } {}; PUSH bool False; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 12 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 632; FAILWITH } {}; UNPAIR; UNPAIR; CDR; DIG 9; CDR; PAIR; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 13 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; UNPAIR; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 14 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 714; FAILWITH } {}; UNPAIR; UNPAIR; CAR; DIG 9; CDR; SWAP; PAIR; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 15 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; SWAP; PAIR; PAIR; NIL operation; PAIR }; Elt 16 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 17 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 614; FAILWITH } {}; UNPAIR; UNPAIR; SWAP; CAR; DIG 9; CDR; SWAP; PAIR; SWAP; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 18 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SOME; UPDATE 7; NIL operation; PAIR }; Elt 19 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; SWAP; CDR; DIG 3; UNPAIR; SWAP; PAIR; PAIR; SWAP; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 20 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; UPDATE 8; NIL operation; PAIR }; Elt 21 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 790; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF { PUSH string "CMPT_MARKET_ALREADY_LISTED"; FAILWITH } {}; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; PUSH (pair timestamp nat) (Pair "1970-01-01T00:00:00Z" 0); DUP 7; GET 4; PAIR; PUSH nat 0; DUP 8; GET 3; PAIR; PAIR; PUSH (pair (pair bool nat) (pair bool bool)) (Pair (Pair True 500000000000000000) (Pair True True)); PAIR; SOME; DUP 7; CAR; UPDATE; PAIR; SWAP; UNPAIR; SWAP; DUP 6; CAR; SOME; PUSH string "-USD"; DIG 7; GET 3; CONCAT; UPDATE; SWAP; PAIR; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 22 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 8; IF { PUSH string "CMPT_TRANSFER_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CDR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 185; FAILWITH } {}; DUP 2; CAR; CAR; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; CAR; CDR; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; CAR; CDR; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 802; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 804; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; CAR; CDR; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; CAR; CDR; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }}) => ./compiled_contracts/Comptroller/step_000_cont_0_storage.tz 1 - => ./compiled_contracts/Comptroller/step_000_cont_0_storage.json 5105 + => ./compiled_contracts/Comptroller/step_000_cont_0_storage.json 5122 => ./compiled_contracts/Comptroller/step_000_cont_0_sizes.csv 2 => ./compiled_contracts/Comptroller/step_000_cont_0_storage.py 1 => ./compiled_contracts/Comptroller/step_000_cont_0_types.py 7 => ./compiled_contracts/Comptroller/step_000_cont_0_contract.tz 1259 => ./compiled_contracts/Comptroller/step_000_cont_0_contract.json 1851 - => ./compiled_contracts/Comptroller/step_000_cont_0_contract.py 590 + => ./compiled_contracts/Comptroller/step_000_cont_0_contract.py 591 diff --git a/compiled_contracts/Comptroller/step_000_cont_0_contract.json b/compiled_contracts/Comptroller/step_000_cont_0_contract.json index 1b51af94..ece0f56c 100644 --- a/compiled_contracts/Comptroller/step_000_cont_0_contract.json +++ b/compiled_contracts/Comptroller/step_000_cont_0_contract.json @@ -1155,7 +1155,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "302" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "303" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "COMPARE" }, { "prim": "LT" }, @@ -1172,7 +1172,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "304" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "305" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CAR" }, { "prim": "CONCAT" }, @@ -1189,7 +1189,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "307" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "308" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "7" } ] }, { "prim": "COMPARE" }, { "prim": "NEQ" }, @@ -1221,7 +1221,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "310" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "311" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "5" } ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CDR" }, @@ -1238,7 +1238,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "309" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "310" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "UNPAIR" }, { "prim": "SWAP" }, { "prim": "UNPAIR" }, @@ -1257,7 +1257,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "311" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "312" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "8" } ] }, { "prim": "CAR" }, { "prim": "UPDATE", "args": [ { "int": "7" } ] }, @@ -1269,7 +1269,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "312" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "313" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "LEVEL" }, { "prim": "DIG", "args": [ { "int": "8" } ] }, { "prim": "DROP" }, @@ -1304,7 +1304,7 @@ [ { "prim": "CDR" }, { "prim": "CONTRACT", "args": [ { "prim": "unit" } ], "annots": [ "%accrueInterest" ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "356" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "357" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "mutez" }, { "int": "0" } ] }, { "prim": "UNIT" }, { "prim": "TRANSFER_TOKENS" }, @@ -1356,7 +1356,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "302" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "303" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "COMPARE" }, { "prim": "LT" }, @@ -1373,7 +1373,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "304" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "305" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CAR" }, { "prim": "CONCAT" }, @@ -1390,7 +1390,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "307" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "308" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "7" } ] }, { "prim": "COMPARE" }, { "prim": "NEQ" }, @@ -1422,7 +1422,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "310" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "311" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "5" } ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CDR" }, @@ -1439,7 +1439,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "309" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "310" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "UNPAIR" }, { "prim": "SWAP" }, { "prim": "UNPAIR" }, @@ -1458,7 +1458,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "311" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "312" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "8" } ] }, { "prim": "CAR" }, { "prim": "UPDATE", "args": [ { "int": "7" } ] }, @@ -1470,7 +1470,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "312" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "313" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "LEVEL" }, { "prim": "DIG", "args": [ { "int": "8" } ] }, { "prim": "DROP" }, @@ -1552,7 +1552,7 @@ { "prim": "CAR" }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "814" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "815" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -1583,7 +1583,7 @@ { "prim": "CAR" }, { "prim": "DIG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "818" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "819" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -1620,7 +1620,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "COMPARE" }, @@ -1632,7 +1632,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "DUP", "args": [ { "int": "3" } ] }, @@ -1641,7 +1641,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "DIG", "args": [ { "int": "5" } ] }, @@ -1655,7 +1655,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "PUSH", "args": [ { "prim": "nat" }, { "int": "0" } ] }, @@ -1754,7 +1754,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "473" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "474" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -1781,7 +1781,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CDR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "476" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "477" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "NOT" } @@ -1831,12 +1831,12 @@ { "prim": "CDR" }, { "prim": "UNIT" }, { "prim": "VIEW", "args": [ { "string": "comptroller" }, { "prim": "address" } ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "488" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "489" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "SWAP" }, { "prim": "CAR" }, { "prim": "UNIT" }, { "prim": "VIEW", "args": [ { "string": "comptroller" }, { "prim": "address" } ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "487" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "488" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "COMPARE" }, { "prim": "EQ" } ] diff --git a/compiled_contracts/Comptroller/step_000_cont_0_contract.py b/compiled_contracts/Comptroller/step_000_cont_0_contract.py index c6fddcbb..6bd0b87b 100644 --- a/compiled_contracts/Comptroller/step_000_cont_0_contract.py +++ b/compiled_contracts/Comptroller/step_000_cont_0_contract.py @@ -52,17 +52,18 @@ def borrowAllowed(self, params): sp.verify(sp.len(unique_assets.value) < self.data.maxAssetsPerUser, 'CMPT_TOO_MANY_ASSETS') sp.if ~ (self.data.loans.contains(params.borrower)): sp.verify(sp.sender == params.cToken, 'CMPT_INVALID_BORROW_SENDER') - sp.verify((self.data.markets.contains(sp.sender)) & self.data.markets[sp.sender].isListed, 'CMPT_MARKET_NOT_LISTED') + sp.if sp.sender == params.cToken: + sp.verify((self.data.markets.contains(params.cToken)) & self.data.markets[params.cToken].isListed, 'CMPT_MARKET_NOT_LISTED') sp.if self.data.loans.contains(params.borrower): - self.data.loans[params.borrower].add(sp.sender) + self.data.loans[params.borrower].add(params.cToken) sp.else: - self.data.loans[params.borrower] = sp.set([sp.sender]) + self.data.loans[params.borrower] = sp.set([params.cToken]) sp.verify(self.data.account_liquidity.contains(params.borrower), 'CMPT_LIQUIDITY_ABSENT') sp.verify(self.data.account_liquidity[params.borrower].valid, 'CMPT_LIQUIDITY_INVALID') sp.set_type(sp.level, sp.TNat) sp.set_type(self.data.account_liquidity[params.borrower].updateLevel, sp.TNat) - compute_Comptroller_802 = sp.local("compute_Comptroller_802", sp.as_nat(sp.level - self.data.account_liquidity[params.borrower].updateLevel, message = 'SUBTRACTION_UNDERFLOW')) - sp.verify(compute_Comptroller_802.value == 0, 'CMPT_LIQUIDITY_OLD') + compute_Comptroller_803 = sp.local("compute_Comptroller_803", sp.as_nat(sp.level - self.data.account_liquidity[params.borrower].updateLevel, message = 'SUBTRACTION_UNDERFLOW')) + sp.verify(compute_Comptroller_803.value == 0, 'CMPT_LIQUIDITY_OLD') sp.verify(sp.level == self.data.markets[params.cToken].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[params.cToken].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[params.cToken].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) @@ -140,24 +141,24 @@ def liquidateBorrowAllowed(self, params): sp.verify(sp.view("getAccountSnapshotView", params.borrower, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').is_some(), 'CMPT_OUTDATED_ACCOUNT_SNAPSHOT') params = sp.local("params", sp.view("getAccountSnapshotView", params.borrower, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').open_some()) sp.set_type(params.value.exchangeRateMantissa, sp.TNat) - compute_Comptroller_531 = sp.local("compute_Comptroller_531", sp.record(mantissa = params.value.exchangeRateMantissa)) + compute_Comptroller_532 = sp.local("compute_Comptroller_532", sp.record(mantissa = params.value.exchangeRateMantissa)) sp.verify(sp.level == self.data.markets[asset].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[asset].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].collateralFactor, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale, sp.TNat) sp.set_type(sp.record(mantissa = (self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_531.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale, sp.TNat) - compute_Comptroller_535 = sp.local("compute_Comptroller_535", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale)) + sp.set_type(compute_Comptroller_532.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale, sp.TNat) + compute_Comptroller_536 = sp.local("compute_Comptroller_536", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale)) calc = sp.local("calc", sp.record(sumBorrowPlusEffects = 0, sumCollateral = 0)) sp.if (self.data.collaterals.contains(params.value.account)) & (self.data.collaterals[params.value.account].contains(asset)): - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.cTokenBalance, sp.TNat) - sp.set_type(compute_Comptroller_535.value.mantissa * params.value.cTokenBalance, sp.TNat) - sp.set_type(sp.record(mantissa = compute_Comptroller_535.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - calc.value.sumCollateral += (compute_Comptroller_535.value.mantissa * params.value.cTokenBalance) // self.data.expScale + sp.set_type(compute_Comptroller_536.value.mantissa * params.value.cTokenBalance, sp.TNat) + sp.set_type(sp.record(mantissa = compute_Comptroller_536.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + calc.value.sumCollateral += (compute_Comptroller_536.value.mantissa * params.value.cTokenBalance) // self.data.expScale sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.borrowBalance, sp.TNat) @@ -173,24 +174,24 @@ def liquidateBorrowAllowed(self, params): sp.verify(sp.view("getAccountSnapshotView", params.borrower, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').is_some(), 'CMPT_OUTDATED_ACCOUNT_SNAPSHOT') params = sp.local("params", sp.view("getAccountSnapshotView", params.borrower, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').open_some()) sp.set_type(params.value.exchangeRateMantissa, sp.TNat) - compute_Comptroller_531 = sp.local("compute_Comptroller_531", sp.record(mantissa = params.value.exchangeRateMantissa)) + compute_Comptroller_532 = sp.local("compute_Comptroller_532", sp.record(mantissa = params.value.exchangeRateMantissa)) sp.verify(sp.level == self.data.markets[asset].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[asset].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].collateralFactor, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale, sp.TNat) sp.set_type(sp.record(mantissa = (self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_531.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale, sp.TNat) - compute_Comptroller_535 = sp.local("compute_Comptroller_535", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale)) + sp.set_type(compute_Comptroller_532.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale, sp.TNat) + compute_Comptroller_536 = sp.local("compute_Comptroller_536", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale)) calc = sp.local("calc", sp.record(sumBorrowPlusEffects = 0, sumCollateral = 0)) sp.if (self.data.collaterals.contains(params.value.account)) & (self.data.collaterals[params.value.account].contains(asset)): - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.cTokenBalance, sp.TNat) - sp.set_type(compute_Comptroller_535.value.mantissa * params.value.cTokenBalance, sp.TNat) - sp.set_type(sp.record(mantissa = compute_Comptroller_535.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - calc.value.sumCollateral += (compute_Comptroller_535.value.mantissa * params.value.cTokenBalance) // self.data.expScale + sp.set_type(compute_Comptroller_536.value.mantissa * params.value.cTokenBalance, sp.TNat) + sp.set_type(sp.record(mantissa = compute_Comptroller_536.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + calc.value.sumCollateral += (compute_Comptroller_536.value.mantissa * params.value.cTokenBalance) // self.data.expScale sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.borrowBalance, sp.TNat) @@ -203,24 +204,24 @@ def liquidateBorrowAllowed(self, params): sp.verify(sp.view("getAccountSnapshotView", params.borrower, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').is_some(), 'CMPT_OUTDATED_ACCOUNT_SNAPSHOT') params = sp.local("params", sp.view("getAccountSnapshotView", params.borrower, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').open_some()) sp.set_type(params.value.exchangeRateMantissa, sp.TNat) - compute_Comptroller_531 = sp.local("compute_Comptroller_531", sp.record(mantissa = params.value.exchangeRateMantissa)) + compute_Comptroller_532 = sp.local("compute_Comptroller_532", sp.record(mantissa = params.value.exchangeRateMantissa)) sp.verify(sp.level == self.data.markets[asset].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[asset].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].collateralFactor, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale, sp.TNat) sp.set_type(sp.record(mantissa = (self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_531.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale, sp.TNat) - compute_Comptroller_535 = sp.local("compute_Comptroller_535", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale)) + sp.set_type(compute_Comptroller_532.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale, sp.TNat) + compute_Comptroller_536 = sp.local("compute_Comptroller_536", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale)) calc = sp.local("calc", sp.record(sumBorrowPlusEffects = 0, sumCollateral = 0)) sp.if (self.data.collaterals.contains(params.value.account)) & (self.data.collaterals[params.value.account].contains(asset)): - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.cTokenBalance, sp.TNat) - sp.set_type(compute_Comptroller_535.value.mantissa * params.value.cTokenBalance, sp.TNat) - sp.set_type(sp.record(mantissa = compute_Comptroller_535.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - calc.value.sumCollateral += (compute_Comptroller_535.value.mantissa * params.value.cTokenBalance) // self.data.expScale + sp.set_type(compute_Comptroller_536.value.mantissa * params.value.cTokenBalance, sp.TNat) + sp.set_type(sp.record(mantissa = compute_Comptroller_536.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + calc.value.sumCollateral += (compute_Comptroller_536.value.mantissa * params.value.cTokenBalance) // self.data.expScale sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.borrowBalance, sp.TNat) @@ -230,8 +231,8 @@ def liquidateBorrowAllowed(self, params): calculation.value.sumCollateral += calc.value.sumCollateral calculation.value.sumBorrowPlusEffects += calc.value.sumBorrowPlusEffects calcLiquidity = sp.local("calcLiquidity", calculation.value) - compute_Comptroller_389 = sp.local("compute_Comptroller_389", calcLiquidity.value.sumCollateral - calcLiquidity.value.sumBorrowPlusEffects) - liquidtiy = sp.local("liquidtiy", compute_Comptroller_389.value) + compute_Comptroller_390 = sp.local("compute_Comptroller_390", calcLiquidity.value.sumCollateral - calcLiquidity.value.sumBorrowPlusEffects) + liquidtiy = sp.local("liquidtiy", compute_Comptroller_390.value) sp.verify(liquidtiy.value < 0, 'CMPT_INSUFFICIENT_SHORTFALL') sp.set_type(self.data.closeFactorMantissa, sp.TNat) sp.set_type(sp.record(mantissa = self.data.closeFactorMantissa), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) @@ -266,8 +267,8 @@ def redeemAllowed(self, params): sp.verify(self.data.account_liquidity[params.redeemer].valid, 'CMPT_LIQUIDITY_INVALID') sp.set_type(sp.level, sp.TNat) sp.set_type(self.data.account_liquidity[params.redeemer].updateLevel, sp.TNat) - compute_Comptroller_802 = sp.local("compute_Comptroller_802", sp.as_nat(sp.level - self.data.account_liquidity[params.redeemer].updateLevel, message = 'SUBTRACTION_UNDERFLOW')) - sp.verify(compute_Comptroller_802.value == 0, 'CMPT_LIQUIDITY_OLD') + compute_Comptroller_803 = sp.local("compute_Comptroller_803", sp.as_nat(sp.level - self.data.account_liquidity[params.redeemer].updateLevel, message = 'SUBTRACTION_UNDERFLOW')) + sp.verify(compute_Comptroller_803.value == 0, 'CMPT_LIQUIDITY_OLD') sp.verify(sp.level == self.data.markets[params.cToken].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[params.cToken].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[params.cToken].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) @@ -308,24 +309,24 @@ def setAccountLiquidityWithView(self, params): sp.verify(sp.view("getAccountSnapshotView", params, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').is_some(), 'CMPT_OUTDATED_ACCOUNT_SNAPSHOT') params = sp.local("params", sp.view("getAccountSnapshotView", params, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').open_some()) sp.set_type(params.value.exchangeRateMantissa, sp.TNat) - compute_Comptroller_531 = sp.local("compute_Comptroller_531", sp.record(mantissa = params.value.exchangeRateMantissa)) + compute_Comptroller_532 = sp.local("compute_Comptroller_532", sp.record(mantissa = params.value.exchangeRateMantissa)) sp.verify(sp.level == self.data.markets[asset].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[asset].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].collateralFactor, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale, sp.TNat) sp.set_type(sp.record(mantissa = (self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_531.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale, sp.TNat) - compute_Comptroller_535 = sp.local("compute_Comptroller_535", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale)) + sp.set_type(compute_Comptroller_532.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale, sp.TNat) + compute_Comptroller_536 = sp.local("compute_Comptroller_536", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale)) calc = sp.local("calc", sp.record(sumBorrowPlusEffects = 0, sumCollateral = 0)) sp.if (self.data.collaterals.contains(params.value.account)) & (self.data.collaterals[params.value.account].contains(asset)): - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.cTokenBalance, sp.TNat) - sp.set_type(compute_Comptroller_535.value.mantissa * params.value.cTokenBalance, sp.TNat) - sp.set_type(sp.record(mantissa = compute_Comptroller_535.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - calc.value.sumCollateral += (compute_Comptroller_535.value.mantissa * params.value.cTokenBalance) // self.data.expScale + sp.set_type(compute_Comptroller_536.value.mantissa * params.value.cTokenBalance, sp.TNat) + sp.set_type(sp.record(mantissa = compute_Comptroller_536.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + calc.value.sumCollateral += (compute_Comptroller_536.value.mantissa * params.value.cTokenBalance) // self.data.expScale sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.borrowBalance, sp.TNat) @@ -341,24 +342,24 @@ def setAccountLiquidityWithView(self, params): sp.verify(sp.view("getAccountSnapshotView", params, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').is_some(), 'CMPT_OUTDATED_ACCOUNT_SNAPSHOT') params = sp.local("params", sp.view("getAccountSnapshotView", params, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').open_some()) sp.set_type(params.value.exchangeRateMantissa, sp.TNat) - compute_Comptroller_531 = sp.local("compute_Comptroller_531", sp.record(mantissa = params.value.exchangeRateMantissa)) + compute_Comptroller_532 = sp.local("compute_Comptroller_532", sp.record(mantissa = params.value.exchangeRateMantissa)) sp.verify(sp.level == self.data.markets[asset].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[asset].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].collateralFactor, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale, sp.TNat) sp.set_type(sp.record(mantissa = (self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_531.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale, sp.TNat) - compute_Comptroller_535 = sp.local("compute_Comptroller_535", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale)) + sp.set_type(compute_Comptroller_532.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale, sp.TNat) + compute_Comptroller_536 = sp.local("compute_Comptroller_536", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale)) calc = sp.local("calc", sp.record(sumBorrowPlusEffects = 0, sumCollateral = 0)) sp.if (self.data.collaterals.contains(params.value.account)) & (self.data.collaterals[params.value.account].contains(asset)): - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.cTokenBalance, sp.TNat) - sp.set_type(compute_Comptroller_535.value.mantissa * params.value.cTokenBalance, sp.TNat) - sp.set_type(sp.record(mantissa = compute_Comptroller_535.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - calc.value.sumCollateral += (compute_Comptroller_535.value.mantissa * params.value.cTokenBalance) // self.data.expScale + sp.set_type(compute_Comptroller_536.value.mantissa * params.value.cTokenBalance, sp.TNat) + sp.set_type(sp.record(mantissa = compute_Comptroller_536.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + calc.value.sumCollateral += (compute_Comptroller_536.value.mantissa * params.value.cTokenBalance) // self.data.expScale sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.borrowBalance, sp.TNat) @@ -371,24 +372,24 @@ def setAccountLiquidityWithView(self, params): sp.verify(sp.view("getAccountSnapshotView", params, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').is_some(), 'CMPT_OUTDATED_ACCOUNT_SNAPSHOT') params = sp.local("params", sp.view("getAccountSnapshotView", params, asset, sp.TOption(sp.TRecord(account = sp.TAddress, borrowBalance = sp.TNat, cTokenBalance = sp.TNat, exchangeRateMantissa = sp.TNat).layout((("account", "borrowBalance"), ("cTokenBalance", "exchangeRateMantissa"))))).open_some(message = 'INVALID ACCOUNT SNAPSHOT VIEW').open_some()) sp.set_type(params.value.exchangeRateMantissa, sp.TNat) - compute_Comptroller_531 = sp.local("compute_Comptroller_531", sp.record(mantissa = params.value.exchangeRateMantissa)) + compute_Comptroller_532 = sp.local("compute_Comptroller_532", sp.record(mantissa = params.value.exchangeRateMantissa)) sp.verify(sp.level == self.data.markets[asset].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[asset].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].collateralFactor, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale, sp.TNat) sp.set_type(sp.record(mantissa = (self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_531.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale, sp.TNat) - compute_Comptroller_535 = sp.local("compute_Comptroller_535", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_531.value.mantissa) // self.data.expScale)) + sp.set_type(compute_Comptroller_532.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type((((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale, sp.TNat) + compute_Comptroller_536 = sp.local("compute_Comptroller_536", sp.record(mantissa = (((self.data.markets[asset].price.mantissa * self.data.markets[asset].collateralFactor.mantissa) // self.data.expScale) * compute_Comptroller_532.value.mantissa) // self.data.expScale)) calc = sp.local("calc", sp.record(sumBorrowPlusEffects = 0, sumCollateral = 0)) sp.if (self.data.collaterals.contains(params.value.account)) & (self.data.collaterals[params.value.account].contains(asset)): - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - sp.set_type(compute_Comptroller_535.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + sp.set_type(compute_Comptroller_536.value, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.cTokenBalance, sp.TNat) - sp.set_type(compute_Comptroller_535.value.mantissa * params.value.cTokenBalance, sp.TNat) - sp.set_type(sp.record(mantissa = compute_Comptroller_535.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) - calc.value.sumCollateral += (compute_Comptroller_535.value.mantissa * params.value.cTokenBalance) // self.data.expScale + sp.set_type(compute_Comptroller_536.value.mantissa * params.value.cTokenBalance, sp.TNat) + sp.set_type(sp.record(mantissa = compute_Comptroller_536.value.mantissa * params.value.cTokenBalance), sp.TRecord(mantissa = sp.TNat).layout("mantissa")) + calc.value.sumCollateral += (compute_Comptroller_536.value.mantissa * params.value.cTokenBalance) // self.data.expScale sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(self.data.markets[asset].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) sp.set_type(params.value.borrowBalance, sp.TNat) @@ -416,8 +417,8 @@ def setAccountSnapAndExitMarket(self, params): sp.verify(self.data.account_liquidity[params.account].valid, 'CMPT_LIQUIDITY_INVALID') sp.set_type(sp.level, sp.TNat) sp.set_type(self.data.account_liquidity[params.account].updateLevel, sp.TNat) - compute_Comptroller_802 = sp.local("compute_Comptroller_802", sp.as_nat(sp.level - self.data.account_liquidity[params.account].updateLevel, message = 'SUBTRACTION_UNDERFLOW')) - sp.verify(compute_Comptroller_802.value == 0, 'CMPT_LIQUIDITY_OLD') + compute_Comptroller_803 = sp.local("compute_Comptroller_803", sp.as_nat(sp.level - self.data.account_liquidity[params.account].updateLevel, message = 'SUBTRACTION_UNDERFLOW')) + sp.verify(compute_Comptroller_803.value == 0, 'CMPT_LIQUIDITY_OLD') sp.verify(sp.level == self.data.markets[sp.sender].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[sp.sender].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[sp.sender].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) @@ -542,8 +543,8 @@ def transferAllowed(self, params): sp.verify(self.data.account_liquidity[params.src].valid, 'CMPT_LIQUIDITY_INVALID') sp.set_type(sp.level, sp.TNat) sp.set_type(self.data.account_liquidity[params.src].updateLevel, sp.TNat) - compute_Comptroller_802 = sp.local("compute_Comptroller_802", sp.as_nat(sp.level - self.data.account_liquidity[params.src].updateLevel, message = 'SUBTRACTION_UNDERFLOW')) - sp.verify(compute_Comptroller_802.value == 0, 'CMPT_LIQUIDITY_OLD') + compute_Comptroller_803 = sp.local("compute_Comptroller_803", sp.as_nat(sp.level - self.data.account_liquidity[params.src].updateLevel, message = 'SUBTRACTION_UNDERFLOW')) + sp.verify(compute_Comptroller_803.value == 0, 'CMPT_LIQUIDITY_OLD') sp.verify(sp.level == self.data.markets[params.cToken].updateLevel, 'CMPT_UPDATE_PRICE') sp.verify(self.data.markets[params.cToken].price.mantissa > 0, 'CMPT_INVALID_PRICE') sp.set_type(self.data.markets[params.cToken].price, sp.TRecord(mantissa = sp.TNat).layout("mantissa")) diff --git a/compiled_contracts/Comptroller/step_000_cont_0_contract.tz b/compiled_contracts/Comptroller/step_000_cont_0_contract.tz index 4c424caa..867183e9 100644 --- a/compiled_contracts/Comptroller/step_000_cont_0_contract.tz +++ b/compiled_contracts/Comptroller/step_000_cont_0_contract.tz @@ -394,7 +394,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : @level : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 302; # int : @level : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 303; # int : @level : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : @level : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -415,7 +415,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : string : address : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 304; # int : string : address : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 305; # int : string : address : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : string : address : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -438,7 +438,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : timestamp : @some : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 307; # int : timestamp : @some : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 308; # int : timestamp : @some : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : timestamp : @some : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -473,7 +473,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : @some : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 310; # int : @some : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 311; # int : @some : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : @some : address : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -495,7 +495,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : nat : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 309; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : nat : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 310; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : nat : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : nat : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -520,7 +520,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 311; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 312; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -538,7 +538,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 312; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 313; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAccountLiquidityWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -576,7 +576,7 @@ code CONTRACT %accrueInterest unit; # option (contract unit) : list operation : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 356; # int : list operation : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 357; # int : list operation : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : list operation : @parameter%updateAccountLiquidityWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -640,7 +640,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : @level : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 302; # int : @level : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 303; # int : @level : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : @level : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -661,7 +661,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : string : address : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 304; # int : string : address : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 305; # int : string : address : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : string : address : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -684,7 +684,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : timestamp : @some : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 307; # int : timestamp : @some : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 308; # int : timestamp : @some : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : timestamp : @some : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -719,7 +719,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : @some : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 310; # int : @some : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 311; # int : @some : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : @some : address : @parameter%updateAllAssetPricesWithView : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -741,7 +741,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : nat : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 309; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : nat : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 310; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : nat : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : nat : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -766,7 +766,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 311; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 312; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -784,7 +784,7 @@ code GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 312; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 313; # int : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : address : big_map address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair string nat) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : pair (big_map %loans address (set address)) (map %marketNameToAddress string address) : pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)) : pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa))) : @some : address : @parameter%updateAllAssetPricesWithView : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -858,7 +858,7 @@ view GET; # option (set address) : set address : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 814; # int : set address : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 815; # int : set address : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : set address : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -892,7 +892,7 @@ view GET; # option (set address) : set address IF_NONE { - PUSH int 818; # int : set address + PUSH int 819; # int : set address FAILWITH; # FAILED } {}; # @some : set address @@ -929,7 +929,7 @@ view GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 315; # int : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 316; # int : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -952,7 +952,7 @@ view GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 316; # int : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 317; # int : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -967,7 +967,7 @@ view GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) IF_NONE { - PUSH int 315; # int : nat : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) + PUSH int 316; # int : nat : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) FAILWITH; # FAILED } {}; # @some : nat : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) : big_map nat (lambda (pair (or (or (or (or unit (pair address (pair address nat))) (or address (or (list address) unit))) (or (or (pair (pair address address) (pair address (pair address nat))) (or (pair address (pair address nat)) (pair address (pair address nat)))) (or address (or (pair address (pair address (pair address nat))) address)))) (or (or (or (pair (pair address nat) (pair nat nat)) (or (pair address bool) nat)) (or (pair address nat) (or nat nat))) (or (or (pair address bool) (or address (pair address int))) (or bool (or (pair address (pair string nat)) (pair (pair address address) (pair address nat))))))) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool))))) (pair (list operation) (pair (pair (pair (pair (big_map address (pair int (pair nat bool))) (set nat)) (pair address nat)) (pair (pair (big_map address (set address)) nat) (pair nat nat))) (pair (pair (pair (big_map address (set address)) (map string address)) (pair (big_map address (pair (pair (pair bool nat) (pair bool bool)) (pair (pair string nat) (pair nat (pair timestamp nat))))) nat)) (pair (pair int address) (pair (option address) bool)))))) @@ -992,7 +992,7 @@ view GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : nat : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) IF_NONE { - PUSH int 316; # int : nat : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) + PUSH int 317; # int : nat : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) FAILWITH; # FAILED } {}; # @some : nat : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) @@ -1146,7 +1146,7 @@ view GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) IF_NONE { - PUSH int 473; # int : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) + PUSH int 474; # int : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) FAILWITH; # FAILED } {}; # @some : @parameter : pair (pair (pair (pair (big_map %account_liquidity address (pair (int %liquidity) (pair (nat %updateLevel) (bool %valid)))) (set %activeOperations nat)) (pair (address %administrator) (nat %closeFactorMantissa))) (pair (pair (big_map %collaterals address (set address)) (nat %expScale)) (pair (nat %halfExpScale) (nat %liquidationIncentiveMantissa)))) (pair (pair (pair (big_map %loans address (set address)) (map %marketNameToAddress string address)) (pair (big_map %markets address (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel)))))) (nat %maxAssetsPerUser))) (pair (pair (int %maxPriceTimeDifference) (address %oracleAddress)) (pair (option %pendingAdministrator address) (bool %transferPaused)))) @@ -1174,7 +1174,7 @@ view GET; # option (pair (pair (pair (bool %borrowPaused) (nat %collateralFactor)) (pair (bool %isListed) (bool %mintPaused))) (pair (pair (string %name) (nat %price)) (pair (nat %priceExp) (pair (timestamp %priceTimestamp) (nat %updateLevel))))) : @parameter IF_NONE { - PUSH int 476; # int : @parameter + PUSH int 477; # int : @parameter FAILWITH; # FAILED } {}; # @some : @parameter @@ -1238,7 +1238,7 @@ view VIEW "comptroller" address; # option address : @parameter IF_NONE { - PUSH int 488; # int : @parameter + PUSH int 489; # int : @parameter FAILWITH; # FAILED } {}; # @some : @parameter @@ -1248,7 +1248,7 @@ view VIEW "comptroller" address; # option address : @some IF_NONE { - PUSH int 487; # int : @some + PUSH int 488; # int : @some FAILWITH; # FAILED } {}; # @some : @some diff --git a/compiled_contracts/Comptroller/step_000_cont_0_sizes.csv b/compiled_contracts/Comptroller/step_000_cont_0_sizes.csv index 1eda4105..5092fc98 100644 --- a/compiled_contracts/Comptroller/step_000_cont_0_sizes.csv +++ b/compiled_contracts/Comptroller/step_000_cont_0_sizes.csv @@ -1,2 +1,2 @@ -storage,21967 +storage,22007 contract,7159 \ No newline at end of file diff --git a/compiled_contracts/Comptroller/step_000_cont_0_storage.json b/compiled_contracts/Comptroller/step_000_cont_0_storage.json index 7519b60f..0f34f762 100644 --- a/compiled_contracts/Comptroller/step_000_cont_0_storage.json +++ b/compiled_contracts/Comptroller/step_000_cont_0_storage.json @@ -88,7 +88,7 @@ { "prim": "IF", "args": [ [], [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "CMPT_NOT_PENDING_ADMIN" } ] }, { "prim": "FAILWITH" } ] ] }, { "prim": "DUP" }, { "prim": "GET", "args": [ { "int": "7" } ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "594" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "595" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "SWAP" }, { "prim": "UNPAIR" }, { "prim": "UNPAIR" }, @@ -171,7 +171,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -198,7 +198,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "827" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "828" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "CAR" }, { "prim": "MEM" }, @@ -226,7 +226,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "831" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "832" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "CAR" }, { "prim": "MEM" }, @@ -259,7 +259,7 @@ { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "814" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "815" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -293,7 +293,7 @@ { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "818" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "819" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -338,11 +338,24 @@ { "prim": "SENDER" }, { "prim": "COMPARE" }, { "prim": "EQ" }, - { "prim": "IF", "args": [ [], [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "CMPT_INVALID_BORROW_SENDER" } ] }, { "prim": "FAILWITH" } ] ] }, + { "prim": "IF", "args": [ [], [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "CMPT_INVALID_BORROW_SENDER" } ] }, { "prim": "FAILWITH" } ] ] } + ] + ] + }, + { "prim": "DUP", "args": [ { "int": "2" } ] }, + { "prim": "CAR" }, + { "prim": "SENDER" }, + { "prim": "COMPARE" }, + { "prim": "EQ" }, + { + "prim": "IF", + "args": [ + [ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, - { "prim": "SENDER" }, + { "prim": "DUP", "args": [ { "int": "3" } ] }, + { "prim": "CAR" }, { "prim": "MEM" }, { "prim": "IF", @@ -351,9 +364,10 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, - { "prim": "SENDER" }, + { "prim": "DUP", "args": [ { "int": "3" } ] }, + { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -384,9 +398,10 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "239" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "240" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "True" } ] }, - { "prim": "SENDER" }, + { "prim": "DUP", "args": [ { "int": "10" } ] }, + { "prim": "CAR" }, { "prim": "UPDATE" }, { "prim": "SOME" }, { "prim": "SWAP" }, @@ -407,7 +422,8 @@ { "prim": "UNPAIR" }, { "prim": "EMPTY_SET", "args": [ { "prim": "address" } ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "True" } ] }, - { "prim": "SENDER" }, + { "prim": "DUP", "args": [ { "int": "9" } ] }, + { "prim": "CAR" }, { "prim": "UPDATE" }, { "prim": "SOME" }, { "prim": "DUP", "args": [ { "int": "8" } ] }, @@ -422,7 +438,8 @@ ] ] } - ] + ], + [] ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, @@ -442,7 +459,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "801" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "802" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "IF", "args": [ [], [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "CMPT_LIQUIDITY_INVALID" } ] }, { "prim": "FAILWITH" } ] ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, @@ -453,7 +470,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "803" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "804" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "LEVEL" }, { "prim": "SUB" }, @@ -470,7 +487,7 @@ { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "DIG", "args": [ { "int": "2" } ] }, @@ -487,7 +504,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -551,7 +568,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -628,7 +645,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -648,7 +665,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "776" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "777" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "UNPAIR" }, { "prim": "UNPAIR" }, { "prim": "SWAP" }, @@ -733,7 +750,7 @@ { "prim": "CAR" }, { "prim": "SENDER" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "814" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "815" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -765,7 +782,7 @@ { "prim": "CAR" }, { "prim": "SENDER" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "818" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "819" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -805,7 +822,7 @@ { "prim": "CAR" }, { "prim": "SENDER" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "827" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "828" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "MEM" }, { "prim": "IF", "args": [ [ { "prim": "DROP" }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] } ], [] ] } @@ -830,7 +847,7 @@ { "prim": "CAR" }, { "prim": "SENDER" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "831" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "832" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "MEM" }, { "prim": "IF", "args": [ [ { "prim": "DROP" }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] } ], [] ] } @@ -871,7 +888,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -961,7 +978,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -1099,7 +1116,7 @@ { "prim": "CAR" }, { "prim": "CDR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -1123,7 +1140,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -1153,7 +1170,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "500" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "501" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -1217,7 +1234,7 @@ "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "INVALID ACCOUNT SNAPSHOT VIEW" } ] }, { "prim": "FAILWITH" } ], [] ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "530" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "531" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, @@ -1225,7 +1242,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "COMPARE" }, @@ -1237,7 +1254,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -1257,7 +1274,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "6" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "CDR" }, @@ -1266,7 +1283,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -1299,7 +1316,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "539" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "540" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "MEM" } ], @@ -1345,7 +1362,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DIG", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "543" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "544" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -1394,7 +1411,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "508" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "509" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -1419,7 +1436,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "511" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "512" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "MEM" }, { @@ -1496,7 +1513,7 @@ [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "INVALID ACCOUNT SNAPSHOT VIEW" } ] }, { "prim": "FAILWITH" } ], [] ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "530" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "531" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, @@ -1504,7 +1521,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "COMPARE" }, @@ -1519,7 +1536,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -1542,7 +1559,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "6" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "CDR" }, @@ -1551,7 +1568,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -1592,7 +1609,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "539" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "540" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "MEM" } ], @@ -1638,7 +1655,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DIG", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "543" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "544" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -1733,7 +1750,7 @@ "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "INVALID ACCOUNT SNAPSHOT VIEW" } ] }, { "prim": "FAILWITH" } ], [] ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "530" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "531" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, @@ -1741,7 +1758,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "COMPARE" }, @@ -1753,7 +1770,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -1776,7 +1793,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "6" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "CDR" }, @@ -1785,7 +1802,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -1824,7 +1841,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "539" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "540" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "MEM" } ], @@ -1870,7 +1887,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DIG", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "543" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "544" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -1968,7 +1985,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -2006,7 +2023,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -2095,7 +2112,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -2126,7 +2143,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -2205,7 +2222,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -2291,7 +2308,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "801" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "802" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "IF", "args": [ [], [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "CMPT_LIQUIDITY_INVALID" } ] }, { "prim": "FAILWITH" } ] ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, @@ -2302,7 +2319,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "803" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "804" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "LEVEL" }, { "prim": "SUB" }, @@ -2322,7 +2339,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "DIG", "args": [ { "int": "2" } ] }, @@ -2337,7 +2354,7 @@ { "prim": "DUP", "args": [ { "int": "3" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -2409,7 +2426,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -2478,7 +2495,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "SENDER" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -2502,7 +2519,7 @@ { "prim": "CAR" }, { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "248" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "249" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "SENDER" }, { "prim": "MEM" } ], @@ -2524,7 +2541,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "249" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "250" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "SENDER" }, { "prim": "UPDATE" }, @@ -2605,7 +2622,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -2636,7 +2653,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -2674,7 +2691,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -2755,7 +2772,7 @@ { "prim": "CAR" }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "500" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "501" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -2815,7 +2832,7 @@ "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "INVALID ACCOUNT SNAPSHOT VIEW" } ] }, { "prim": "FAILWITH" } ], [] ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "530" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "531" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, @@ -2823,7 +2840,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "COMPARE" }, @@ -2835,7 +2852,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -2855,7 +2872,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "6" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "CDR" }, @@ -2864,7 +2881,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -2897,7 +2914,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "539" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "540" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "MEM" } ], @@ -2943,7 +2960,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DIG", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "543" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "544" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -2988,7 +3005,7 @@ { "prim": "CAR" }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "508" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "509" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "ITER", "args": [ @@ -3009,7 +3026,7 @@ { "prim": "CAR" }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "511" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "512" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "MEM" }, { @@ -3082,7 +3099,7 @@ [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "INVALID ACCOUNT SNAPSHOT VIEW" } ] }, { "prim": "FAILWITH" } ], [] ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "530" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "531" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, @@ -3090,7 +3107,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "COMPARE" }, @@ -3105,7 +3122,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -3128,7 +3145,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "6" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "CDR" }, @@ -3137,7 +3154,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -3178,7 +3195,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "539" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "540" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "MEM" } ], @@ -3224,7 +3241,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DIG", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "543" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "544" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -3315,7 +3332,7 @@ "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "INVALID ACCOUNT SNAPSHOT VIEW" } ] }, { "prim": "FAILWITH" } ], [] ] }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "530" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "531" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, @@ -3323,7 +3340,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "4" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "COMPARE" }, @@ -3335,7 +3352,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -3358,7 +3375,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "6" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "CDR" }, @@ -3367,7 +3384,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DUP", "args": [ { "int": "7" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "534" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "535" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -3406,7 +3423,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "539" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "540" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP", "args": [ { "int": "5" } ] }, { "prim": "MEM" } ], @@ -3452,7 +3469,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "DIG", "args": [ { "int": "5" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "543" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "544" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "MUL" }, @@ -3609,7 +3626,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "SENDER" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -3700,7 +3717,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "801" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "802" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "IF", "args": [ [], [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "CMPT_LIQUIDITY_INVALID" } ] }, { "prim": "FAILWITH" } ] ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, @@ -3712,7 +3729,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "803" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "804" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "LEVEL" }, { "prim": "SUB" }, @@ -3731,7 +3748,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "SENDER" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "DIG", "args": [ { "int": "2" } ] }, @@ -3745,7 +3762,7 @@ { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "SENDER" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -3819,7 +3836,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -3920,7 +3937,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, @@ -3999,7 +4016,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -4028,7 +4045,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "631" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "632" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "UNPAIR" }, { "prim": "UNPAIR" }, { "prim": "CDR" }, @@ -4181,7 +4198,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -4202,7 +4219,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "713" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "714" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "UNPAIR" }, { "prim": "UNPAIR" }, { "prim": "CAR" }, @@ -4422,7 +4439,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -4451,7 +4468,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "613" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "614" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "UNPAIR" }, { "prim": "UNPAIR" }, { "prim": "SWAP" }, @@ -4726,7 +4743,7 @@ { "prim": "DUP", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "789" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "790" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -4863,7 +4880,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "785" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "786" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, { "prim": "GET", "args": [ { "int": "3" } ] } ], @@ -4956,7 +4973,7 @@ { "prim": "CAR" }, { "prim": "CDR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "801" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "802" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "4" } ] }, { "prim": "IF", "args": [ [], [ { "prim": "PUSH", "args": [ { "prim": "string" }, { "string": "CMPT_LIQUIDITY_INVALID" } ] }, { "prim": "FAILWITH" } ] ] }, { "prim": "DUP", "args": [ { "int": "2" } ] }, @@ -4968,7 +4985,7 @@ { "prim": "CAR" }, { "prim": "CDR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "803" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "804" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "LEVEL" }, { "prim": "SUB" }, @@ -4989,7 +5006,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "315" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "8" } ] }, { "prim": "LEVEL" }, { "prim": "DIG", "args": [ { "int": "2" } ] }, @@ -5005,7 +5022,7 @@ { "prim": "CAR" }, { "prim": "CAR" }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "316" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "317" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "GET", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, { "prim": "COMPARE" }, @@ -5081,7 +5098,7 @@ { "prim": "DUP" }, { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "808" } ] }, { "prim": "FAILWITH" } ], [] ] }, + { "prim": "IF_NONE", "args": [ [ { "prim": "PUSH", "args": [ { "prim": "int" }, { "int": "809" } ] }, { "prim": "FAILWITH" } ], [] ] }, { "prim": "PUSH", "args": [ { "prim": "bool" }, { "prim": "False" } ] }, { "prim": "UPDATE", "args": [ { "int": "4" } ] }, { "prim": "SOME" }, diff --git a/compiled_contracts/Comptroller/step_000_cont_0_storage.tz b/compiled_contracts/Comptroller/step_000_cont_0_storage.tz index b2fc2a7b..57ef445b 100644 --- a/compiled_contracts/Comptroller/step_000_cont_0_storage.tz +++ b/compiled_contracts/Comptroller/step_000_cont_0_storage.tz @@ -1 +1 @@ -(Pair (Pair (Pair (Pair (Pair {} {}) (Pair "KT1NF6DKX5giazRTzPtEuNX1npkVcaoQkvK2" 500000000000000000)) (Pair (Pair {} 1000000000000000000) (Pair 500000000000000000 1050000000000000000))) (Pair (Pair (Pair {} {}) (Pair {} 15)) (Pair (Pair 86400 "KT1LDtNKDnpziwSrmSfx3xCbs7nBMg7VFp4m") (Pair None True)))) {Elt 0 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { DROP } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP; GET 7; IF_NONE { PUSH string "CMPT_NOT_SET_PENDING_ADMIN"; FAILWITH } {}; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_PENDING_ADMIN"; FAILWITH }; DUP; GET 7; IF_NONE { PUSH int 594; FAILWITH } {}; SWAP; UNPAIR; UNPAIR; UNPAIR; SWAP; CDR; DIG 4; PAIR; SWAP; PAIR; PAIR; PAIR; NONE address; UPDATE 7; NIL operation; PAIR }; Elt 1 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } {} } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 217; FAILWITH } {}; CAR; CAR; CAR; IF { PUSH string "CMPT_BORROW_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; PUSH bool True; DUP 3; CAR; GET 3; CAR; DUP 3; GET 3; MEM; IF { DUP 3; CAR; GET 3; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 827; FAILWITH } {}; DUP 3; CAR; MEM; IF { DROP; PUSH bool False } {} } {}; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF { DUP } { PUSH bool False }; IF { DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 831; FAILWITH } {}; DUP 3; CAR; MEM; IF { DROP; PUSH bool False } {} } {}; DUP; IF { EMPTY_SET address; DUP 4; CAR; GET 3; CAR; DUP 4; GET 3; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; GET 3; GET; IF_NONE { PUSH int 814; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; GET 3; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; GET 3; GET; IF_NONE { PUSH int 818; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 4; GET 3; GET 4; SWAP; SIZE; COMPARE; LT; IF {} { PUSH string "CMPT_TOO_MANY_ASSETS"; FAILWITH } } {}; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF {} { DUP 2; CAR; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_INVALID_BORROW_SENDER"; FAILWITH }; DUP 3; GET 3; GET 3; SENDER; MEM; IF { DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF { DIG 2; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 8; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 239; FAILWITH } {}; PUSH bool True; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR; DUG 2 } { DIG 2; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; EMPTY_SET address; PUSH bool True; SENDER; UPDATE; SOME; DUP 8; GET 3; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR; DUG 2 } }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 801; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 803; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 2 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DIG 6; DUP; DUG 2; GET; IF_NONE { PUSH int 776; FAILWITH } {}; UNPAIR; UNPAIR; SWAP; CDR; PUSH bool False; PAIR; SWAP; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 3 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; EMPTY_SET address; DUP 3; CAR; GET 3; CAR; SENDER; MEM; IF { DUP 3; CAR; GET 3; CAR; SENDER; GET; IF_NONE { PUSH int 814; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 3; GET 3; CAR; CAR; SENDER; MEM; IF { DUP 3; GET 3; CAR; CAR; SENDER; GET; IF_NONE { PUSH int 818; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP; SIZE; DUP 3; ITER { PUSH bool True; DUP 6; CAR; GET 3; CAR; SENDER; MEM; IF { DUP 6; CAR; GET 3; CAR; SENDER; GET; IF_NONE { PUSH int 827; FAILWITH } {}; DUP 3; MEM; IF { DROP; PUSH bool False } {} } {}; DUP 6; GET 3; CAR; CAR; SENDER; MEM; IF { DUP } { PUSH bool False }; IF { DUP 6; GET 3; CAR; CAR; SENDER; GET; IF_NONE { PUSH int 831; FAILWITH } {}; DUP 3; MEM; IF { DROP; PUSH bool False } {} } {}; IF { DUP 5; GET 3; GET 4; DUP 3; COMPARE; LT; IF {} { PUSH string "CMPT_TOO_MANY_ASSETS"; FAILWITH }; SWAP; PUSH nat 1; ADD; SWAP } {}; DUP 5; GET 3; GET 3; DUP 2; MEM; IF { DUP 5; GET 3; GET 3; DUP 2; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 5; CAR; GET 3; CAR; SENDER; MEM; IF { DIG 4; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; DUP; SENDER; DUP; DUG 2; GET; IF_NONE { PUSH int 94; FAILWITH } {}; PUSH bool True; DIG 8; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; DUG 3 } { DIG 4; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; EMPTY_SET address; PUSH bool True; DIG 7; UPDATE; SOME; SENDER; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; DUG 3 } }; DROP 3; DUP; CAR; CAR; CAR; CAR; SENDER; MEM; IF { UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; SENDER; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } {}; NIL operation; PAIR }; Elt 4 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { DROP } } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; DUP; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; UNPAIR; UNPAIR; UNPAIR; CAR; EMPTY_SET nat; SWAP; PAIR; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 5 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; CDR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; GET 3; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; GET 3; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; PUSH (pair nat nat) (Pair 0 0); DUP; DUP 4; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 500; FAILWITH } {}; ITER { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 508; FAILWITH } {}; ITER { DUP 5; CAR; GET 3; CAR; DUP 5; CAR; CAR; MEM; IF { DUP 5; CAR; GET 3; CAR; DUP 5; CAR; CAR; GET; IF_NONE { PUSH int 511; FAILWITH } {}; DUP 2; MEM; IF { DROP } { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } }; DROP } { DROP }; UNPAIR; SWAP; SUB; PUSH int 0; COMPARE; GT; IF {} { PUSH string "CMPT_INSUFFICIENT_SHORTFALL"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; CAR; CDR; DUP 3; CAR; CAR; VIEW "borrowBalanceStoredView" (pair nat nat); IF_NONE { PUSH string "INVALID ACCOUNT BORROW BALANCE VIEW"; FAILWITH } {}; CAR; DUP 4; CAR; CAR; GET 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; SWAP; DUP; GET 6; DIG 2; COMPARE; GE; IF {} { PUSH string "CMPT_TOO_MUCH_REPAY"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 5; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 5; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 6 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 158; FAILWITH } {}; CAR; GET 4; IF { PUSH string "CMPT_MINT_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 7 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; GET 3; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 185; FAILWITH } {}; DUP 2; CAR; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; GET 3; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 801; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 803; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 8 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; SENDER; MEM; IF { DUP 2; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; GET 3; CAR; CAR; DUP 2; MEM; IF { DUP 2; GET 3; CAR; CAR; DUP 2; GET; IF_NONE { PUSH int 248; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; DUP; DUG 2; GET; IF_NONE { PUSH int 249; FAILWITH } {}; PUSH bool False; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR } { DROP }; NIL operation; PAIR }; Elt 9 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 5; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; GET 5; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 10 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; PUSH (pair nat nat) (Pair 0 0); DUP; DUP 4; CAR; GET 3; CAR; DUP 4; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; GET; IF_NONE { PUSH int 500; FAILWITH } {}; ITER { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; GET; IF_NONE { PUSH int 508; FAILWITH } {}; ITER { DUP 5; CAR; GET 3; CAR; DUP 5; MEM; IF { DUP 5; CAR; GET 3; CAR; DUP 5; GET; IF_NONE { PUSH int 511; FAILWITH } {}; DUP 2; MEM; IF { DROP } { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 530; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 534; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 534; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 539; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 543; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } } {}; DUP 2; DUP 5; CAR; CAR; CAR; CDR; PUSH nat 4; MEM; IF {} { PUSH string "OP_NOT_ACTIVE"; FAILWITH }; DIG 4; UNPAIR; UNPAIR; UNPAIR; UNPAIR; SWAP; PUSH bool False; PUSH nat 4; UPDATE; SWAP; PUSH bool True; LEVEL; DIG 8; DROP; DIG 8; DROP; DIG 7; UNPAIR; SWAP; SUB; PAIR 3; SOME; DIG 6; UPDATE; PAIR; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 11 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CDR; PUSH nat 1; MEM; IF {} { PUSH string "OP_NOT_ACTIVE"; FAILWITH }; SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; SWAP; PUSH bool False; PUSH nat 1; UPDATE; SWAP; PAIR; PAIR; PAIR; PAIR; SWAP; PUSH nat 0; DUP 2; CAR; CDR; COMPARE; EQ; IF {} { PUSH string "CMPT_BORROW_IN_MARKET"; FAILWITH }; DUP 2; GET 3; GET 3; SENDER; MEM; IF { DUP 2; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 185; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 801; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 803; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 3; DUP 4; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 138; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 140; FAILWITH } {}; PUSH bool False; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 12 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 631; FAILWITH } {}; UNPAIR; UNPAIR; CDR; DIG 9; CDR; PAIR; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 13 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; UNPAIR; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 14 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 713; FAILWITH } {}; UNPAIR; UNPAIR; CAR; DIG 9; CDR; SWAP; PAIR; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 15 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; SWAP; PAIR; PAIR; NIL operation; PAIR }; Elt 16 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 17 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 613; FAILWITH } {}; UNPAIR; UNPAIR; SWAP; CAR; DIG 9; CDR; SWAP; PAIR; SWAP; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 18 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SOME; UPDATE 7; NIL operation; PAIR }; Elt 19 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; SWAP; CDR; DIG 3; UNPAIR; SWAP; PAIR; PAIR; SWAP; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 20 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; UPDATE 8; NIL operation; PAIR }; Elt 21 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 789; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF { PUSH string "CMPT_MARKET_ALREADY_LISTED"; FAILWITH } {}; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; PUSH (pair timestamp nat) (Pair "1970-01-01T00:00:00Z" 0); DUP 7; GET 4; PAIR; PUSH nat 0; DUP 8; GET 3; PAIR; PAIR; PUSH (pair (pair bool nat) (pair bool bool)) (Pair (Pair True 500000000000000000) (Pair True True)); PAIR; SOME; DUP 7; CAR; UPDATE; PAIR; SWAP; UNPAIR; SWAP; DUP 6; CAR; SOME; PUSH string "-USD"; DIG 7; GET 3; CONCAT; UPDATE; SWAP; PAIR; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 22 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 8; IF { PUSH string "CMPT_TRANSFER_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 785; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CDR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 185; FAILWITH } {}; DUP 2; CAR; CAR; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; CAR; CDR; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; CAR; CDR; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 801; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 803; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 315; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; CAR; CDR; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; CAR; CDR; DUP; DUG 2; GET; IF_NONE { PUSH int 808; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }}) \ No newline at end of file +(Pair (Pair (Pair (Pair (Pair {} {}) (Pair "KT1NF6DKX5giazRTzPtEuNX1npkVcaoQkvK2" 500000000000000000)) (Pair (Pair {} 1000000000000000000) (Pair 500000000000000000 1050000000000000000))) (Pair (Pair (Pair {} {}) (Pair {} 15)) (Pair (Pair 86400 "KT1LDtNKDnpziwSrmSfx3xCbs7nBMg7VFp4m") (Pair None True)))) {Elt 0 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { DROP } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP; GET 7; IF_NONE { PUSH string "CMPT_NOT_SET_PENDING_ADMIN"; FAILWITH } {}; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_PENDING_ADMIN"; FAILWITH }; DUP; GET 7; IF_NONE { PUSH int 595; FAILWITH } {}; SWAP; UNPAIR; UNPAIR; UNPAIR; SWAP; CDR; DIG 4; PAIR; SWAP; PAIR; PAIR; PAIR; NONE address; UPDATE 7; NIL operation; PAIR }; Elt 1 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } {} } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 217; FAILWITH } {}; CAR; CAR; CAR; IF { PUSH string "CMPT_BORROW_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; PUSH bool True; DUP 3; CAR; GET 3; CAR; DUP 3; GET 3; MEM; IF { DUP 3; CAR; GET 3; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 828; FAILWITH } {}; DUP 3; CAR; MEM; IF { DROP; PUSH bool False } {} } {}; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF { DUP } { PUSH bool False }; IF { DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 832; FAILWITH } {}; DUP 3; CAR; MEM; IF { DROP; PUSH bool False } {} } {}; DUP; IF { EMPTY_SET address; DUP 4; CAR; GET 3; CAR; DUP 4; GET 3; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; GET 3; GET; IF_NONE { PUSH int 815; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; GET 3; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; GET 3; GET; IF_NONE { PUSH int 819; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 4; GET 3; GET 4; SWAP; SIZE; COMPARE; LT; IF {} { PUSH string "CMPT_TOO_MANY_ASSETS"; FAILWITH } } {}; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF {} { DUP 2; CAR; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_INVALID_BORROW_SENDER"; FAILWITH } }; DUP 2; CAR; SENDER; COMPARE; EQ; IF { DUP 3; GET 3; GET 3; DUP 3; CAR; MEM; IF { DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; MEM; IF { DIG 2; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 8; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 240; FAILWITH } {}; PUSH bool True; DUP 10; CAR; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR; DUG 2 } { DIG 2; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; EMPTY_SET address; PUSH bool True; DUP 9; CAR; UPDATE; SOME; DUP 8; GET 3; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR; DUG 2 } } {}; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 802; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 804; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 2 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DIG 6; DUP; DUG 2; GET; IF_NONE { PUSH int 777; FAILWITH } {}; UNPAIR; UNPAIR; SWAP; CDR; PUSH bool False; PAIR; SWAP; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 3 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; EMPTY_SET address; DUP 3; CAR; GET 3; CAR; SENDER; MEM; IF { DUP 3; CAR; GET 3; CAR; SENDER; GET; IF_NONE { PUSH int 815; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP 3; GET 3; CAR; CAR; SENDER; MEM; IF { DUP 3; GET 3; CAR; CAR; SENDER; GET; IF_NONE { PUSH int 819; FAILWITH } {}; ITER { SWAP; PUSH bool True; DIG 2; UPDATE } } {}; DUP; SIZE; DUP 3; ITER { PUSH bool True; DUP 6; CAR; GET 3; CAR; SENDER; MEM; IF { DUP 6; CAR; GET 3; CAR; SENDER; GET; IF_NONE { PUSH int 828; FAILWITH } {}; DUP 3; MEM; IF { DROP; PUSH bool False } {} } {}; DUP 6; GET 3; CAR; CAR; SENDER; MEM; IF { DUP } { PUSH bool False }; IF { DUP 6; GET 3; CAR; CAR; SENDER; GET; IF_NONE { PUSH int 832; FAILWITH } {}; DUP 3; MEM; IF { DROP; PUSH bool False } {} } {}; IF { DUP 5; GET 3; GET 4; DUP 3; COMPARE; LT; IF {} { PUSH string "CMPT_TOO_MANY_ASSETS"; FAILWITH }; SWAP; PUSH nat 1; ADD; SWAP } {}; DUP 5; GET 3; GET 3; DUP 2; MEM; IF { DUP 5; GET 3; GET 3; DUP 2; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 5; CAR; GET 3; CAR; SENDER; MEM; IF { DIG 4; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; DUP; SENDER; DUP; DUG 2; GET; IF_NONE { PUSH int 94; FAILWITH } {}; PUSH bool True; DIG 8; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; DUG 3 } { DIG 4; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; EMPTY_SET address; PUSH bool True; DIG 7; UPDATE; SOME; SENDER; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; DUG 3 } }; DROP 3; DUP; CAR; CAR; CAR; CAR; SENDER; MEM; IF { UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; SENDER; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } {}; NIL operation; PAIR }; Elt 4 { UNPAIR; IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { DROP } } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH }; DUP; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; UNPAIR; UNPAIR; UNPAIR; CAR; EMPTY_SET nat; SWAP; PAIR; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 5 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; CDR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; GET 3; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; GET 3; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; PUSH (pair nat nat) (Pair 0 0); DUP; DUP 4; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 501; FAILWITH } {}; ITER { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 509; FAILWITH } {}; ITER { DUP 5; CAR; GET 3; CAR; DUP 5; CAR; CAR; MEM; IF { DUP 5; CAR; GET 3; CAR; DUP 5; CAR; CAR; GET; IF_NONE { PUSH int 512; FAILWITH } {}; DUP 2; MEM; IF { DROP } { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } { DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; CAR; CAR; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } }; DROP } { DROP }; UNPAIR; SWAP; SUB; PUSH int 0; COMPARE; GT; IF {} { PUSH string "CMPT_INSUFFICIENT_SHORTFALL"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; CAR; CDR; DUP 3; CAR; CAR; VIEW "borrowBalanceStoredView" (pair nat nat); IF_NONE { PUSH string "INVALID ACCOUNT BORROW BALANCE VIEW"; FAILWITH } {}; CAR; DUP 4; CAR; CAR; GET 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; SWAP; DUP; GET 6; DIG 2; COMPARE; GE; IF {} { PUSH string "CMPT_TOO_MUCH_REPAY"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 5; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 5; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 6 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 158; FAILWITH } {}; CAR; GET 4; IF { PUSH string "CMPT_MINT_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 7 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; GET 3; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 185; FAILWITH } {}; DUP 2; CAR; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; GET 3; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 802; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; GET; IF_NONE { PUSH int 804; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; GET 3; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 8 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; SENDER; MEM; IF { DUP 2; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; GET 3; CAR; CAR; DUP 2; MEM; IF { DUP 2; GET 3; CAR; CAR; DUP 2; GET; IF_NONE { PUSH int 249; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; DUP; DUG 2; GET; IF_NONE { PUSH int 250; FAILWITH } {}; PUSH bool False; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; SWAP; PAIR } { DROP }; NIL operation; PAIR }; Elt 9 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 5; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; GET 5; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; GET 3; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; GET 3; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 10 { UNPAIR; IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } } { PUSH int -1; FAILWITH }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; PUSH (pair nat nat) (Pair 0 0); DUP; DUP 4; CAR; GET 3; CAR; DUP 4; MEM; IF { DUP 4; CAR; GET 3; CAR; DUP 4; GET; IF_NONE { PUSH int 501; FAILWITH } {}; ITER { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } {}; DUP 4; GET 3; CAR; CAR; DUP 4; MEM; IF { DUP 4; GET 3; CAR; CAR; DUP 4; GET; IF_NONE { PUSH int 509; FAILWITH } {}; ITER { DUP 5; CAR; GET 3; CAR; DUP 5; MEM; IF { DUP 5; CAR; GET 3; CAR; DUP 5; GET; IF_NONE { PUSH int 512; FAILWITH } {}; DUP 2; MEM; IF { DROP } { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } { DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH string "CMPT_OUTDATED_ACCOUNT_SNAPSHOT"; FAILWITH } { DROP }; DUP; DUP 5; VIEW "getAccountSnapshotView" (option (pair (pair (address %account) (nat %borrowBalance)) (pair (nat %cTokenBalance) (nat %exchangeRateMantissa)))); IF_NONE { PUSH string "INVALID ACCOUNT SNAPSHOT VIEW"; FAILWITH } {}; IF_NONE { PUSH int 531; FAILWITH } {}; DUP; GET 4; DUP 7; GET 3; GET 3; DUP 4; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 8; GET 3; GET 3; DUP 5; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 7; CAR; GET 3; CDR; SWAP; DUP 8; CAR; GET 3; CDR; DUP 9; GET 3; GET 3; DUP 6; GET; IF_NONE { PUSH int 535; FAILWITH } {}; CAR; CAR; CDR; DUP 10; GET 3; GET 3; DUP 7; GET; IF_NONE { PUSH int 535; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; MUL; EDIV; IF_NONE { PUSH int 207; FAILWITH } { CAR }; PUSH (pair nat nat) (Pair 0 0); DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; MEM; IF { DUP 8; CAR; GET 3; CAR; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 540; FAILWITH } {}; DUP 5; MEM } { PUSH bool False }; IF { DUP; CDR; DUP 9; CAR; GET 3; CDR; DUP 5; GET 3; DIG 4; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 2 } { SWAP; DROP }; DUP; CAR; DUP 8; CAR; GET 3; CDR; DIG 3; CAR; CDR; DUP 9; GET 3; GET 3; DIG 5; GET; IF_NONE { PUSH int 544; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; ADD; UPDATE 1; DIG 2; DUP; CDR; DUP 3; CDR; ADD; UPDATE 2; DUP; CAR; DIG 2; CAR; ADD; UPDATE 1; SWAP } } } {}; DUP 2; DUP 5; CAR; CAR; CAR; CDR; PUSH nat 4; MEM; IF {} { PUSH string "OP_NOT_ACTIVE"; FAILWITH }; DIG 4; UNPAIR; UNPAIR; UNPAIR; UNPAIR; SWAP; PUSH bool False; PUSH nat 4; UPDATE; SWAP; PUSH bool True; LEVEL; DIG 8; DROP; DIG 8; DROP; DIG 7; UNPAIR; SWAP; SUB; PAIR 3; SOME; DIG 6; UPDATE; PAIR; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 11 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; CAR; CDR; PUSH nat 1; MEM; IF {} { PUSH string "OP_NOT_ACTIVE"; FAILWITH }; SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; SWAP; PUSH bool False; PUSH nat 1; UPDATE; SWAP; PAIR; PAIR; PAIR; PAIR; SWAP; PUSH nat 0; DUP 2; CAR; CDR; COMPARE; EQ; IF {} { PUSH string "CMPT_BORROW_IN_MARKET"; FAILWITH }; DUP 2; GET 3; GET 3; SENDER; MEM; IF { DUP 2; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 185; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 802; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 804; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 3; DUP 4; GET 3; GET 3; SENDER; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR; SWAP } {}; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 138; FAILWITH } {}; SENDER; MEM } { PUSH bool False }; IF { SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; UNPAIR; DUP; DUP 7; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 140; FAILWITH } {}; PUSH bool False; SENDER; UPDATE; SOME; SWAP; UPDATE; PAIR; PAIR; SWAP; PAIR; PAIR; SWAP } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CAR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; CAR; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }; Elt 12 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 632; FAILWITH } {}; UNPAIR; UNPAIR; CDR; DIG 9; CDR; PAIR; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 13 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; UNPAIR; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; PAIR; PAIR; NIL operation; PAIR }; Elt 14 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 714; FAILWITH } {}; UNPAIR; UNPAIR; CAR; DIG 9; CDR; SWAP; PAIR; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 15 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; SWAP; PAIR; PAIR; NIL operation; PAIR }; Elt 16 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } { PUSH int -1; FAILWITH } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; CAR; DIG 4; SWAP; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 17 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT {} { PUSH int -1; FAILWITH } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; DUP; DUP 7; CAR; DUP; DUG 2; GET; IF_NONE { PUSH int 614; FAILWITH } {}; UNPAIR; UNPAIR; SWAP; CAR; DIG 9; CDR; SWAP; PAIR; SWAP; PAIR; PAIR; SOME; SWAP; UPDATE; PAIR; SWAP; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 18 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SOME; UPDATE 7; NIL operation; PAIR }; Elt 19 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } { PUSH int -1; FAILWITH } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; SWAP; UNPAIR; SWAP; UNPAIR; SWAP; CDR; DIG 3; UNPAIR; SWAP; PAIR; PAIR; SWAP; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 20 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; UPDATE 8; NIL operation; PAIR }; Elt 21 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT {} { PUSH int -1; FAILWITH } } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; CAR; CAR; GET 3; SENDER; COMPARE; EQ; IF {} { PUSH string "CMPT_NOT_ADMIN"; FAILWITH }; DUP 2; GET 3; GET 3; DUP 2; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; GET; IF_NONE { PUSH int 790; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF { PUSH string "CMPT_MARKET_ALREADY_LISTED"; FAILWITH } {}; SWAP; UNPAIR; SWAP; UNPAIR; UNPAIR; SWAP; UNPAIR; PUSH (pair timestamp nat) (Pair "1970-01-01T00:00:00Z" 0); DUP 7; GET 4; PAIR; PUSH nat 0; DUP 8; GET 3; PAIR; PAIR; PUSH (pair (pair bool nat) (pair bool bool)) (Pair (Pair True 500000000000000000) (Pair True True)); PAIR; SOME; DUP 7; CAR; UPDATE; PAIR; SWAP; UNPAIR; SWAP; DUP 6; CAR; SOME; PUSH string "-USD"; DIG 7; GET 3; CONCAT; UPDATE; SWAP; PAIR; PAIR; PAIR; SWAP; PAIR; NIL operation; PAIR }; Elt 22 { UNPAIR; IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } { IF_LEFT { PUSH int -1; FAILWITH } {} } } } }; PUSH mutez 1; PUSH nat 0; MUL; AMOUNT; COMPARE; EQ; IF {} { PUSH string "TEZ_TRANSFERED"; FAILWITH }; DUP 2; GET 8; IF { PUSH string "CMPT_TRANSFER_PAUSED"; FAILWITH } {}; DUP 2; GET 3; GET 3; DUP 2; CAR; CAR; MEM; IF { DUP 2; GET 3; GET 3; DUP 2; CAR; CAR; GET; IF_NONE { PUSH int 786; FAILWITH } {}; CAR; GET 3 } { PUSH bool False }; IF {} { PUSH string "CMPT_MARKET_NOT_LISTED"; FAILWITH }; DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CDR; MEM; IF { DUP 2; CAR; GET 3; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 185; FAILWITH } {}; DUP 2; CAR; CAR; MEM } { PUSH bool False }; IF { DUP 2; GET 3; CAR; CAR; DUP 2; CAR; CDR; MEM; IF { PUSH nat 0; DUP 3; GET 3; CAR; CAR; DUP 3; CAR; CDR; GET; IF_NONE { PUSH int 187; FAILWITH } {}; SIZE; COMPARE; NEQ } { PUSH bool False }; IF { DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; MEM; IF {} { PUSH string "CMPT_LIQUIDITY_ABSENT"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 802; FAILWITH } {}; GET 4; IF {} { PUSH string "CMPT_LIQUIDITY_INVALID"; FAILWITH }; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; GET; IF_NONE { PUSH int 804; FAILWITH } {}; GET 3; LEVEL; SUB; ISNAT; IF_NONE { PUSH string "SUBTRACTION_UNDERFLOW"; FAILWITH } {}; PUSH nat 0; DUP 2; COMPARE; EQ; IF {} { PUSH string "CMPT_LIQUIDITY_OLD"; FAILWITH }; DUP 3; GET 3; GET 3; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 316; FAILWITH } {}; GET 8; LEVEL; DIG 2; DROP; COMPARE; EQ; IF {} { PUSH string "CMPT_UPDATE_PRICE"; FAILWITH }; PUSH nat 0; DUP 3; GET 3; GET 3; DUP 3; CAR; CAR; GET; IF_NONE { PUSH int 317; FAILWITH } {}; GET 3; CDR; COMPARE; GT; IF {} { PUSH string "CMPT_INVALID_PRICE"; FAILWITH }; DUP 2; CAR; GET 3; CDR; DUP 2; GET 4; DUP 4; GET 3; GET 3; DUP 4; CAR; CAR; GET; IF_NONE { PUSH int 196; FAILWITH } {}; GET 3; CDR; MUL; EDIV; IF_NONE { PUSH int 61; FAILWITH } { CAR }; INT; DUP 3; CAR; CAR; CAR; CAR; DUP 3; CAR; CDR; GET; IF_NONE { PUSH int 195; FAILWITH } {}; CAR; SUB; PUSH int 0; SWAP; COMPARE; GE; IF {} { PUSH string "CMPT_REDEEMER_SHORTFALL"; FAILWITH } } {} } {}; DUP 2; CAR; CAR; CAR; CAR; DUP 2; CAR; CDR; MEM; IF { SWAP; UNPAIR; UNPAIR; UNPAIR; UNPAIR; DUP; DIG 6; CAR; CDR; DUP; DUG 2; GET; IF_NONE { PUSH int 809; FAILWITH } {}; PUSH bool False; UPDATE 4; SOME; SWAP; UPDATE; PAIR; PAIR; PAIR; PAIR } { DROP }; NIL operation; PAIR }}) \ No newline at end of file diff --git a/compiled_contracts/scenario.json b/compiled_contracts/scenario.json index f31ab7a0..fc50299d 100644 --- a/compiled_contracts/scenario.json +++ b/compiled_contracts/scenario.json @@ -6,7 +6,7 @@ { "action": "newContract", "accept_unknown_types": false, - "export": "(template_id (None static_id 0) \nstorage ((Some (\"contracts/utils/Exponential.py\" 21)) record (account_liquidity ((Some (\"contracts/Comptroller.py\" 61)) type_annotation ((Some (\"contracts/Comptroller.py\" 61)) big_map ) (big_map \"address\" (record ((liquidity \"int\") (updateLevel \"nat\") (valid \"bool\")) Variable (Some (\"contracts/Comptroller.py\" 34)))))) (activeOperations ((Some (\"contracts/Comptroller.py\" 65)) type_annotation ((Some (\"contracts/Comptroller.py\" 65)) set ) (set \"nat\"))) (administrator ((Some (\"./deploy/compile_targets/CompileComptroller.py\" 10)) literal (address \"KT1NF6DKX5giazRTzPtEuNX1npkVcaoQkvK2\"))) (closeFactorMantissa ((Some (\"./deploy/compile_targets/CompileComptroller.py\" 12)) literal (nat 500000000000000000))) (collaterals ((Some (\"contracts/Comptroller.py\" 55)) type_annotation ((Some (\"contracts/Comptroller.py\" 55)) big_map ) (big_map \"address\" (set \"address\")))) (expScale ((Some (\"contracts/utils/Exponential.py\" 21)) literal (nat 1000000000000000000))) (halfExpScale ((Some (\"contracts/utils/Exponential.py\" 21)) literal (nat 500000000000000000))) (liquidationIncentiveMantissa ((Some (\"./deploy/compile_targets/CompileComptroller.py\" 13)) literal (nat 1050000000000000000))) (loans ((Some (\"contracts/Comptroller.py\" 58)) type_annotation ((Some (\"contracts/Comptroller.py\" 58)) big_map ) (big_map \"address\" (set \"address\")))) (marketNameToAddress ((Some (\"contracts/Comptroller.py\" 52)) type_annotation ((Some (\"contracts/Comptroller.py\" 52)) map ) (map \"string\" \"address\"))) (markets ((Some (\"contracts/Comptroller.py\" 50)) type_annotation ((Some (\"contracts/Comptroller.py\" 50)) big_map ) (big_map \"address\" (record ((borrowPaused \"bool\") (collateralFactor (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) (isListed \"bool\") (mintPaused \"bool\") (name \"string\") (price (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) (priceExp \"nat\") (priceTimestamp \"timestamp\") (updateLevel \"nat\")) Variable (Some (\"contracts/Comptroller.py\" 20)))))) (maxAssetsPerUser ((Some (\"contracts/utils/Exponential.py\" 21)) literal (intOrNat 15))) (maxPriceTimeDifference ((Some (\"contracts/Comptroller.py\" 68)) literal (int 86400))) (oracleAddress ((Some (\"./deploy/compile_targets/CompileComptroller.py\" 11)) literal (address \"KT1LDtNKDnpziwSrmSfx3xCbs7nBMg7VFp4m\"))) (pendingAdministrator (None variant \"None\" (None literal (unit)))) (transferPaused ((Some (\"contracts/Comptroller.py\" 53)) literal (bool True))))\nstorage_type (())\nentrypoints ((acceptGovernance True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 588)) (((Some (\"contracts/Comptroller.py\" 589)) verify ((Some (\"contracts/Comptroller.py\" 589)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 589)) MUL ((Some (\"contracts/Comptroller.py\" 589)) type_annotation ((Some (\"contracts/Comptroller.py\" 589)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 589)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 589)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 591)) set_type (None parameter) \"unit\") ((Some (\"contracts/Comptroller.py\" 592)) verify ((Some (\"contracts/Comptroller.py\" 592)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 592)) open_variant ((Some (\"contracts/Comptroller.py\" 592)) attr ((Some (\"contracts/Comptroller.py\" 592)) storage) \"pendingAdministrator\") \"Some\" ((Some (\"contracts/Comptroller.py\" 592)) literal (string \"CMPT_NOT_SET_PENDING_ADMIN\")))) ((Some (\"contracts/Comptroller.py\" 592)) literal (string \"CMPT_NOT_PENDING_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 594)) set ((Some (\"contracts/Comptroller.py\" 594)) attr ((Some (\"contracts/Comptroller.py\" 594)) storage) \"administrator\") ((Some (\"contracts/Comptroller.py\" 594)) open_variant ((Some (\"contracts/Comptroller.py\" 594)) attr ((Some (\"contracts/Comptroller.py\" 594)) storage) \"pendingAdministrator\") \"Some\" \"None\")) ((Some (\"contracts/Comptroller.py\" 595)) set ((Some (\"contracts/Comptroller.py\" 595)) attr ((Some (\"contracts/Comptroller.py\" 595)) storage) \"pendingAdministrator\") (None variant \"None\" (None literal (unit)))))) (borrowAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 212)) (((Some (\"contracts/Comptroller.py\" 213)) verify ((Some (\"contracts/Comptroller.py\" 213)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 213)) MUL ((Some (\"contracts/Comptroller.py\" 213)) type_annotation ((Some (\"contracts/Comptroller.py\" 213)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 213)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 213)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 215)) set_type (None parameter) (record ((borrowAmount \"nat\") (borrower \"address\") (cToken \"address\")) (Value ((\"cToken\") ((\"borrower\") (\"borrowAmount\")))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 9)))) ((Some (\"contracts/Comptroller.py\" 216)) verify ((Some (\"contracts/Comptroller.py\" 217)) not ((Some (\"contracts/Comptroller.py\" 217)) attr ((Some (\"contracts/Comptroller.py\" 217)) get_item ((Some (\"contracts/Comptroller.py\" 217)) attr ((Some (\"contracts/Comptroller.py\" 217)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"borrowPaused\")) ((Some (\"contracts/Comptroller.py\" 216)) literal (string \"CMPT_BORROW_PAUSED\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 824)) define_local \"is_new\" ((Some (\"contracts/Comptroller.py\" 824)) literal (bool True)) True) ((Some (\"contracts/Comptroller.py\" 826)) if_block ((Some (\"contracts/Comptroller.py\" 826)) contains ((Some (\"contracts/Comptroller.py\" 826)) attr ((Some (\"contracts/Comptroller.py\" 826)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 827)) if_block ((Some (\"contracts/Comptroller.py\" 827)) contains ((Some (\"contracts/Comptroller.py\" 827)) get_item ((Some (\"contracts/Comptroller.py\" 827)) attr ((Some (\"contracts/Comptroller.py\" 827)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) (((Some (\"contracts/Comptroller.py\" 828)) set ((Some (\"contracts/Comptroller.py\" 828)) var \"is_new\") ((Some (\"contracts/Comptroller.py\" 828)) literal (bool False))))))) ((Some (\"contracts/Comptroller.py\" 830)) if_block ((Some (\"contracts/Comptroller.py\" 830)) and ((Some (\"contracts/Comptroller.py\" 830)) contains ((Some (\"contracts/Comptroller.py\" 830)) attr ((Some (\"contracts/Comptroller.py\" 830)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 830)) var \"is_new\")) (((Some (\"contracts/Comptroller.py\" 831)) if_block ((Some (\"contracts/Comptroller.py\" 831)) contains ((Some (\"contracts/Comptroller.py\" 831)) get_item ((Some (\"contracts/Comptroller.py\" 831)) attr ((Some (\"contracts/Comptroller.py\" 831)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) (((Some (\"contracts/Comptroller.py\" 832)) set ((Some (\"contracts/Comptroller.py\" 832)) var \"is_new\") ((Some (\"contracts/Comptroller.py\" 832)) literal (bool False))))))) ((Some (\"contracts/Comptroller.py\" 219)) if_block ((Some (\"contracts/Comptroller.py\" 834)) var \"is_new\") (((Some (\"contracts/Comptroller.py\" 811)) define_local \"unique_assets\" ((Some (\"contracts/Comptroller.py\" 811)) type_annotation ((Some (\"contracts/Comptroller.py\" 811)) set ) (set \"address\")) True) ((Some (\"contracts/Comptroller.py\" 813)) if_block ((Some (\"contracts/Comptroller.py\" 813)) contains ((Some (\"contracts/Comptroller.py\" 813)) attr ((Some (\"contracts/Comptroller.py\" 813)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 814)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 814)) elements ((Some (\"contracts/Comptroller.py\" 814)) get_item ((Some (\"contracts/Comptroller.py\" 814)) attr ((Some (\"contracts/Comptroller.py\" 814)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 815)) update_set ((Some (\"contracts/Comptroller.py\" 815)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 814)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 817)) if_block ((Some (\"contracts/Comptroller.py\" 817)) contains ((Some (\"contracts/Comptroller.py\" 817)) attr ((Some (\"contracts/Comptroller.py\" 817)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 818)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 818)) elements ((Some (\"contracts/Comptroller.py\" 818)) get_item ((Some (\"contracts/Comptroller.py\" 818)) attr ((Some (\"contracts/Comptroller.py\" 818)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 819)) update_set ((Some (\"contracts/Comptroller.py\" 819)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 818)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 221)) verify ((Some (\"contracts/Comptroller.py\" 221)) lt ((Some (\"contracts/Comptroller.py\" 821)) size ((Some (\"contracts/Comptroller.py\" 821)) var \"unique_assets\")) ((Some (\"contracts/Comptroller.py\" 221)) attr ((Some (\"contracts/Comptroller.py\" 221)) storage) \"maxAssetsPerUser\")) ((Some (\"contracts/Comptroller.py\" 221)) literal (string \"CMPT_TOO_MANY_ASSETS\"))))) ((Some (\"contracts/Comptroller.py\" 223)) if_block ((Some (\"contracts/Comptroller.py\" 223)) not ((Some (\"contracts/Comptroller.py\" 223)) contains ((Some (\"contracts/Comptroller.py\" 223)) attr ((Some (\"contracts/Comptroller.py\" 223)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 225)) verify ((Some (\"contracts/Comptroller.py\" 225)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 225)) literal (string \"CMPT_INVALID_BORROW_SENDER\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") (None sender)) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") (None sender)) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 238)) if_block ((Some (\"contracts/Comptroller.py\" 238)) contains ((Some (\"contracts/Comptroller.py\" 238)) attr ((Some (\"contracts/Comptroller.py\" 238)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 239)) update_set ((Some (\"contracts/Comptroller.py\" 239)) get_item ((Some (\"contracts/Comptroller.py\" 239)) attr ((Some (\"contracts/Comptroller.py\" 239)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (None sender) True))) (else_block (((Some (\"contracts/Comptroller.py\" 241)) set ((Some (\"contracts/Comptroller.py\" 241)) get_item ((Some (\"contracts/Comptroller.py\" 241)) attr ((Some (\"contracts/Comptroller.py\" 241)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 241)) set (None sender))))))) ((Some (\"contracts/Comptroller.py\" 798)) verify ((Some (\"contracts/Comptroller.py\" 798)) contains ((Some (\"contracts/Comptroller.py\" 798)) attr ((Some (\"contracts/Comptroller.py\" 798)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 798)) literal (string \"CMPT_LIQUIDITY_ABSENT\"))) ((Some (\"contracts/Comptroller.py\" 800)) verify ((Some (\"contracts/Comptroller.py\" 801)) attr ((Some (\"contracts/Comptroller.py\" 801)) get_item ((Some (\"contracts/Comptroller.py\" 801)) attr ((Some (\"contracts/Comptroller.py\" 801)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 800)) literal (string \"CMPT_LIQUIDITY_INVALID\"))) ((Some (\"contracts/utils/Exponential.py\" 193)) set_type (None level) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 194)) set_type ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) get_item ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"updateLevel\") \"nat\") ((Some (\"contracts/Comptroller.py\" 802)) define_local \"compute_Comptroller_802\" ((Some (\"contracts/utils/Exponential.py\" 195)) open_variant ((Some (\"contracts/utils/Exponential.py\" 195)) is_nat ((Some (\"contracts/utils/Exponential.py\" 195)) sub (None level) ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) get_item ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"updateLevel\"))) \"Some\" ((Some (\"contracts/utils/Exponential.py\" 195)) literal (string \"SUBTRACTION_UNDERFLOW\"))) True) ((Some (\"contracts/Comptroller.py\" 804)) verify ((Some (\"contracts/Comptroller.py\" 804)) eq ((Some (\"contracts/Comptroller.py\" 802)) var \"compute_Comptroller_802\") ((Some (\"contracts/Comptroller.py\" 804)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 804)) literal (string \"CMPT_LIQUIDITY_OLD\"))) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 229)) attr (None parameter) \"borrowAmount\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 229)) attr (None parameter) \"borrowAmount\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 229)) attr (None parameter) \"borrowAmount\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 195)) define_local \"compute_Comptroller_195\" ((Some (\"contracts/Comptroller.py\" 195)) sub ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) get_item ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"liquidity\") ((Some (\"contracts/Comptroller.py\" 195)) to_int ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 229)) attr (None parameter) \"borrowAmount\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 197)) verify ((Some (\"contracts/Comptroller.py\" 197)) ge ((Some (\"contracts/Comptroller.py\" 195)) var \"compute_Comptroller_195\") ((Some (\"contracts/Comptroller.py\" 197)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 197)) literal (string \"CMPT_REDEEMER_SHORTFALL\"))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))))) (disableMarket True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 770)) (((Some (\"contracts/Comptroller.py\" 771)) verify ((Some (\"contracts/Comptroller.py\" 771)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 771)) MUL ((Some (\"contracts/Comptroller.py\" 771)) type_annotation ((Some (\"contracts/Comptroller.py\" 771)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 771)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 771)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 773)) set_type (None parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") (None parameter)) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") (None parameter)) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 776)) set ((Some (\"contracts/Comptroller.py\" 776)) attr ((Some (\"contracts/Comptroller.py\" 776)) get_item ((Some (\"contracts/Comptroller.py\" 776)) attr ((Some (\"contracts/Comptroller.py\" 776)) storage) \"markets\") (None parameter)) \"isListed\") ((Some (\"contracts/Comptroller.py\" 776)) literal (bool False))))) (enterMarkets True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 79)) (((Some (\"contracts/Comptroller.py\" 80)) verify ((Some (\"contracts/Comptroller.py\" 80)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 80)) MUL ((Some (\"contracts/Comptroller.py\" 80)) type_annotation ((Some (\"contracts/Comptroller.py\" 80)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 80)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 80)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 82)) set_type (None parameter) (list \"address\")) ((Some (\"contracts/Comptroller.py\" 811)) define_local \"unique_assets\" ((Some (\"contracts/Comptroller.py\" 811)) type_annotation ((Some (\"contracts/Comptroller.py\" 811)) set ) (set \"address\")) True) ((Some (\"contracts/Comptroller.py\" 813)) if_block ((Some (\"contracts/Comptroller.py\" 813)) contains ((Some (\"contracts/Comptroller.py\" 813)) attr ((Some (\"contracts/Comptroller.py\" 813)) storage) \"collaterals\") (None sender)) (((Some (\"contracts/Comptroller.py\" 814)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 814)) elements ((Some (\"contracts/Comptroller.py\" 814)) get_item ((Some (\"contracts/Comptroller.py\" 814)) attr ((Some (\"contracts/Comptroller.py\" 814)) storage) \"collaterals\") (None sender))) (((Some (\"contracts/Comptroller.py\" 815)) update_set ((Some (\"contracts/Comptroller.py\" 815)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 814)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 817)) if_block ((Some (\"contracts/Comptroller.py\" 817)) contains ((Some (\"contracts/Comptroller.py\" 817)) attr ((Some (\"contracts/Comptroller.py\" 817)) storage) \"loans\") (None sender)) (((Some (\"contracts/Comptroller.py\" 818)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 818)) elements ((Some (\"contracts/Comptroller.py\" 818)) get_item ((Some (\"contracts/Comptroller.py\" 818)) attr ((Some (\"contracts/Comptroller.py\" 818)) storage) \"loans\") (None sender))) (((Some (\"contracts/Comptroller.py\" 819)) update_set ((Some (\"contracts/Comptroller.py\" 819)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 818)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 83)) define_local \"currentAssetCount\" ((Some (\"contracts/Comptroller.py\" 821)) size ((Some (\"contracts/Comptroller.py\" 821)) var \"unique_assets\")) True) ((Some (\"contracts/Comptroller.py\" 84)) for_group \"token\" (None parameter) (((Some (\"contracts/Comptroller.py\" 824)) define_local \"is_new\" ((Some (\"contracts/Comptroller.py\" 824)) literal (bool True)) True) ((Some (\"contracts/Comptroller.py\" 826)) if_block ((Some (\"contracts/Comptroller.py\" 826)) contains ((Some (\"contracts/Comptroller.py\" 826)) attr ((Some (\"contracts/Comptroller.py\" 826)) storage) \"collaterals\") (None sender)) (((Some (\"contracts/Comptroller.py\" 827)) if_block ((Some (\"contracts/Comptroller.py\" 827)) contains ((Some (\"contracts/Comptroller.py\" 827)) get_item ((Some (\"contracts/Comptroller.py\" 827)) attr ((Some (\"contracts/Comptroller.py\" 827)) storage) \"collaterals\") (None sender)) ((Some (\"contracts/Comptroller.py\" 84)) var \"token\")) (((Some (\"contracts/Comptroller.py\" 828)) set ((Some (\"contracts/Comptroller.py\" 828)) var \"is_new\") ((Some (\"contracts/Comptroller.py\" 828)) literal (bool False))))))) ((Some (\"contracts/Comptroller.py\" 830)) if_block ((Some (\"contracts/Comptroller.py\" 830)) and ((Some (\"contracts/Comptroller.py\" 830)) contains ((Some (\"contracts/Comptroller.py\" 830)) attr ((Some (\"contracts/Comptroller.py\" 830)) storage) \"loans\") (None sender)) ((Some (\"contracts/Comptroller.py\" 830)) var \"is_new\")) (((Some (\"contracts/Comptroller.py\" 831)) if_block ((Some (\"contracts/Comptroller.py\" 831)) contains ((Some (\"contracts/Comptroller.py\" 831)) get_item ((Some (\"contracts/Comptroller.py\" 831)) attr ((Some (\"contracts/Comptroller.py\" 831)) storage) \"loans\") (None sender)) ((Some (\"contracts/Comptroller.py\" 84)) var \"token\")) (((Some (\"contracts/Comptroller.py\" 832)) set ((Some (\"contracts/Comptroller.py\" 832)) var \"is_new\") ((Some (\"contracts/Comptroller.py\" 832)) literal (bool False))))))) ((Some (\"contracts/Comptroller.py\" 85)) if_block ((Some (\"contracts/Comptroller.py\" 834)) var \"is_new\") (((Some (\"contracts/Comptroller.py\" 86)) verify ((Some (\"contracts/Comptroller.py\" 86)) lt ((Some (\"contracts/Comptroller.py\" 86)) var \"currentAssetCount\") ((Some (\"contracts/Comptroller.py\" 86)) attr ((Some (\"contracts/Comptroller.py\" 86)) storage) \"maxAssetsPerUser\")) ((Some (\"contracts/Comptroller.py\" 86)) literal (string \"CMPT_TOO_MANY_ASSETS\"))) ((Some (\"contracts/Comptroller.py\" 87)) set ((Some (\"contracts/Comptroller.py\" 87)) var \"currentAssetCount\") ((Some (\"contracts/Comptroller.py\" 87)) add ((Some (\"contracts/Comptroller.py\" 87)) var \"currentAssetCount\") ((Some (\"contracts/Comptroller.py\" 87)) literal (intOrNat 1)))))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 84)) var \"token\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 84)) var \"token\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 93)) if_block ((Some (\"contracts/Comptroller.py\" 93)) contains ((Some (\"contracts/Comptroller.py\" 93)) attr ((Some (\"contracts/Comptroller.py\" 93)) storage) \"collaterals\") (None sender)) (((Some (\"contracts/Comptroller.py\" 94)) update_set ((Some (\"contracts/Comptroller.py\" 94)) get_item ((Some (\"contracts/Comptroller.py\" 94)) attr ((Some (\"contracts/Comptroller.py\" 94)) storage) \"collaterals\") (None sender)) ((Some (\"contracts/Comptroller.py\" 84)) var \"token\") True))) (else_block (((Some (\"contracts/Comptroller.py\" 96)) set ((Some (\"contracts/Comptroller.py\" 96)) get_item ((Some (\"contracts/Comptroller.py\" 96)) attr ((Some (\"contracts/Comptroller.py\" 96)) storage) \"collaterals\") (None sender)) ((Some (\"contracts/Comptroller.py\" 96)) set ((Some (\"contracts/Comptroller.py\" 84)) var \"token\"))))))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") (None sender)) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") (None sender)) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))))) (exitMarket True None None None True None (Some (\"contracts/Comptroller.py\" 111)) (((Some (\"contracts/Comptroller.py\" 112)) verify ((Some (\"contracts/Comptroller.py\" 112)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 112)) MUL ((Some (\"contracts/Comptroller.py\" 112)) type_annotation ((Some (\"contracts/Comptroller.py\" 112)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 112)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 112)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 114)) set_type (None parameter) \"address\") ((Some (\"contracts/utils/OperationProtector.py\" 46)) update_set ((Some (\"contracts/utils/OperationProtector.py\" 46)) attr ((Some (\"contracts/utils/OperationProtector.py\" 46)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 28)) literal (nat 1)) True) ((Some (\"contracts/Comptroller.py\" 119)) set ((Some (\"contracts/Comptroller.py\" 119)) operations) ((Some (\"contracts/Comptroller.py\" 119)) cons ((Some (\"contracts/Comptroller.py\" 119)) transfer ((Some (\"contracts/Comptroller.py\" 119)) tuple (None sender) ((Some (\"contracts/Comptroller.py\" 119)) self \"setAccountSnapAndExitMarket\")) ((Some (\"contracts/Comptroller.py\" 120)) literal (mutez 0)) ((Some (\"contracts/Comptroller.py\" 118)) open_variant ((Some (\"contracts/Comptroller.py\" 117)) contract \"getAccountSnapshot\" (tuple \"address\" (contract (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) (None parameter)) \"Some\" \"None\")) ((Some (\"contracts/Comptroller.py\" 119)) operations))))) (hardResetOp True (Some True) None None True None (Some (\"contracts/utils/OperationProtector.py\" 56)) (((Some (\"contracts/utils/OperationProtector.py\" 57)) set_type (None parameter) \"unit\") ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/utils/OperationProtector.py\" 59)) set ((Some (\"contracts/utils/OperationProtector.py\" 59)) attr ((Some (\"contracts/utils/OperationProtector.py\" 59)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 59)) set )))) (liquidateBorrowAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 438)) (((Some (\"contracts/Comptroller.py\" 439)) verify ((Some (\"contracts/Comptroller.py\" 439)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 439)) MUL ((Some (\"contracts/Comptroller.py\" 439)) type_annotation ((Some (\"contracts/Comptroller.py\" 439)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 439)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 439)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 441)) set_type (None parameter) (record ((borrower \"address\") (cTokenBorrowed \"address\") (cTokenCollateral \"address\") (liquidator \"address\") (repayAmount \"nat\")) Variable (Some (\"contracts/interfaces/ComptrollerInterface.py\" 28)))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 443)) attr (None parameter) \"cTokenBorrowed\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 443)) attr (None parameter) \"cTokenBorrowed\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 444)) attr (None parameter) \"cTokenCollateral\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 444)) attr (None parameter) \"cTokenCollateral\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 495)) define_local \"calculation\" ((Some (\"contracts/Comptroller.py\" 495)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 496)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 496)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 497)) define_local \"temp\" ((Some (\"contracts/Comptroller.py\" 497)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 498)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 497)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 499)) if_block ((Some (\"contracts/Comptroller.py\" 499)) contains ((Some (\"contracts/Comptroller.py\" 499)) attr ((Some (\"contracts/Comptroller.py\" 499)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 500)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 500)) elements ((Some (\"contracts/Comptroller.py\" 500)) get_item ((Some (\"contracts/Comptroller.py\" 500)) attr ((Some (\"contracts/Comptroller.py\" 500)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 529)) verify ((Some (\"contracts/Comptroller.py\" 529)) is_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 530)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 530)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 531)) define_local \"compute_Comptroller_531\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 535)) define_local \"compute_Comptroller_535\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 536)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 536)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 536)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 539)) if_block ((Some (\"contracts/Comptroller.py\" 539)) and ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) get_item ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 540)) set ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) add ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 542)) set ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) add ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 505)) set ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 505)) add ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 506)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 506)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\"))))))) ((Some (\"contracts/Comptroller.py\" 507)) if_block ((Some (\"contracts/Comptroller.py\" 507)) contains ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 507)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 508)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 508)) elements ((Some (\"contracts/Comptroller.py\" 508)) get_item ((Some (\"contracts/Comptroller.py\" 508)) attr ((Some (\"contracts/Comptroller.py\" 508)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 510)) if_block ((Some (\"contracts/Comptroller.py\" 510)) contains ((Some (\"contracts/Comptroller.py\" 510)) attr ((Some (\"contracts/Comptroller.py\" 510)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 511)) if_block ((Some (\"contracts/Comptroller.py\" 511)) not ((Some (\"contracts/Comptroller.py\" 511)) contains ((Some (\"contracts/Comptroller.py\" 511)) get_item ((Some (\"contracts/Comptroller.py\" 511)) attr ((Some (\"contracts/Comptroller.py\" 511)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\"))) (((Some (\"contracts/Comptroller.py\" 529)) verify ((Some (\"contracts/Comptroller.py\" 529)) is_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 530)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 530)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 531)) define_local \"compute_Comptroller_531\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 535)) define_local \"compute_Comptroller_535\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 536)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 536)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 536)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 539)) if_block ((Some (\"contracts/Comptroller.py\" 539)) and ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) get_item ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 540)) set ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) add ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 542)) set ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) add ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 516)) set ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 516)) add ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 517)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 517)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\"))))))) (else_block (((Some (\"contracts/Comptroller.py\" 529)) verify ((Some (\"contracts/Comptroller.py\" 529)) is_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 530)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 530)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 531)) define_local \"compute_Comptroller_531\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 535)) define_local \"compute_Comptroller_535\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 536)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 536)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 536)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 539)) if_block ((Some (\"contracts/Comptroller.py\" 539)) and ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) get_item ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 540)) set ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) add ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 542)) set ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) add ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 521)) set ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 521)) add ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 522)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 522)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\"))))))))) ((Some (\"contracts/Comptroller.py\" 387)) define_local \"calcLiquidity\" ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") True) ((Some (\"contracts/Comptroller.py\" 389)) define_local \"compute_Comptroller_389\" ((Some (\"contracts/Comptroller.py\" 390)) sub ((Some (\"contracts/Comptroller.py\" 390)) attr ((Some (\"contracts/Comptroller.py\" 388)) var \"calcLiquidity\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 390)) attr ((Some (\"contracts/Comptroller.py\" 388)) var \"calcLiquidity\") \"sumBorrowPlusEffects\")) True) ((Some (\"contracts/Comptroller.py\" 446)) define_local \"liquidtiy\" ((Some (\"contracts/Comptroller.py\" 389)) var \"compute_Comptroller_389\") True) ((Some (\"contracts/Comptroller.py\" 449)) verify ((Some (\"contracts/Comptroller.py\" 449)) lt ((Some (\"contracts/Comptroller.py\" 449)) var \"liquidtiy\") ((Some (\"contracts/Comptroller.py\" 449)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 449)) literal (string \"CMPT_INSUFFICIENT_SHORTFALL\"))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 455)) attr ((Some (\"contracts/Comptroller.py\" 455)) storage) \"closeFactorMantissa\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 455)) attr ((Some (\"contracts/Comptroller.py\" 455)) storage) \"closeFactorMantissa\"))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 455)) attr ((Some (\"contracts/Comptroller.py\" 455)) storage) \"closeFactorMantissa\"))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 451)) first ((Some (\"contracts/Comptroller.py\" 452)) open_variant ((Some (\"contracts/Comptroller.py\" 451)) view \"borrowBalanceStoredView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 443)) attr (None parameter) \"cTokenBorrowed\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 452)) literal (string \"INVALID ACCOUNT BORROW BALANCE VIEW\")))) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/Comptroller.py\" 455)) attr ((Some (\"contracts/Comptroller.py\" 455)) storage) \"closeFactorMantissa\") ((Some (\"contracts/Comptroller.py\" 451)) first ((Some (\"contracts/Comptroller.py\" 452)) open_variant ((Some (\"contracts/Comptroller.py\" 451)) view \"borrowBalanceStoredView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 443)) attr (None parameter) \"cTokenBorrowed\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 452)) literal (string \"INVALID ACCOUNT BORROW BALANCE VIEW\"))))) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/Comptroller.py\" 455)) attr ((Some (\"contracts/Comptroller.py\" 455)) storage) \"closeFactorMantissa\") ((Some (\"contracts/Comptroller.py\" 451)) first ((Some (\"contracts/Comptroller.py\" 452)) open_variant ((Some (\"contracts/Comptroller.py\" 451)) view \"borrowBalanceStoredView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 443)) attr (None parameter) \"cTokenBorrowed\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 452)) literal (string \"INVALID ACCOUNT BORROW BALANCE VIEW\"))))))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 454)) define_local \"maxClose\" ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/Comptroller.py\" 455)) attr ((Some (\"contracts/Comptroller.py\" 455)) storage) \"closeFactorMantissa\") ((Some (\"contracts/Comptroller.py\" 451)) first ((Some (\"contracts/Comptroller.py\" 452)) open_variant ((Some (\"contracts/Comptroller.py\" 451)) view \"borrowBalanceStoredView\" ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 443)) attr (None parameter) \"cTokenBorrowed\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 452)) literal (string \"INVALID ACCOUNT BORROW BALANCE VIEW\"))))) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")) True) ((Some (\"contracts/Comptroller.py\" 457)) verify ((Some (\"contracts/Comptroller.py\" 457)) ge ((Some (\"contracts/Comptroller.py\" 457)) var \"maxClose\") ((Some (\"contracts/Comptroller.py\" 457)) attr (None parameter) \"repayAmount\")) ((Some (\"contracts/Comptroller.py\" 457)) literal (string \"CMPT_TOO_MUCH_REPAY\"))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 447)) attr (None parameter) \"borrower\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 460)) attr (None parameter) \"liquidator\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 460)) attr (None parameter) \"liquidator\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))))) (mintAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 153)) (((Some (\"contracts/Comptroller.py\" 154)) verify ((Some (\"contracts/Comptroller.py\" 154)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 154)) MUL ((Some (\"contracts/Comptroller.py\" 154)) type_annotation ((Some (\"contracts/Comptroller.py\" 154)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 154)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 154)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 156)) set_type (None parameter) (record ((cToken \"address\") (mintAmount \"nat\") (minter \"address\")) (Value ((\"cToken\") ((\"minter\") (\"mintAmount\")))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 7)))) ((Some (\"contracts/Comptroller.py\" 157)) verify ((Some (\"contracts/Comptroller.py\" 158)) not ((Some (\"contracts/Comptroller.py\" 158)) attr ((Some (\"contracts/Comptroller.py\" 158)) get_item ((Some (\"contracts/Comptroller.py\" 158)) attr ((Some (\"contracts/Comptroller.py\" 158)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 158)) attr (None parameter) \"cToken\")) \"mintPaused\")) ((Some (\"contracts/Comptroller.py\" 157)) literal (string \"CMPT_MINT_PAUSED\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 158)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 158)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 160)) attr (None parameter) \"minter\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 160)) attr (None parameter) \"minter\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))))) (redeemAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 175)) (((Some (\"contracts/Comptroller.py\" 176)) verify ((Some (\"contracts/Comptroller.py\" 176)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 176)) MUL ((Some (\"contracts/Comptroller.py\" 176)) type_annotation ((Some (\"contracts/Comptroller.py\" 176)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 176)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 176)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 178)) set_type (None parameter) (record ((cToken \"address\") (redeemAmount \"nat\") (redeemer \"address\")) (Value ((\"cToken\") ((\"redeemer\") (\"redeemAmount\")))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 11)))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 185)) if_block ((Some (\"contracts/Comptroller.py\" 185)) and ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) get_item ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\"))) (((Some (\"contracts/Comptroller.py\" 187)) if_block ((Some (\"contracts/Comptroller.py\" 187)) and ((Some (\"contracts/Comptroller.py\" 187)) contains ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) ((Some (\"contracts/Comptroller.py\" 187)) neq ((Some (\"contracts/Comptroller.py\" 187)) size ((Some (\"contracts/Comptroller.py\" 187)) get_item ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\"))) ((Some (\"contracts/Comptroller.py\" 187)) literal (intOrNat 0)))) (((Some (\"contracts/Comptroller.py\" 798)) verify ((Some (\"contracts/Comptroller.py\" 798)) contains ((Some (\"contracts/Comptroller.py\" 798)) attr ((Some (\"contracts/Comptroller.py\" 798)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) ((Some (\"contracts/Comptroller.py\" 798)) literal (string \"CMPT_LIQUIDITY_ABSENT\"))) ((Some (\"contracts/Comptroller.py\" 800)) verify ((Some (\"contracts/Comptroller.py\" 801)) attr ((Some (\"contracts/Comptroller.py\" 801)) get_item ((Some (\"contracts/Comptroller.py\" 801)) attr ((Some (\"contracts/Comptroller.py\" 801)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 800)) literal (string \"CMPT_LIQUIDITY_INVALID\"))) ((Some (\"contracts/utils/Exponential.py\" 193)) set_type (None level) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 194)) set_type ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) get_item ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"updateLevel\") \"nat\") ((Some (\"contracts/Comptroller.py\" 802)) define_local \"compute_Comptroller_802\" ((Some (\"contracts/utils/Exponential.py\" 195)) open_variant ((Some (\"contracts/utils/Exponential.py\" 195)) is_nat ((Some (\"contracts/utils/Exponential.py\" 195)) sub (None level) ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) get_item ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"updateLevel\"))) \"Some\" ((Some (\"contracts/utils/Exponential.py\" 195)) literal (string \"SUBTRACTION_UNDERFLOW\"))) True) ((Some (\"contracts/Comptroller.py\" 804)) verify ((Some (\"contracts/Comptroller.py\" 804)) eq ((Some (\"contracts/Comptroller.py\" 802)) var \"compute_Comptroller_802\") ((Some (\"contracts/Comptroller.py\" 804)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 804)) literal (string \"CMPT_LIQUIDITY_OLD\"))) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemAmount\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemAmount\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemAmount\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 195)) define_local \"compute_Comptroller_195\" ((Some (\"contracts/Comptroller.py\" 195)) sub ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) get_item ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"liquidity\") ((Some (\"contracts/Comptroller.py\" 195)) to_int ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemAmount\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 197)) verify ((Some (\"contracts/Comptroller.py\" 197)) ge ((Some (\"contracts/Comptroller.py\" 195)) var \"compute_Comptroller_195\") ((Some (\"contracts/Comptroller.py\" 197)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 197)) literal (string \"CMPT_REDEEMER_SHORTFALL\"))))))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))))) (removeFromLoans True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 244)) (((Some (\"contracts/Comptroller.py\" 245)) verify ((Some (\"contracts/Comptroller.py\" 245)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 245)) MUL ((Some (\"contracts/Comptroller.py\" 245)) type_annotation ((Some (\"contracts/Comptroller.py\" 245)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 245)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 245)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") (None sender)) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") (None sender)) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 248)) if_block ((Some (\"contracts/Comptroller.py\" 248)) and ((Some (\"contracts/Comptroller.py\" 248)) contains ((Some (\"contracts/Comptroller.py\" 248)) attr ((Some (\"contracts/Comptroller.py\" 248)) storage) \"loans\") (None parameter)) ((Some (\"contracts/Comptroller.py\" 248)) contains ((Some (\"contracts/Comptroller.py\" 248)) get_item ((Some (\"contracts/Comptroller.py\" 248)) attr ((Some (\"contracts/Comptroller.py\" 248)) storage) \"loans\") (None parameter)) (None sender))) (((Some (\"contracts/Comptroller.py\" 249)) update_set ((Some (\"contracts/Comptroller.py\" 249)) get_item ((Some (\"contracts/Comptroller.py\" 249)) attr ((Some (\"contracts/Comptroller.py\" 249)) storage) \"loans\") (None parameter)) (None sender) False))))) (repayBorrowAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 261)) (((Some (\"contracts/Comptroller.py\" 262)) verify ((Some (\"contracts/Comptroller.py\" 262)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 262)) MUL ((Some (\"contracts/Comptroller.py\" 262)) type_annotation ((Some (\"contracts/Comptroller.py\" 262)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 262)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 262)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 264)) set_type (None parameter) (record ((borrower \"address\") (cToken \"address\") (payer \"address\") (repayAmount \"nat\")) (Value ((\"cToken\") ((\"payer\") ((\"borrower\") (\"repayAmount\"))))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 13)))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 265)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 265)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 266)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 266)) attr (None parameter) \"borrower\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 267)) attr (None parameter) \"payer\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 267)) attr (None parameter) \"payer\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))))) (setAccountLiquidityWithView True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 340)) (((Some (\"contracts/Comptroller.py\" 341)) verify ((Some (\"contracts/Comptroller.py\" 341)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 341)) MUL ((Some (\"contracts/Comptroller.py\" 341)) type_annotation ((Some (\"contracts/Comptroller.py\" 341)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 341)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 341)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 343)) set_type (None parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 495)) define_local \"calculation\" ((Some (\"contracts/Comptroller.py\" 495)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 496)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 496)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 497)) define_local \"temp\" ((Some (\"contracts/Comptroller.py\" 497)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 498)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 497)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 499)) if_block ((Some (\"contracts/Comptroller.py\" 499)) contains ((Some (\"contracts/Comptroller.py\" 499)) attr ((Some (\"contracts/Comptroller.py\" 499)) storage) \"collaterals\") (None parameter)) (((Some (\"contracts/Comptroller.py\" 500)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 500)) elements ((Some (\"contracts/Comptroller.py\" 500)) get_item ((Some (\"contracts/Comptroller.py\" 500)) attr ((Some (\"contracts/Comptroller.py\" 500)) storage) \"collaterals\") (None parameter))) (((Some (\"contracts/Comptroller.py\" 529)) verify ((Some (\"contracts/Comptroller.py\" 529)) is_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 530)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 530)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 531)) define_local \"compute_Comptroller_531\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 535)) define_local \"compute_Comptroller_535\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 536)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 536)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 536)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 539)) if_block ((Some (\"contracts/Comptroller.py\" 539)) and ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) get_item ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 540)) set ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) add ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 542)) set ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) add ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 500)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 505)) set ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 505)) add ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 506)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 506)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\"))))))) ((Some (\"contracts/Comptroller.py\" 507)) if_block ((Some (\"contracts/Comptroller.py\" 507)) contains ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 507)) storage) \"loans\") (None parameter)) (((Some (\"contracts/Comptroller.py\" 508)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 508)) elements ((Some (\"contracts/Comptroller.py\" 508)) get_item ((Some (\"contracts/Comptroller.py\" 508)) attr ((Some (\"contracts/Comptroller.py\" 508)) storage) \"loans\") (None parameter))) (((Some (\"contracts/Comptroller.py\" 510)) if_block ((Some (\"contracts/Comptroller.py\" 510)) contains ((Some (\"contracts/Comptroller.py\" 510)) attr ((Some (\"contracts/Comptroller.py\" 510)) storage) \"collaterals\") (None parameter)) (((Some (\"contracts/Comptroller.py\" 511)) if_block ((Some (\"contracts/Comptroller.py\" 511)) not ((Some (\"contracts/Comptroller.py\" 511)) contains ((Some (\"contracts/Comptroller.py\" 511)) get_item ((Some (\"contracts/Comptroller.py\" 511)) attr ((Some (\"contracts/Comptroller.py\" 511)) storage) \"collaterals\") (None parameter)) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\"))) (((Some (\"contracts/Comptroller.py\" 529)) verify ((Some (\"contracts/Comptroller.py\" 529)) is_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 530)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 530)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 531)) define_local \"compute_Comptroller_531\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 535)) define_local \"compute_Comptroller_535\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 536)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 536)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 536)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 539)) if_block ((Some (\"contracts/Comptroller.py\" 539)) and ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) get_item ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 540)) set ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) add ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 542)) set ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) add ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 516)) set ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 516)) add ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 517)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 517)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\"))))))) (else_block (((Some (\"contracts/Comptroller.py\" 529)) verify ((Some (\"contracts/Comptroller.py\" 529)) is_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 530)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 530)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) open_variant ((Some (\"contracts/Comptroller.py\" 527)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 528)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 531)) define_local \"compute_Comptroller_531\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 531)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 535)) define_local \"compute_Comptroller_535\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) get_item ((Some (\"contracts/Comptroller.py\" 534)) attr ((Some (\"contracts/Comptroller.py\" 534)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 531)) var \"compute_Comptroller_531\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 536)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 536)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 536)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 539)) if_block ((Some (\"contracts/Comptroller.py\" 539)) and ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 539)) contains ((Some (\"contracts/Comptroller.py\" 539)) get_item ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 539)) attr ((Some (\"contracts/Comptroller.py\" 539)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 540)) set ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) add ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 535)) var \"compute_Comptroller_535\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 541)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 542)) set ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) add ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) get_item ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 508)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 543)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 521)) set ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 521)) add ((Some (\"contracts/Comptroller.py\" 505)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 522)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 522)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 537)) var \"calc\") \"sumBorrowPlusEffects\"))))))))) ((Some (\"contracts/Comptroller.py\" 344)) define_local \"liquidity\" ((Some (\"contracts/Comptroller.py\" 496)) var \"calculation\") True) ((Some (\"contracts/utils/OperationProtector.py\" 43)) verify ((Some (\"contracts/utils/OperationProtector.py\" 43)) contains ((Some (\"contracts/utils/OperationProtector.py\" 43)) attr ((Some (\"contracts/utils/OperationProtector.py\" 43)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 31)) literal (nat 4))) ((Some (\"contracts/utils/OperationProtector.py\" 43)) literal (string \"OP_NOT_ACTIVE\"))) ((Some (\"contracts/utils/OperationProtector.py\" 49)) update_set ((Some (\"contracts/utils/OperationProtector.py\" 49)) attr ((Some (\"contracts/utils/OperationProtector.py\" 49)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 31)) literal (nat 4)) False) ((Some (\"contracts/Comptroller.py\" 347)) set ((Some (\"contracts/Comptroller.py\" 347)) get_item ((Some (\"contracts/Comptroller.py\" 347)) attr ((Some (\"contracts/Comptroller.py\" 347)) storage) \"account_liquidity\") (None parameter)) ((Some (\"contracts/Comptroller.py\" 347)) record (liquidity ((Some (\"contracts/Comptroller.py\" 348)) sub ((Some (\"contracts/Comptroller.py\" 348)) attr ((Some (\"contracts/Comptroller.py\" 345)) var \"liquidity\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 348)) attr ((Some (\"contracts/Comptroller.py\" 345)) var \"liquidity\") \"sumBorrowPlusEffects\"))) (updateLevel (None level)) (valid ((Some (\"contracts/Comptroller.py\" 347)) literal (bool True))))))) (setAccountSnapAndExitMarket True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 128)) (((Some (\"contracts/Comptroller.py\" 129)) verify ((Some (\"contracts/Comptroller.py\" 129)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 129)) MUL ((Some (\"contracts/Comptroller.py\" 129)) type_annotation ((Some (\"contracts/Comptroller.py\" 129)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 129)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 129)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 131)) set_type (None parameter) (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21)))) ((Some (\"contracts/utils/OperationProtector.py\" 43)) verify ((Some (\"contracts/utils/OperationProtector.py\" 43)) contains ((Some (\"contracts/utils/OperationProtector.py\" 43)) attr ((Some (\"contracts/utils/OperationProtector.py\" 43)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 28)) literal (nat 1))) ((Some (\"contracts/utils/OperationProtector.py\" 43)) literal (string \"OP_NOT_ACTIVE\"))) ((Some (\"contracts/utils/OperationProtector.py\" 49)) update_set ((Some (\"contracts/utils/OperationProtector.py\" 49)) attr ((Some (\"contracts/utils/OperationProtector.py\" 49)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 28)) literal (nat 1)) False) ((Some (\"contracts/Comptroller.py\" 133)) verify ((Some (\"contracts/Comptroller.py\" 133)) eq ((Some (\"contracts/Comptroller.py\" 133)) attr (None parameter) \"borrowBalance\") ((Some (\"contracts/Comptroller.py\" 134)) literal (nat 0))) ((Some (\"contracts/Comptroller.py\" 133)) literal (string \"CMPT_BORROW_IN_MARKET\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") (None sender)) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") (None sender)) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 185)) if_block ((Some (\"contracts/Comptroller.py\" 185)) and ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) get_item ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (None sender))) (((Some (\"contracts/Comptroller.py\" 187)) if_block ((Some (\"contracts/Comptroller.py\" 187)) and ((Some (\"contracts/Comptroller.py\" 187)) contains ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) ((Some (\"contracts/Comptroller.py\" 187)) neq ((Some (\"contracts/Comptroller.py\" 187)) size ((Some (\"contracts/Comptroller.py\" 187)) get_item ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\"))) ((Some (\"contracts/Comptroller.py\" 187)) literal (intOrNat 0)))) (((Some (\"contracts/Comptroller.py\" 798)) verify ((Some (\"contracts/Comptroller.py\" 798)) contains ((Some (\"contracts/Comptroller.py\" 798)) attr ((Some (\"contracts/Comptroller.py\" 798)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) ((Some (\"contracts/Comptroller.py\" 798)) literal (string \"CMPT_LIQUIDITY_ABSENT\"))) ((Some (\"contracts/Comptroller.py\" 800)) verify ((Some (\"contracts/Comptroller.py\" 801)) attr ((Some (\"contracts/Comptroller.py\" 801)) get_item ((Some (\"contracts/Comptroller.py\" 801)) attr ((Some (\"contracts/Comptroller.py\" 801)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 800)) literal (string \"CMPT_LIQUIDITY_INVALID\"))) ((Some (\"contracts/utils/Exponential.py\" 193)) set_type (None level) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 194)) set_type ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) get_item ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"updateLevel\") \"nat\") ((Some (\"contracts/Comptroller.py\" 802)) define_local \"compute_Comptroller_802\" ((Some (\"contracts/utils/Exponential.py\" 195)) open_variant ((Some (\"contracts/utils/Exponential.py\" 195)) is_nat ((Some (\"contracts/utils/Exponential.py\" 195)) sub (None level) ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) get_item ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"updateLevel\"))) \"Some\" ((Some (\"contracts/utils/Exponential.py\" 195)) literal (string \"SUBTRACTION_UNDERFLOW\"))) True) ((Some (\"contracts/Comptroller.py\" 804)) verify ((Some (\"contracts/Comptroller.py\" 804)) eq ((Some (\"contracts/Comptroller.py\" 802)) var \"compute_Comptroller_802\") ((Some (\"contracts/Comptroller.py\" 804)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 804)) literal (string \"CMPT_LIQUIDITY_OLD\"))) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") (None sender)) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") (None sender)) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 195)) define_local \"compute_Comptroller_195\" ((Some (\"contracts/Comptroller.py\" 195)) sub ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) get_item ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"liquidity\") ((Some (\"contracts/Comptroller.py\" 195)) to_int ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 197)) verify ((Some (\"contracts/Comptroller.py\" 197)) ge ((Some (\"contracts/Comptroller.py\" 195)) var \"compute_Comptroller_195\") ((Some (\"contracts/Comptroller.py\" 197)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 197)) literal (string \"CMPT_REDEEMER_SHORTFALL\"))))))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))) ((Some (\"contracts/Comptroller.py\" 138)) if_block ((Some (\"contracts/Comptroller.py\" 138)) and ((Some (\"contracts/Comptroller.py\" 138)) contains ((Some (\"contracts/Comptroller.py\" 138)) attr ((Some (\"contracts/Comptroller.py\" 138)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) ((Some (\"contracts/Comptroller.py\" 138)) contains ((Some (\"contracts/Comptroller.py\" 138)) get_item ((Some (\"contracts/Comptroller.py\" 138)) attr ((Some (\"contracts/Comptroller.py\" 138)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (None sender))) (((Some (\"contracts/Comptroller.py\" 140)) update_set ((Some (\"contracts/Comptroller.py\" 140)) get_item ((Some (\"contracts/Comptroller.py\" 140)) attr ((Some (\"contracts/Comptroller.py\" 140)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (None sender) False))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))))) (setBorrowPaused True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 625)) (((Some (\"contracts/Comptroller.py\" 626)) verify ((Some (\"contracts/Comptroller.py\" 626)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 626)) MUL ((Some (\"contracts/Comptroller.py\" 626)) type_annotation ((Some (\"contracts/Comptroller.py\" 626)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 626)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 626)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 628)) set_type (None parameter) (record ((cToken \"address\") (state \"bool\")) Variable (Some (\"contracts/Comptroller.py\" 628)))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 629)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 629)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 631)) set ((Some (\"contracts/Comptroller.py\" 631)) attr ((Some (\"contracts/Comptroller.py\" 631)) get_item ((Some (\"contracts/Comptroller.py\" 631)) attr ((Some (\"contracts/Comptroller.py\" 631)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 629)) attr (None parameter) \"cToken\")) \"borrowPaused\") ((Some (\"contracts/Comptroller.py\" 631)) attr (None parameter) \"state\")))) (setCloseFactor True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 674)) (((Some (\"contracts/Comptroller.py\" 675)) verify ((Some (\"contracts/Comptroller.py\" 675)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 675)) MUL ((Some (\"contracts/Comptroller.py\" 675)) type_annotation ((Some (\"contracts/Comptroller.py\" 675)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 675)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 675)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 677)) set_type (None parameter) \"nat\") ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 679)) set ((Some (\"contracts/Comptroller.py\" 679)) attr ((Some (\"contracts/Comptroller.py\" 679)) storage) \"closeFactorMantissa\") (None parameter)))) (setCollateralFactor True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 706)) (((Some (\"contracts/Comptroller.py\" 707)) verify ((Some (\"contracts/Comptroller.py\" 707)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 707)) MUL ((Some (\"contracts/Comptroller.py\" 707)) type_annotation ((Some (\"contracts/Comptroller.py\" 707)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 707)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 707)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 709)) set_type (None parameter) (record ((cToken \"address\") (newCollateralFactor \"nat\")) Variable (Some (\"contracts/Comptroller.py\" 709)))) ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 712)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 712)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 713)) set ((Some (\"contracts/Comptroller.py\" 713)) attr ((Some (\"contracts/Comptroller.py\" 713)) attr ((Some (\"contracts/Comptroller.py\" 713)) get_item ((Some (\"contracts/Comptroller.py\" 713)) attr ((Some (\"contracts/Comptroller.py\" 713)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 712)) attr (None parameter) \"cToken\")) \"collateralFactor\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 713)) attr (None parameter) \"newCollateralFactor\")))) (setLiquidationIncentive True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 723)) (((Some (\"contracts/Comptroller.py\" 724)) verify ((Some (\"contracts/Comptroller.py\" 724)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 724)) MUL ((Some (\"contracts/Comptroller.py\" 724)) type_annotation ((Some (\"contracts/Comptroller.py\" 724)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 724)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 724)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 726)) set_type (None parameter) \"nat\") ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 728)) set ((Some (\"contracts/Comptroller.py\" 728)) attr ((Some (\"contracts/Comptroller.py\" 728)) storage) \"liquidationIncentiveMantissa\") (None parameter)))) (setMaxAssetsPerUser True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 689)) (((Some (\"contracts/Comptroller.py\" 690)) verify ((Some (\"contracts/Comptroller.py\" 690)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 690)) MUL ((Some (\"contracts/Comptroller.py\" 690)) type_annotation ((Some (\"contracts/Comptroller.py\" 690)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 690)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 690)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 692)) set_type (None parameter) \"nat\") ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 694)) set ((Some (\"contracts/Comptroller.py\" 694)) attr ((Some (\"contracts/Comptroller.py\" 694)) storage) \"maxAssetsPerUser\") (None parameter)))) (setMintPaused True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 607)) (((Some (\"contracts/Comptroller.py\" 608)) verify ((Some (\"contracts/Comptroller.py\" 608)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 608)) MUL ((Some (\"contracts/Comptroller.py\" 608)) type_annotation ((Some (\"contracts/Comptroller.py\" 608)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 608)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 608)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 610)) set_type (None parameter) (record ((cToken \"address\") (state \"bool\")) Variable (Some (\"contracts/Comptroller.py\" 610)))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 611)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 611)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 613)) set ((Some (\"contracts/Comptroller.py\" 613)) attr ((Some (\"contracts/Comptroller.py\" 613)) get_item ((Some (\"contracts/Comptroller.py\" 613)) attr ((Some (\"contracts/Comptroller.py\" 613)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 611)) attr (None parameter) \"cToken\")) \"mintPaused\") ((Some (\"contracts/Comptroller.py\" 613)) attr (None parameter) \"state\")))) (setPendingGovernance True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 573)) (((Some (\"contracts/Comptroller.py\" 574)) verify ((Some (\"contracts/Comptroller.py\" 574)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 574)) MUL ((Some (\"contracts/Comptroller.py\" 574)) type_annotation ((Some (\"contracts/Comptroller.py\" 574)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 574)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 574)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 576)) set_type (None parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 578)) set ((Some (\"contracts/Comptroller.py\" 578)) attr ((Some (\"contracts/Comptroller.py\" 578)) storage) \"pendingAdministrator\") ((Some (\"contracts/Comptroller.py\" 578)) variant \"Some\" (None parameter))))) (setPriceOracleAndTimeDiff True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 658)) (((Some (\"contracts/Comptroller.py\" 659)) verify ((Some (\"contracts/Comptroller.py\" 659)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 659)) MUL ((Some (\"contracts/Comptroller.py\" 659)) type_annotation ((Some (\"contracts/Comptroller.py\" 659)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 659)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 659)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 661)) set_type (None parameter) (record ((priceOracle \"address\") (timeDiff \"int\")) Variable (Some (\"contracts/Comptroller.py\" 661)))) ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 663)) set ((Some (\"contracts/Comptroller.py\" 663)) attr ((Some (\"contracts/Comptroller.py\" 663)) storage) \"maxPriceTimeDifference\") ((Some (\"contracts/Comptroller.py\" 663)) attr (None parameter) \"timeDiff\")) ((Some (\"contracts/Comptroller.py\" 664)) set ((Some (\"contracts/Comptroller.py\" 664)) attr ((Some (\"contracts/Comptroller.py\" 664)) storage) \"oracleAddress\") ((Some (\"contracts/Comptroller.py\" 664)) attr (None parameter) \"priceOracle\")))) (setTransferPaused True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 641)) (((Some (\"contracts/Comptroller.py\" 642)) verify ((Some (\"contracts/Comptroller.py\" 642)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 642)) MUL ((Some (\"contracts/Comptroller.py\" 642)) type_annotation ((Some (\"contracts/Comptroller.py\" 642)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 642)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 642)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 644)) set_type (None parameter) \"bool\") ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 646)) set ((Some (\"contracts/Comptroller.py\" 646)) attr ((Some (\"contracts/Comptroller.py\" 646)) storage) \"transferPaused\") (None parameter)))) (supportMarket True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 741)) (((Some (\"contracts/Comptroller.py\" 742)) verify ((Some (\"contracts/Comptroller.py\" 742)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 742)) MUL ((Some (\"contracts/Comptroller.py\" 742)) type_annotation ((Some (\"contracts/Comptroller.py\" 742)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 742)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 742)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 744)) set_type (None parameter) (record ((cToken \"address\") (name \"string\") (priceExp \"nat\")) Variable (Some (\"contracts/Comptroller.py\" 744)))) ((Some (\"contracts/Comptroller.py\" 792)) verify ((Some (\"contracts/Comptroller.py\" 792)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 792)) attr ((Some (\"contracts/Comptroller.py\" 792)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 792)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 788)) verify ((Some (\"contracts/Comptroller.py\" 788)) not ((Some (\"contracts/Comptroller.py\" 788)) and ((Some (\"contracts/Comptroller.py\" 788)) contains ((Some (\"contracts/Comptroller.py\" 788)) attr ((Some (\"contracts/Comptroller.py\" 788)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 747)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 789)) attr ((Some (\"contracts/Comptroller.py\" 789)) get_item ((Some (\"contracts/Comptroller.py\" 789)) attr ((Some (\"contracts/Comptroller.py\" 789)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 747)) attr (None parameter) \"cToken\")) \"isListed\"))) ((Some (\"contracts/Comptroller.py\" 788)) literal (string \"CMPT_MARKET_ALREADY_LISTED\"))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 750)) literal (nat 500000000000000000)) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 756)) literal (nat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 748)) set ((Some (\"contracts/Comptroller.py\" 748)) get_item ((Some (\"contracts/Comptroller.py\" 748)) attr ((Some (\"contracts/Comptroller.py\" 748)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 747)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 748)) record (borrowPaused ((Some (\"contracts/Comptroller.py\" 752)) literal (bool True))) (collateralFactor ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 750)) literal (nat 500000000000000000))))) (isListed ((Some (\"contracts/Comptroller.py\" 748)) literal (bool True))) (mintPaused ((Some (\"contracts/Comptroller.py\" 751)) literal (bool True))) (name ((Some (\"contracts/Comptroller.py\" 754)) attr (None parameter) \"name\")) (price ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 756)) literal (nat 0))))) (priceExp ((Some (\"contracts/Comptroller.py\" 757)) attr (None parameter) \"priceExp\")) (priceTimestamp ((Some (\"contracts/Comptroller.py\" 759)) literal (timestamp 0))) (updateLevel ((Some (\"contracts/Comptroller.py\" 758)) literal (nat 0))))) ((Some (\"contracts/Comptroller.py\" 760)) set ((Some (\"contracts/Comptroller.py\" 760)) get_item ((Some (\"contracts/Comptroller.py\" 760)) attr ((Some (\"contracts/Comptroller.py\" 760)) storage) \"marketNameToAddress\") ((Some (\"contracts/Comptroller.py\" 760)) add ((Some (\"contracts/Comptroller.py\" 754)) attr (None parameter) \"name\") ((Some (\"contracts/Comptroller.py\" 760)) literal (string \"-USD\")))) ((Some (\"contracts/Comptroller.py\" 747)) attr (None parameter) \"cToken\")))) (sweepFA12 True None None None True None (Some (\"contracts/utils/SweepTokens.py\" 35)) (((Some (\"contracts/utils/SweepTokens.py\" 36)) set_type (None parameter) (record ((amount \"nat\") (tokenAddress \"address\")) Variable (Some (\"contracts/utils/SweepTokens.py\" 36)))) ((Some (\"contracts/utils/TransferTokens.py\" 19)) set ((Some (\"contracts/utils/TransferTokens.py\" 19)) operations) ((Some (\"contracts/utils/TransferTokens.py\" 19)) cons ((Some (\"contracts/utils/TransferTokens.py\" 19)) transfer ((Some (\"contracts/utils/TransferTokens.py\" 6)) record (from_ (None self_address)) (to_ ((Some (\"contracts/utils/SweepTokens.py\" 39)) attr ((Some (\"contracts/utils/SweepTokens.py\" 39)) storage) \"administrator\")) (value ((Some (\"contracts/utils/SweepTokens.py\" 40)) attr (None parameter) \"amount\"))) ((Some (\"contracts/utils/TransferTokens.py\" 19)) literal (mutez 0)) ((Some (\"contracts/utils/TransferTokens.py\" 17)) open_variant ((Some (\"contracts/utils/TransferTokens.py\" 12)) contract \"transfer\" (record ((from_ \"address\") (to_ \"address\") (value \"nat\")) (Value ((\"from_ as from\") ((\"to_ as to\") (\"value\")))) (Some (\"contracts/utils/TransferTokens.py\" 13))) ((Some (\"contracts/utils/SweepTokens.py\" 38)) attr (None parameter) \"tokenAddress\")) \"Some\" \"None\")) ((Some (\"contracts/utils/TransferTokens.py\" 19)) operations))))) (sweepFA2 True None None None True None (Some (\"contracts/utils/SweepTokens.py\" 51)) (((Some (\"contracts/utils/SweepTokens.py\" 52)) set_type (None parameter) (record ((amount \"nat\") (id \"nat\") (tokenAddress \"address\")) Variable (Some (\"contracts/utils/SweepTokens.py\" 52)))) ((Some (\"contracts/utils/TransferTokens.py\" 45)) set ((Some (\"contracts/utils/TransferTokens.py\" 45)) operations) ((Some (\"contracts/utils/TransferTokens.py\" 45)) cons ((Some (\"contracts/utils/TransferTokens.py\" 45)) transfer ((Some (\"contracts/utils/TransferTokens.py\" 45)) list ((Some (\"contracts/utils/TransferTokens.py\" 26)) record (from_ (None self_address)) (txs ((Some (\"contracts/utils/TransferTokens.py\" 26)) list ((Some (\"contracts/utils/TransferTokens.py\" 29)) record (amount ((Some (\"contracts/utils/SweepTokens.py\" 56)) attr (None parameter) \"amount\")) (to_ ((Some (\"contracts/utils/SweepTokens.py\" 55)) attr ((Some (\"contracts/utils/SweepTokens.py\" 55)) storage) \"administrator\")) (token_id ((Some (\"contracts/utils/SweepTokens.py\" 54)) attr (None parameter) \"id\"))))))) ((Some (\"contracts/utils/TransferTokens.py\" 45)) literal (mutez 0)) ((Some (\"contracts/utils/TransferTokens.py\" 43)) open_variant ((Some (\"contracts/utils/TransferTokens.py\" 38)) contract \"transfer\" (list (record ((from_ \"address\") (txs (list (record ((amount \"nat\") (to_ \"address\") (token_id \"nat\")) (Value ((\"to_\") ((\"token_id\") (\"amount\")))) (Some (\"contracts/utils/TransferTokens.py\" 22)))))) (Value ((\"from_\") (\"txs\"))) (Some (\"contracts/utils/TransferTokens.py\" 40)))) ((Some (\"contracts/utils/SweepTokens.py\" 54)) attr (None parameter) \"tokenAddress\")) \"Some\" \"None\")) ((Some (\"contracts/utils/TransferTokens.py\" 45)) operations))))) (sweepMutez True None None None True None (Some (\"contracts/utils/SweepTokens.py\" 16)) (((Some (\"contracts/utils/SweepTokens.py\" 17)) set_type (None parameter) \"bool\") ((Some (\"contracts/utils/SweepTokens.py\" 19)) if_block (None parameter) (((Some (\"contracts/utils/SweepTokens.py\" 22)) set ((Some (\"contracts/utils/SweepTokens.py\" 22)) operations) ((Some (\"contracts/utils/SweepTokens.py\" 22)) cons ((Some (\"contracts/utils/SweepTokens.py\" 22)) transfer (None literal (unit)) (None balance) ((Some (\"contracts/utils/SweepTokens.py\" 21)) open_variant ((Some (\"contracts/utils/SweepTokens.py\" 20)) contract \"receive\" \"unit\" ((Some (\"contracts/utils/SweepTokens.py\" 21)) attr ((Some (\"contracts/utils/SweepTokens.py\" 21)) storage) \"administrator\")) \"Some\" \"None\")) ((Some (\"contracts/utils/SweepTokens.py\" 22)) operations))))) (else_block (((Some (\"contracts/utils/SweepTokens.py\" 24)) set ((Some (\"contracts/utils/SweepTokens.py\" 24)) operations) ((Some (\"contracts/utils/SweepTokens.py\" 24)) cons ((Some (\"contracts/utils/SweepTokens.py\" 24)) transfer (None literal (unit)) (None balance) ((Some (\"contracts/utils/SweepTokens.py\" 24)) open_variant ((Some (\"contracts/utils/SweepTokens.py\" 24)) contract \"\" \"unit\" ((Some (\"contracts/utils/SweepTokens.py\" 24)) attr ((Some (\"contracts/utils/SweepTokens.py\" 24)) storage) \"administrator\")) \"Some\" \"None\")) ((Some (\"contracts/utils/SweepTokens.py\" 24)) operations))))))) (transferAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 283)) (((Some (\"contracts/Comptroller.py\" 284)) verify ((Some (\"contracts/Comptroller.py\" 284)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 284)) MUL ((Some (\"contracts/Comptroller.py\" 284)) type_annotation ((Some (\"contracts/Comptroller.py\" 284)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 284)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 284)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 286)) set_type (None parameter) (record ((cToken \"address\") (dst \"address\") (src \"address\") (transferTokens \"nat\")) (Value (((\"cToken\") (\"src\")) ((\"dst\") (\"transferTokens\")))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 16)))) ((Some (\"contracts/Comptroller.py\" 287)) verify ((Some (\"contracts/Comptroller.py\" 287)) not ((Some (\"contracts/Comptroller.py\" 287)) attr ((Some (\"contracts/Comptroller.py\" 287)) storage) \"transferPaused\")) ((Some (\"contracts/Comptroller.py\" 287)) literal (string \"CMPT_TRANSFER_PAUSED\"))) ((Some (\"contracts/Comptroller.py\" 784)) verify ((Some (\"contracts/Comptroller.py\" 784)) and ((Some (\"contracts/Comptroller.py\" 784)) contains ((Some (\"contracts/Comptroller.py\" 784)) attr ((Some (\"contracts/Comptroller.py\" 784)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) get_item ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 784)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 185)) if_block ((Some (\"contracts/Comptroller.py\" 185)) and ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) get_item ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\"))) (((Some (\"contracts/Comptroller.py\" 187)) if_block ((Some (\"contracts/Comptroller.py\" 187)) and ((Some (\"contracts/Comptroller.py\" 187)) contains ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) ((Some (\"contracts/Comptroller.py\" 187)) neq ((Some (\"contracts/Comptroller.py\" 187)) size ((Some (\"contracts/Comptroller.py\" 187)) get_item ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\"))) ((Some (\"contracts/Comptroller.py\" 187)) literal (intOrNat 0)))) (((Some (\"contracts/Comptroller.py\" 798)) verify ((Some (\"contracts/Comptroller.py\" 798)) contains ((Some (\"contracts/Comptroller.py\" 798)) attr ((Some (\"contracts/Comptroller.py\" 798)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) ((Some (\"contracts/Comptroller.py\" 798)) literal (string \"CMPT_LIQUIDITY_ABSENT\"))) ((Some (\"contracts/Comptroller.py\" 800)) verify ((Some (\"contracts/Comptroller.py\" 801)) attr ((Some (\"contracts/Comptroller.py\" 801)) get_item ((Some (\"contracts/Comptroller.py\" 801)) attr ((Some (\"contracts/Comptroller.py\" 801)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 800)) literal (string \"CMPT_LIQUIDITY_INVALID\"))) ((Some (\"contracts/utils/Exponential.py\" 193)) set_type (None level) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 194)) set_type ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) get_item ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) \"updateLevel\") \"nat\") ((Some (\"contracts/Comptroller.py\" 802)) define_local \"compute_Comptroller_802\" ((Some (\"contracts/utils/Exponential.py\" 195)) open_variant ((Some (\"contracts/utils/Exponential.py\" 195)) is_nat ((Some (\"contracts/utils/Exponential.py\" 195)) sub (None level) ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) get_item ((Some (\"contracts/Comptroller.py\" 803)) attr ((Some (\"contracts/Comptroller.py\" 803)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) \"updateLevel\"))) \"Some\" ((Some (\"contracts/utils/Exponential.py\" 195)) literal (string \"SUBTRACTION_UNDERFLOW\"))) True) ((Some (\"contracts/Comptroller.py\" 804)) verify ((Some (\"contracts/Comptroller.py\" 804)) eq ((Some (\"contracts/Comptroller.py\" 802)) var \"compute_Comptroller_802\") ((Some (\"contracts/Comptroller.py\" 804)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 804)) literal (string \"CMPT_LIQUIDITY_OLD\"))) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 234)) verify ((Some (\"contracts/Comptroller.py\" 234)) gt ((Some (\"contracts/Comptroller.py\" 234)) attr ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 234)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 234)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"transferTokens\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"transferTokens\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"transferTokens\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 195)) define_local \"compute_Comptroller_195\" ((Some (\"contracts/Comptroller.py\" 195)) sub ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) get_item ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) \"liquidity\") ((Some (\"contracts/Comptroller.py\" 195)) to_int ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"transferTokens\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 197)) verify ((Some (\"contracts/Comptroller.py\" 197)) ge ((Some (\"contracts/Comptroller.py\" 195)) var \"compute_Comptroller_195\") ((Some (\"contracts/Comptroller.py\" 197)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 197)) literal (string \"CMPT_REDEEMER_SHORTFALL\"))))))) ((Some (\"contracts/Comptroller.py\" 807)) if_block ((Some (\"contracts/Comptroller.py\" 807)) contains ((Some (\"contracts/Comptroller.py\" 807)) attr ((Some (\"contracts/Comptroller.py\" 807)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) (((Some (\"contracts/Comptroller.py\" 808)) set ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) get_item ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 289)) attr (None parameter) \"src\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 808)) literal (bool False))))))) (updateAccountLiquidityWithView True None None None True None (Some (\"contracts/Comptroller.py\" 324)) (((Some (\"contracts/Comptroller.py\" 325)) verify ((Some (\"contracts/Comptroller.py\" 325)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 325)) MUL ((Some (\"contracts/Comptroller.py\" 325)) type_annotation ((Some (\"contracts/Comptroller.py\" 325)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 325)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 325)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 327)) set_type (None parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 301)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 301)) values ((Some (\"contracts/Comptroller.py\" 301)) attr ((Some (\"contracts/Comptroller.py\" 301)) storage) \"marketNameToAddress\")) (((Some (\"contracts/Comptroller.py\" 302)) if_block ((Some (\"contracts/Comptroller.py\" 302)) lt ((Some (\"contracts/Comptroller.py\" 302)) attr ((Some (\"contracts/Comptroller.py\" 302)) get_item ((Some (\"contracts/Comptroller.py\" 302)) attr ((Some (\"contracts/Comptroller.py\" 302)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"updateLevel\") (None level)) (((Some (\"contracts/Comptroller.py\" 303)) define_local \"pricePair\" ((Some (\"contracts/Comptroller.py\" 305)) open_variant ((Some (\"contracts/Comptroller.py\" 304)) view \"getPrice\" ((Some (\"contracts/Comptroller.py\" 304)) add ((Some (\"contracts/Comptroller.py\" 304)) attr ((Some (\"contracts/Comptroller.py\" 304)) get_item ((Some (\"contracts/Comptroller.py\" 304)) attr ((Some (\"contracts/Comptroller.py\" 304)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"name\") ((Some (\"contracts/Comptroller.py\" 304)) literal (string \"-USD\"))) ((Some (\"contracts/Comptroller.py\" 304)) attr ((Some (\"contracts/Comptroller.py\" 304)) storage) \"oracleAddress\") (tuple \"timestamp\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 305)) literal (string \"invalid oracle view call\"))) True) ((Some (\"contracts/Comptroller.py\" 307)) if_block ((Some (\"contracts/Comptroller.py\" 307)) neq ((Some (\"contracts/Comptroller.py\" 307)) attr ((Some (\"contracts/Comptroller.py\" 307)) get_item ((Some (\"contracts/Comptroller.py\" 307)) attr ((Some (\"contracts/Comptroller.py\" 307)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"priceTimestamp\") ((Some (\"contracts/Comptroller.py\" 307)) literal (timestamp 0))) (((Some (\"contracts/Comptroller.py\" 308)) verify ((Some (\"contracts/Comptroller.py\" 308)) le ((Some (\"contracts/Comptroller.py\" 308)) sub (None now) ((Some (\"contracts/Comptroller.py\" 308)) first ((Some (\"contracts/Comptroller.py\" 308)) var \"pricePair\"))) ((Some (\"contracts/Comptroller.py\" 308)) attr ((Some (\"contracts/Comptroller.py\" 308)) storage) \"maxPriceTimeDifference\")) ((Some (\"contracts/Comptroller.py\" 308)) literal (string \"STALE_ASSET_PRICE\"))))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 310)) mul_homo ((Some (\"contracts/Comptroller.py\" 310)) second ((Some (\"contracts/Comptroller.py\" 310)) var \"pricePair\")) ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) get_item ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"priceExp\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 309)) set ((Some (\"contracts/Comptroller.py\" 309)) attr ((Some (\"contracts/Comptroller.py\" 309)) get_item ((Some (\"contracts/Comptroller.py\" 309)) attr ((Some (\"contracts/Comptroller.py\" 309)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"price\") ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 310)) mul_homo ((Some (\"contracts/Comptroller.py\" 310)) second ((Some (\"contracts/Comptroller.py\" 310)) var \"pricePair\")) ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) get_item ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"priceExp\"))))) ((Some (\"contracts/Comptroller.py\" 311)) set ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) get_item ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"priceTimestamp\") ((Some (\"contracts/Comptroller.py\" 311)) first ((Some (\"contracts/Comptroller.py\" 311)) var \"pricePair\"))) ((Some (\"contracts/Comptroller.py\" 312)) set ((Some (\"contracts/Comptroller.py\" 312)) attr ((Some (\"contracts/Comptroller.py\" 312)) get_item ((Some (\"contracts/Comptroller.py\" 312)) attr ((Some (\"contracts/Comptroller.py\" 312)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"updateLevel\") (None level)))))) ((Some (\"contracts/Comptroller.py\" 354)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 354)) values ((Some (\"contracts/Comptroller.py\" 354)) attr ((Some (\"contracts/Comptroller.py\" 354)) storage) \"marketNameToAddress\")) (((Some (\"contracts/Comptroller.py\" 355)) set ((Some (\"contracts/Comptroller.py\" 355)) operations) ((Some (\"contracts/Comptroller.py\" 355)) cons ((Some (\"contracts/Comptroller.py\" 355)) transfer (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 355)) literal (mutez 0)) ((Some (\"contracts/Comptroller.py\" 356)) open_variant ((Some (\"contracts/Comptroller.py\" 355)) contract \"accrueInterest\" \"unit\" ((Some (\"contracts/Comptroller.py\" 354)) var \"asset\")) \"Some\" \"None\")) ((Some (\"contracts/Comptroller.py\" 355)) operations))))) ((Some (\"contracts/utils/OperationProtector.py\" 46)) update_set ((Some (\"contracts/utils/OperationProtector.py\" 46)) attr ((Some (\"contracts/utils/OperationProtector.py\" 46)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 31)) literal (nat 4)) True) ((Some (\"contracts/Comptroller.py\" 331)) set ((Some (\"contracts/Comptroller.py\" 331)) operations) ((Some (\"contracts/Comptroller.py\" 331)) cons ((Some (\"contracts/Comptroller.py\" 331)) transfer (None parameter) ((Some (\"contracts/Comptroller.py\" 331)) literal (mutez 0)) ((Some (\"contracts/Comptroller.py\" 331)) self \"setAccountLiquidityWithView\")) ((Some (\"contracts/Comptroller.py\" 331)) operations))))) (updateAllAssetPricesWithView True None None None False None (Some (\"contracts/Comptroller.py\" 295)) (((Some (\"contracts/Comptroller.py\" 296)) verify ((Some (\"contracts/Comptroller.py\" 296)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 296)) MUL ((Some (\"contracts/Comptroller.py\" 296)) type_annotation ((Some (\"contracts/Comptroller.py\" 296)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 296)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 296)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 301)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 301)) values ((Some (\"contracts/Comptroller.py\" 301)) attr ((Some (\"contracts/Comptroller.py\" 301)) storage) \"marketNameToAddress\")) (((Some (\"contracts/Comptroller.py\" 302)) if_block ((Some (\"contracts/Comptroller.py\" 302)) lt ((Some (\"contracts/Comptroller.py\" 302)) attr ((Some (\"contracts/Comptroller.py\" 302)) get_item ((Some (\"contracts/Comptroller.py\" 302)) attr ((Some (\"contracts/Comptroller.py\" 302)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"updateLevel\") (None level)) (((Some (\"contracts/Comptroller.py\" 303)) define_local \"pricePair\" ((Some (\"contracts/Comptroller.py\" 305)) open_variant ((Some (\"contracts/Comptroller.py\" 304)) view \"getPrice\" ((Some (\"contracts/Comptroller.py\" 304)) add ((Some (\"contracts/Comptroller.py\" 304)) attr ((Some (\"contracts/Comptroller.py\" 304)) get_item ((Some (\"contracts/Comptroller.py\" 304)) attr ((Some (\"contracts/Comptroller.py\" 304)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"name\") ((Some (\"contracts/Comptroller.py\" 304)) literal (string \"-USD\"))) ((Some (\"contracts/Comptroller.py\" 304)) attr ((Some (\"contracts/Comptroller.py\" 304)) storage) \"oracleAddress\") (tuple \"timestamp\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 305)) literal (string \"invalid oracle view call\"))) True) ((Some (\"contracts/Comptroller.py\" 307)) if_block ((Some (\"contracts/Comptroller.py\" 307)) neq ((Some (\"contracts/Comptroller.py\" 307)) attr ((Some (\"contracts/Comptroller.py\" 307)) get_item ((Some (\"contracts/Comptroller.py\" 307)) attr ((Some (\"contracts/Comptroller.py\" 307)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"priceTimestamp\") ((Some (\"contracts/Comptroller.py\" 307)) literal (timestamp 0))) (((Some (\"contracts/Comptroller.py\" 308)) verify ((Some (\"contracts/Comptroller.py\" 308)) le ((Some (\"contracts/Comptroller.py\" 308)) sub (None now) ((Some (\"contracts/Comptroller.py\" 308)) first ((Some (\"contracts/Comptroller.py\" 308)) var \"pricePair\"))) ((Some (\"contracts/Comptroller.py\" 308)) attr ((Some (\"contracts/Comptroller.py\" 308)) storage) \"maxPriceTimeDifference\")) ((Some (\"contracts/Comptroller.py\" 308)) literal (string \"STALE_ASSET_PRICE\"))))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 310)) mul_homo ((Some (\"contracts/Comptroller.py\" 310)) second ((Some (\"contracts/Comptroller.py\" 310)) var \"pricePair\")) ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) get_item ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"priceExp\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 309)) set ((Some (\"contracts/Comptroller.py\" 309)) attr ((Some (\"contracts/Comptroller.py\" 309)) get_item ((Some (\"contracts/Comptroller.py\" 309)) attr ((Some (\"contracts/Comptroller.py\" 309)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"price\") ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 310)) mul_homo ((Some (\"contracts/Comptroller.py\" 310)) second ((Some (\"contracts/Comptroller.py\" 310)) var \"pricePair\")) ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) get_item ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"priceExp\"))))) ((Some (\"contracts/Comptroller.py\" 311)) set ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) get_item ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"priceTimestamp\") ((Some (\"contracts/Comptroller.py\" 311)) first ((Some (\"contracts/Comptroller.py\" 311)) var \"pricePair\"))) ((Some (\"contracts/Comptroller.py\" 312)) set ((Some (\"contracts/Comptroller.py\" 312)) attr ((Some (\"contracts/Comptroller.py\" 312)) get_item ((Some (\"contracts/Comptroller.py\" 312)) attr ((Some (\"contracts/Comptroller.py\" 312)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 301)) var \"asset\")) \"updateLevel\") (None level)))))))))\nflags ()\nprivates ()\nviews ((onchain getMaxAssetsPerUser False (Some (\"contracts/Comptroller.py\" 562)) False \"\" (((Some (\"contracts/Comptroller.py\" 563)) result ((Some (\"contracts/Comptroller.py\" 563)) attr (None storage) \"maxAssetsPerUser\")))) (onchain getUserAssetsCount True (Some (\"contracts/Comptroller.py\" 552)) False \"\" (((Some (\"contracts/Comptroller.py\" 553)) set_type ((Some (\"contracts/Comptroller.py\" 552)) parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 811)) define_local \"unique_assets\" ((Some (\"contracts/Comptroller.py\" 811)) type_annotation ((Some (\"contracts/Comptroller.py\" 811)) set ) (set \"address\")) True) ((Some (\"contracts/Comptroller.py\" 813)) if_block ((Some (\"contracts/Comptroller.py\" 813)) contains ((Some (\"contracts/Comptroller.py\" 813)) attr (None storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 552)) parameter)) (((Some (\"contracts/Comptroller.py\" 814)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 814)) elements ((Some (\"contracts/Comptroller.py\" 814)) get_item ((Some (\"contracts/Comptroller.py\" 813)) attr (None storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 552)) parameter))) (((Some (\"contracts/Comptroller.py\" 815)) update_set ((Some (\"contracts/Comptroller.py\" 815)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 814)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 817)) if_block ((Some (\"contracts/Comptroller.py\" 817)) contains ((Some (\"contracts/Comptroller.py\" 817)) attr (None storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 552)) parameter)) (((Some (\"contracts/Comptroller.py\" 818)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 818)) elements ((Some (\"contracts/Comptroller.py\" 818)) get_item ((Some (\"contracts/Comptroller.py\" 817)) attr (None storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 552)) parameter))) (((Some (\"contracts/Comptroller.py\" 819)) update_set ((Some (\"contracts/Comptroller.py\" 819)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 818)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 554)) result ((Some (\"contracts/Comptroller.py\" 821)) size ((Some (\"contracts/Comptroller.py\" 821)) var \"unique_assets\"))))) (onchain liquidateCalculateSeizeTokens True (Some (\"contracts/Comptroller.py\" 403)) False \"\" (((Some (\"contracts/Comptroller.py\" 404)) set_type ((Some (\"contracts/Comptroller.py\" 403)) parameter) (record ((actualRepayAmount \"nat\") (cTokenBorrowed \"address\") (cTokenCollateral \"address\")) Variable (Some (\"contracts/interfaces/ComptrollerInterface.py\" 25)))) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 407)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenBorrowed\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 406)) define_local \"priceBorrowedMantissa\" ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 407)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenBorrowed\")) \"price\") True) ((Some (\"contracts/Comptroller.py\" 315)) verify ((Some (\"contracts/Comptroller.py\" 315)) eq (None level) ((Some (\"contracts/Comptroller.py\" 315)) attr ((Some (\"contracts/Comptroller.py\" 315)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 409)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenCollateral\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 315)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 408)) define_local \"priceCollateralMantissa\" ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 315)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 409)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenCollateral\")) \"price\") True) ((Some (\"contracts/Comptroller.py\" 411)) verify ((Some (\"contracts/Comptroller.py\" 411)) and ((Some (\"contracts/Comptroller.py\" 411)) neq ((Some (\"contracts/Comptroller.py\" 411)) attr ((Some (\"contracts/Comptroller.py\" 411)) var \"priceBorrowedMantissa\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 411)) literal (nat 0))) ((Some (\"contracts/Comptroller.py\" 412)) neq ((Some (\"contracts/Comptroller.py\" 412)) attr ((Some (\"contracts/Comptroller.py\" 412)) var \"priceCollateralMantissa\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 412)) literal (nat 0)))) ((Some (\"contracts/Comptroller.py\" 411)) literal (string \"CMPT_PRICE_ERROR\"))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 421)) attr (None storage) \"liquidationIncentiveMantissa\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 421)) attr (None storage) \"liquidationIncentiveMantissa\"))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 421)) var \"priceBorrowedMantissa\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/Comptroller.py\" 421)) attr (None storage) \"liquidationIncentiveMantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 421)) var \"priceBorrowedMantissa\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 420)) define_local \"numerator\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/Comptroller.py\" 421)) attr (None storage) \"liquidationIncentiveMantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 421)) var \"priceBorrowedMantissa\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")))) True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 417)) first ((Some (\"contracts/Comptroller.py\" 415)) open_variant ((Some (\"contracts/Comptroller.py\" 414)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 409)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 415)) literal (string \"INVALID EXCHANGE RATE VIEW\")))) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 423)) var \"priceCollateralMantissa\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 417)) first ((Some (\"contracts/Comptroller.py\" 415)) open_variant ((Some (\"contracts/Comptroller.py\" 414)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 409)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 415)) literal (string \"INVALID EXCHANGE RATE VIEW\")))))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 423)) var \"priceCollateralMantissa\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 417)) first ((Some (\"contracts/Comptroller.py\" 415)) open_variant ((Some (\"contracts/Comptroller.py\" 414)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 409)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 415)) literal (string \"INVALID EXCHANGE RATE VIEW\"))))) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 422)) define_local \"denominator\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 423)) var \"priceCollateralMantissa\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 417)) first ((Some (\"contracts/Comptroller.py\" 415)) open_variant ((Some (\"contracts/Comptroller.py\" 414)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 409)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 415)) literal (string \"INVALID EXCHANGE RATE VIEW\"))))) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")))) True) ((Some (\"contracts/utils/Exponential.py\" 241)) set_type ((Some (\"contracts/Comptroller.py\" 426)) var \"numerator\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 242)) set_type ((Some (\"contracts/Comptroller.py\" 426)) var \"denominator\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 243)) verify ((Some (\"contracts/utils/Exponential.py\" 243)) gt ((Some (\"contracts/utils/Exponential.py\" 243)) attr ((Some (\"contracts/Comptroller.py\" 426)) var \"denominator\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 243)) literal (intOrNat 0))) ((Some (\"contracts/utils/Exponential.py\" 243)) literal (string \"DIVISION_BY_ZERO\"))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 244)) div ((Some (\"contracts/utils/Exponential.py\" 244)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 244)) attr ((Some (\"contracts/Comptroller.py\" 426)) var \"numerator\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 243)) attr ((Some (\"contracts/Comptroller.py\" 426)) var \"denominator\") \"mantissa\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 425)) define_local \"ratio\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 244)) div ((Some (\"contracts/utils/Exponential.py\" 244)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 244)) attr ((Some (\"contracts/Comptroller.py\" 426)) var \"numerator\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 243)) attr ((Some (\"contracts/Comptroller.py\" 426)) var \"denominator\") \"mantissa\")))) True) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 429)) var \"ratio\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 429)) var \"ratio\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 429)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"actualRepayAmount\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 429)) var \"ratio\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 429)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"actualRepayAmount\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 429)) var \"ratio\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 429)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"actualRepayAmount\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 428)) result ((Some (\"contracts/Comptroller.py\" 428)) tuple ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 429)) var \"ratio\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 429)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"actualRepayAmount\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) ((Some (\"contracts/Comptroller.py\" 418)) second ((Some (\"contracts/Comptroller.py\" 415)) open_variant ((Some (\"contracts/Comptroller.py\" 414)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 409)) attr ((Some (\"contracts/Comptroller.py\" 403)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 415)) literal (string \"INVALID EXCHANGE RATE VIEW\")))))))) (onchain seizeAllowed True (Some (\"contracts/Comptroller.py\" 468)) False \"\" (((Some (\"contracts/Comptroller.py\" 469)) set_type ((Some (\"contracts/Comptroller.py\" 468)) parameter) (record ((cTokenBorrowed \"address\") (cTokenCollateral \"address\")) Variable (Some (\"contracts/Comptroller.py\" 469)))) ((Some (\"contracts/Comptroller.py\" 478)) if_block ((Some (\"contracts/Comptroller.py\" 478)) or ((Some (\"contracts/Comptroller.py\" 478)) not ((Some (\"contracts/Comptroller.py\" 472)) and ((Some (\"contracts/Comptroller.py\" 472)) contains ((Some (\"contracts/Comptroller.py\" 472)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 472)) attr ((Some (\"contracts/Comptroller.py\" 468)) parameter) \"cTokenBorrowed\")) ((Some (\"contracts/Comptroller.py\" 473)) attr ((Some (\"contracts/Comptroller.py\" 473)) get_item ((Some (\"contracts/Comptroller.py\" 472)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 472)) attr ((Some (\"contracts/Comptroller.py\" 468)) parameter) \"cTokenBorrowed\")) \"isListed\"))) ((Some (\"contracts/Comptroller.py\" 478)) not ((Some (\"contracts/Comptroller.py\" 475)) and ((Some (\"contracts/Comptroller.py\" 475)) contains ((Some (\"contracts/Comptroller.py\" 472)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 475)) attr ((Some (\"contracts/Comptroller.py\" 468)) parameter) \"cTokenCollateral\")) ((Some (\"contracts/Comptroller.py\" 476)) attr ((Some (\"contracts/Comptroller.py\" 476)) get_item ((Some (\"contracts/Comptroller.py\" 472)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 475)) attr ((Some (\"contracts/Comptroller.py\" 468)) parameter) \"cTokenCollateral\")) \"isListed\")))) (((Some (\"contracts/Comptroller.py\" 479)) result ((Some (\"contracts/Comptroller.py\" 479)) literal (bool False))))) (else_block (((Some (\"contracts/Comptroller.py\" 484)) if_block ((Some (\"contracts/Comptroller.py\" 484)) or ((Some (\"contracts/Comptroller.py\" 484)) is_variant ((Some (\"contracts/Comptroller.py\" 481)) view \"comptroller\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 472)) attr ((Some (\"contracts/Comptroller.py\" 468)) parameter) \"cTokenBorrowed\") \"address\") \"None\") ((Some (\"contracts/Comptroller.py\" 484)) is_variant ((Some (\"contracts/Comptroller.py\" 482)) view \"comptroller\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 475)) attr ((Some (\"contracts/Comptroller.py\" 468)) parameter) \"cTokenCollateral\") \"address\") \"None\")) (((Some (\"contracts/Comptroller.py\" 485)) result ((Some (\"contracts/Comptroller.py\" 485)) literal (bool False))))) (else_block (((Some (\"contracts/Comptroller.py\" 489)) result ((Some (\"contracts/Comptroller.py\" 489)) eq ((Some (\"contracts/Comptroller.py\" 487)) open_variant ((Some (\"contracts/Comptroller.py\" 481)) view \"comptroller\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 472)) attr ((Some (\"contracts/Comptroller.py\" 468)) parameter) \"cTokenBorrowed\") \"address\") \"Some\" \"None\") ((Some (\"contracts/Comptroller.py\" 488)) open_variant ((Some (\"contracts/Comptroller.py\" 482)) view \"comptroller\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 475)) attr ((Some (\"contracts/Comptroller.py\" 468)) parameter) \"cTokenCollateral\") \"address\") \"Some\" \"None\"))))))))))\nentrypoints_layout ()\ninitial_metadata ()\nbalance ())", + "export": "(template_id (None static_id 0) \nstorage ((Some (\"contracts/utils/Exponential.py\" 21)) record (account_liquidity ((Some (\"contracts/Comptroller.py\" 61)) type_annotation ((Some (\"contracts/Comptroller.py\" 61)) big_map ) (big_map \"address\" (record ((liquidity \"int\") (updateLevel \"nat\") (valid \"bool\")) Variable (Some (\"contracts/Comptroller.py\" 34)))))) (activeOperations ((Some (\"contracts/Comptroller.py\" 65)) type_annotation ((Some (\"contracts/Comptroller.py\" 65)) set ) (set \"nat\"))) (administrator ((Some (\"./deploy/compile_targets/CompileComptroller.py\" 10)) literal (address \"KT1NF6DKX5giazRTzPtEuNX1npkVcaoQkvK2\"))) (closeFactorMantissa ((Some (\"./deploy/compile_targets/CompileComptroller.py\" 12)) literal (nat 500000000000000000))) (collaterals ((Some (\"contracts/Comptroller.py\" 55)) type_annotation ((Some (\"contracts/Comptroller.py\" 55)) big_map ) (big_map \"address\" (set \"address\")))) (expScale ((Some (\"contracts/utils/Exponential.py\" 21)) literal (nat 1000000000000000000))) (halfExpScale ((Some (\"contracts/utils/Exponential.py\" 21)) literal (nat 500000000000000000))) (liquidationIncentiveMantissa ((Some (\"./deploy/compile_targets/CompileComptroller.py\" 13)) literal (nat 1050000000000000000))) (loans ((Some (\"contracts/Comptroller.py\" 58)) type_annotation ((Some (\"contracts/Comptroller.py\" 58)) big_map ) (big_map \"address\" (set \"address\")))) (marketNameToAddress ((Some (\"contracts/Comptroller.py\" 52)) type_annotation ((Some (\"contracts/Comptroller.py\" 52)) map ) (map \"string\" \"address\"))) (markets ((Some (\"contracts/Comptroller.py\" 50)) type_annotation ((Some (\"contracts/Comptroller.py\" 50)) big_map ) (big_map \"address\" (record ((borrowPaused \"bool\") (collateralFactor (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) (isListed \"bool\") (mintPaused \"bool\") (name \"string\") (price (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) (priceExp \"nat\") (priceTimestamp \"timestamp\") (updateLevel \"nat\")) Variable (Some (\"contracts/Comptroller.py\" 20)))))) (maxAssetsPerUser ((Some (\"contracts/utils/Exponential.py\" 21)) literal (intOrNat 15))) (maxPriceTimeDifference ((Some (\"contracts/Comptroller.py\" 68)) literal (int 86400))) (oracleAddress ((Some (\"./deploy/compile_targets/CompileComptroller.py\" 11)) literal (address \"KT1LDtNKDnpziwSrmSfx3xCbs7nBMg7VFp4m\"))) (pendingAdministrator (None variant \"None\" (None literal (unit)))) (transferPaused ((Some (\"contracts/Comptroller.py\" 53)) literal (bool True))))\nstorage_type (())\nentrypoints ((acceptGovernance True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 589)) (((Some (\"contracts/Comptroller.py\" 590)) verify ((Some (\"contracts/Comptroller.py\" 590)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 590)) MUL ((Some (\"contracts/Comptroller.py\" 590)) type_annotation ((Some (\"contracts/Comptroller.py\" 590)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 590)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 590)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 592)) set_type (None parameter) \"unit\") ((Some (\"contracts/Comptroller.py\" 593)) verify ((Some (\"contracts/Comptroller.py\" 593)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 593)) open_variant ((Some (\"contracts/Comptroller.py\" 593)) attr ((Some (\"contracts/Comptroller.py\" 593)) storage) \"pendingAdministrator\") \"Some\" ((Some (\"contracts/Comptroller.py\" 593)) literal (string \"CMPT_NOT_SET_PENDING_ADMIN\")))) ((Some (\"contracts/Comptroller.py\" 593)) literal (string \"CMPT_NOT_PENDING_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 595)) set ((Some (\"contracts/Comptroller.py\" 595)) attr ((Some (\"contracts/Comptroller.py\" 595)) storage) \"administrator\") ((Some (\"contracts/Comptroller.py\" 595)) open_variant ((Some (\"contracts/Comptroller.py\" 595)) attr ((Some (\"contracts/Comptroller.py\" 595)) storage) \"pendingAdministrator\") \"Some\" \"None\")) ((Some (\"contracts/Comptroller.py\" 596)) set ((Some (\"contracts/Comptroller.py\" 596)) attr ((Some (\"contracts/Comptroller.py\" 596)) storage) \"pendingAdministrator\") (None variant \"None\" (None literal (unit)))))) (borrowAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 212)) (((Some (\"contracts/Comptroller.py\" 213)) verify ((Some (\"contracts/Comptroller.py\" 213)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 213)) MUL ((Some (\"contracts/Comptroller.py\" 213)) type_annotation ((Some (\"contracts/Comptroller.py\" 213)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 213)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 213)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 215)) set_type (None parameter) (record ((borrowAmount \"nat\") (borrower \"address\") (cToken \"address\")) (Value ((\"cToken\") ((\"borrower\") (\"borrowAmount\")))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 9)))) ((Some (\"contracts/Comptroller.py\" 216)) verify ((Some (\"contracts/Comptroller.py\" 217)) not ((Some (\"contracts/Comptroller.py\" 217)) attr ((Some (\"contracts/Comptroller.py\" 217)) get_item ((Some (\"contracts/Comptroller.py\" 217)) attr ((Some (\"contracts/Comptroller.py\" 217)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"borrowPaused\")) ((Some (\"contracts/Comptroller.py\" 216)) literal (string \"CMPT_BORROW_PAUSED\"))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 825)) define_local \"is_new\" ((Some (\"contracts/Comptroller.py\" 825)) literal (bool True)) True) ((Some (\"contracts/Comptroller.py\" 827)) if_block ((Some (\"contracts/Comptroller.py\" 827)) contains ((Some (\"contracts/Comptroller.py\" 827)) attr ((Some (\"contracts/Comptroller.py\" 827)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 828)) if_block ((Some (\"contracts/Comptroller.py\" 828)) contains ((Some (\"contracts/Comptroller.py\" 828)) get_item ((Some (\"contracts/Comptroller.py\" 828)) attr ((Some (\"contracts/Comptroller.py\" 828)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) (((Some (\"contracts/Comptroller.py\" 829)) set ((Some (\"contracts/Comptroller.py\" 829)) var \"is_new\") ((Some (\"contracts/Comptroller.py\" 829)) literal (bool False))))))) ((Some (\"contracts/Comptroller.py\" 831)) if_block ((Some (\"contracts/Comptroller.py\" 831)) and ((Some (\"contracts/Comptroller.py\" 831)) contains ((Some (\"contracts/Comptroller.py\" 831)) attr ((Some (\"contracts/Comptroller.py\" 831)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 831)) var \"is_new\")) (((Some (\"contracts/Comptroller.py\" 832)) if_block ((Some (\"contracts/Comptroller.py\" 832)) contains ((Some (\"contracts/Comptroller.py\" 832)) get_item ((Some (\"contracts/Comptroller.py\" 832)) attr ((Some (\"contracts/Comptroller.py\" 832)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) (((Some (\"contracts/Comptroller.py\" 833)) set ((Some (\"contracts/Comptroller.py\" 833)) var \"is_new\") ((Some (\"contracts/Comptroller.py\" 833)) literal (bool False))))))) ((Some (\"contracts/Comptroller.py\" 219)) if_block ((Some (\"contracts/Comptroller.py\" 835)) var \"is_new\") (((Some (\"contracts/Comptroller.py\" 812)) define_local \"unique_assets\" ((Some (\"contracts/Comptroller.py\" 812)) type_annotation ((Some (\"contracts/Comptroller.py\" 812)) set ) (set \"address\")) True) ((Some (\"contracts/Comptroller.py\" 814)) if_block ((Some (\"contracts/Comptroller.py\" 814)) contains ((Some (\"contracts/Comptroller.py\" 814)) attr ((Some (\"contracts/Comptroller.py\" 814)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 815)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 815)) elements ((Some (\"contracts/Comptroller.py\" 815)) get_item ((Some (\"contracts/Comptroller.py\" 815)) attr ((Some (\"contracts/Comptroller.py\" 815)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 816)) update_set ((Some (\"contracts/Comptroller.py\" 816)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 815)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 818)) if_block ((Some (\"contracts/Comptroller.py\" 818)) contains ((Some (\"contracts/Comptroller.py\" 818)) attr ((Some (\"contracts/Comptroller.py\" 818)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 819)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 819)) elements ((Some (\"contracts/Comptroller.py\" 819)) get_item ((Some (\"contracts/Comptroller.py\" 819)) attr ((Some (\"contracts/Comptroller.py\" 819)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 820)) update_set ((Some (\"contracts/Comptroller.py\" 820)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 819)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 221)) verify ((Some (\"contracts/Comptroller.py\" 221)) lt ((Some (\"contracts/Comptroller.py\" 822)) size ((Some (\"contracts/Comptroller.py\" 822)) var \"unique_assets\")) ((Some (\"contracts/Comptroller.py\" 221)) attr ((Some (\"contracts/Comptroller.py\" 221)) storage) \"maxAssetsPerUser\")) ((Some (\"contracts/Comptroller.py\" 221)) literal (string \"CMPT_TOO_MANY_ASSETS\"))))) ((Some (\"contracts/Comptroller.py\" 223)) if_block ((Some (\"contracts/Comptroller.py\" 223)) not ((Some (\"contracts/Comptroller.py\" 223)) contains ((Some (\"contracts/Comptroller.py\" 223)) attr ((Some (\"contracts/Comptroller.py\" 223)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 225)) verify ((Some (\"contracts/Comptroller.py\" 225)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 225)) literal (string \"CMPT_INVALID_BORROW_SENDER\"))))) ((Some (\"contracts/Comptroller.py\" 227)) if_block ((Some (\"contracts/Comptroller.py\" 227)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) (((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 239)) if_block ((Some (\"contracts/Comptroller.py\" 239)) contains ((Some (\"contracts/Comptroller.py\" 239)) attr ((Some (\"contracts/Comptroller.py\" 239)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 240)) update_set ((Some (\"contracts/Comptroller.py\" 240)) get_item ((Some (\"contracts/Comptroller.py\" 240)) attr ((Some (\"contracts/Comptroller.py\" 240)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\") True))) (else_block (((Some (\"contracts/Comptroller.py\" 242)) set ((Some (\"contracts/Comptroller.py\" 242)) get_item ((Some (\"contracts/Comptroller.py\" 242)) attr ((Some (\"contracts/Comptroller.py\" 242)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 242)) set ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\"))))))) ((Some (\"contracts/Comptroller.py\" 799)) verify ((Some (\"contracts/Comptroller.py\" 799)) contains ((Some (\"contracts/Comptroller.py\" 799)) attr ((Some (\"contracts/Comptroller.py\" 799)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 799)) literal (string \"CMPT_LIQUIDITY_ABSENT\"))) ((Some (\"contracts/Comptroller.py\" 801)) verify ((Some (\"contracts/Comptroller.py\" 802)) attr ((Some (\"contracts/Comptroller.py\" 802)) get_item ((Some (\"contracts/Comptroller.py\" 802)) attr ((Some (\"contracts/Comptroller.py\" 802)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 801)) literal (string \"CMPT_LIQUIDITY_INVALID\"))) ((Some (\"contracts/utils/Exponential.py\" 193)) set_type (None level) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 194)) set_type ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) get_item ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"updateLevel\") \"nat\") ((Some (\"contracts/Comptroller.py\" 803)) define_local \"compute_Comptroller_803\" ((Some (\"contracts/utils/Exponential.py\" 195)) open_variant ((Some (\"contracts/utils/Exponential.py\" 195)) is_nat ((Some (\"contracts/utils/Exponential.py\" 195)) sub (None level) ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) get_item ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"updateLevel\"))) \"Some\" ((Some (\"contracts/utils/Exponential.py\" 195)) literal (string \"SUBTRACTION_UNDERFLOW\"))) True) ((Some (\"contracts/Comptroller.py\" 805)) verify ((Some (\"contracts/Comptroller.py\" 805)) eq ((Some (\"contracts/Comptroller.py\" 803)) var \"compute_Comptroller_803\") ((Some (\"contracts/Comptroller.py\" 805)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 805)) literal (string \"CMPT_LIQUIDITY_OLD\"))) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 230)) attr (None parameter) \"borrowAmount\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 230)) attr (None parameter) \"borrowAmount\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 230)) attr (None parameter) \"borrowAmount\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 195)) define_local \"compute_Comptroller_195\" ((Some (\"contracts/Comptroller.py\" 195)) sub ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) get_item ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"liquidity\") ((Some (\"contracts/Comptroller.py\" 195)) to_int ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 217)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 230)) attr (None parameter) \"borrowAmount\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 197)) verify ((Some (\"contracts/Comptroller.py\" 197)) ge ((Some (\"contracts/Comptroller.py\" 195)) var \"compute_Comptroller_195\") ((Some (\"contracts/Comptroller.py\" 197)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 197)) literal (string \"CMPT_REDEEMER_SHORTFALL\"))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 219)) attr (None parameter) \"borrower\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))))) (disableMarket True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 771)) (((Some (\"contracts/Comptroller.py\" 772)) verify ((Some (\"contracts/Comptroller.py\" 772)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 772)) MUL ((Some (\"contracts/Comptroller.py\" 772)) type_annotation ((Some (\"contracts/Comptroller.py\" 772)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 772)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 772)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 774)) set_type (None parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") (None parameter)) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") (None parameter)) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 777)) set ((Some (\"contracts/Comptroller.py\" 777)) attr ((Some (\"contracts/Comptroller.py\" 777)) get_item ((Some (\"contracts/Comptroller.py\" 777)) attr ((Some (\"contracts/Comptroller.py\" 777)) storage) \"markets\") (None parameter)) \"isListed\") ((Some (\"contracts/Comptroller.py\" 777)) literal (bool False))))) (enterMarkets True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 79)) (((Some (\"contracts/Comptroller.py\" 80)) verify ((Some (\"contracts/Comptroller.py\" 80)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 80)) MUL ((Some (\"contracts/Comptroller.py\" 80)) type_annotation ((Some (\"contracts/Comptroller.py\" 80)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 80)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 80)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 82)) set_type (None parameter) (list \"address\")) ((Some (\"contracts/Comptroller.py\" 812)) define_local \"unique_assets\" ((Some (\"contracts/Comptroller.py\" 812)) type_annotation ((Some (\"contracts/Comptroller.py\" 812)) set ) (set \"address\")) True) ((Some (\"contracts/Comptroller.py\" 814)) if_block ((Some (\"contracts/Comptroller.py\" 814)) contains ((Some (\"contracts/Comptroller.py\" 814)) attr ((Some (\"contracts/Comptroller.py\" 814)) storage) \"collaterals\") (None sender)) (((Some (\"contracts/Comptroller.py\" 815)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 815)) elements ((Some (\"contracts/Comptroller.py\" 815)) get_item ((Some (\"contracts/Comptroller.py\" 815)) attr ((Some (\"contracts/Comptroller.py\" 815)) storage) \"collaterals\") (None sender))) (((Some (\"contracts/Comptroller.py\" 816)) update_set ((Some (\"contracts/Comptroller.py\" 816)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 815)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 818)) if_block ((Some (\"contracts/Comptroller.py\" 818)) contains ((Some (\"contracts/Comptroller.py\" 818)) attr ((Some (\"contracts/Comptroller.py\" 818)) storage) \"loans\") (None sender)) (((Some (\"contracts/Comptroller.py\" 819)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 819)) elements ((Some (\"contracts/Comptroller.py\" 819)) get_item ((Some (\"contracts/Comptroller.py\" 819)) attr ((Some (\"contracts/Comptroller.py\" 819)) storage) \"loans\") (None sender))) (((Some (\"contracts/Comptroller.py\" 820)) update_set ((Some (\"contracts/Comptroller.py\" 820)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 819)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 83)) define_local \"currentAssetCount\" ((Some (\"contracts/Comptroller.py\" 822)) size ((Some (\"contracts/Comptroller.py\" 822)) var \"unique_assets\")) True) ((Some (\"contracts/Comptroller.py\" 84)) for_group \"token\" (None parameter) (((Some (\"contracts/Comptroller.py\" 825)) define_local \"is_new\" ((Some (\"contracts/Comptroller.py\" 825)) literal (bool True)) True) ((Some (\"contracts/Comptroller.py\" 827)) if_block ((Some (\"contracts/Comptroller.py\" 827)) contains ((Some (\"contracts/Comptroller.py\" 827)) attr ((Some (\"contracts/Comptroller.py\" 827)) storage) \"collaterals\") (None sender)) (((Some (\"contracts/Comptroller.py\" 828)) if_block ((Some (\"contracts/Comptroller.py\" 828)) contains ((Some (\"contracts/Comptroller.py\" 828)) get_item ((Some (\"contracts/Comptroller.py\" 828)) attr ((Some (\"contracts/Comptroller.py\" 828)) storage) \"collaterals\") (None sender)) ((Some (\"contracts/Comptroller.py\" 84)) var \"token\")) (((Some (\"contracts/Comptroller.py\" 829)) set ((Some (\"contracts/Comptroller.py\" 829)) var \"is_new\") ((Some (\"contracts/Comptroller.py\" 829)) literal (bool False))))))) ((Some (\"contracts/Comptroller.py\" 831)) if_block ((Some (\"contracts/Comptroller.py\" 831)) and ((Some (\"contracts/Comptroller.py\" 831)) contains ((Some (\"contracts/Comptroller.py\" 831)) attr ((Some (\"contracts/Comptroller.py\" 831)) storage) \"loans\") (None sender)) ((Some (\"contracts/Comptroller.py\" 831)) var \"is_new\")) (((Some (\"contracts/Comptroller.py\" 832)) if_block ((Some (\"contracts/Comptroller.py\" 832)) contains ((Some (\"contracts/Comptroller.py\" 832)) get_item ((Some (\"contracts/Comptroller.py\" 832)) attr ((Some (\"contracts/Comptroller.py\" 832)) storage) \"loans\") (None sender)) ((Some (\"contracts/Comptroller.py\" 84)) var \"token\")) (((Some (\"contracts/Comptroller.py\" 833)) set ((Some (\"contracts/Comptroller.py\" 833)) var \"is_new\") ((Some (\"contracts/Comptroller.py\" 833)) literal (bool False))))))) ((Some (\"contracts/Comptroller.py\" 85)) if_block ((Some (\"contracts/Comptroller.py\" 835)) var \"is_new\") (((Some (\"contracts/Comptroller.py\" 86)) verify ((Some (\"contracts/Comptroller.py\" 86)) lt ((Some (\"contracts/Comptroller.py\" 86)) var \"currentAssetCount\") ((Some (\"contracts/Comptroller.py\" 86)) attr ((Some (\"contracts/Comptroller.py\" 86)) storage) \"maxAssetsPerUser\")) ((Some (\"contracts/Comptroller.py\" 86)) literal (string \"CMPT_TOO_MANY_ASSETS\"))) ((Some (\"contracts/Comptroller.py\" 87)) set ((Some (\"contracts/Comptroller.py\" 87)) var \"currentAssetCount\") ((Some (\"contracts/Comptroller.py\" 87)) add ((Some (\"contracts/Comptroller.py\" 87)) var \"currentAssetCount\") ((Some (\"contracts/Comptroller.py\" 87)) literal (intOrNat 1)))))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 84)) var \"token\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 84)) var \"token\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 93)) if_block ((Some (\"contracts/Comptroller.py\" 93)) contains ((Some (\"contracts/Comptroller.py\" 93)) attr ((Some (\"contracts/Comptroller.py\" 93)) storage) \"collaterals\") (None sender)) (((Some (\"contracts/Comptroller.py\" 94)) update_set ((Some (\"contracts/Comptroller.py\" 94)) get_item ((Some (\"contracts/Comptroller.py\" 94)) attr ((Some (\"contracts/Comptroller.py\" 94)) storage) \"collaterals\") (None sender)) ((Some (\"contracts/Comptroller.py\" 84)) var \"token\") True))) (else_block (((Some (\"contracts/Comptroller.py\" 96)) set ((Some (\"contracts/Comptroller.py\" 96)) get_item ((Some (\"contracts/Comptroller.py\" 96)) attr ((Some (\"contracts/Comptroller.py\" 96)) storage) \"collaterals\") (None sender)) ((Some (\"contracts/Comptroller.py\" 96)) set ((Some (\"contracts/Comptroller.py\" 84)) var \"token\"))))))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") (None sender)) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") (None sender)) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))))) (exitMarket True None None None True None (Some (\"contracts/Comptroller.py\" 111)) (((Some (\"contracts/Comptroller.py\" 112)) verify ((Some (\"contracts/Comptroller.py\" 112)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 112)) MUL ((Some (\"contracts/Comptroller.py\" 112)) type_annotation ((Some (\"contracts/Comptroller.py\" 112)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 112)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 112)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 114)) set_type (None parameter) \"address\") ((Some (\"contracts/utils/OperationProtector.py\" 46)) update_set ((Some (\"contracts/utils/OperationProtector.py\" 46)) attr ((Some (\"contracts/utils/OperationProtector.py\" 46)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 28)) literal (nat 1)) True) ((Some (\"contracts/Comptroller.py\" 119)) set ((Some (\"contracts/Comptroller.py\" 119)) operations) ((Some (\"contracts/Comptroller.py\" 119)) cons ((Some (\"contracts/Comptroller.py\" 119)) transfer ((Some (\"contracts/Comptroller.py\" 119)) tuple (None sender) ((Some (\"contracts/Comptroller.py\" 119)) self \"setAccountSnapAndExitMarket\")) ((Some (\"contracts/Comptroller.py\" 120)) literal (mutez 0)) ((Some (\"contracts/Comptroller.py\" 118)) open_variant ((Some (\"contracts/Comptroller.py\" 117)) contract \"getAccountSnapshot\" (tuple \"address\" (contract (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) (None parameter)) \"Some\" \"None\")) ((Some (\"contracts/Comptroller.py\" 119)) operations))))) (hardResetOp True (Some True) None None True None (Some (\"contracts/utils/OperationProtector.py\" 56)) (((Some (\"contracts/utils/OperationProtector.py\" 57)) set_type (None parameter) \"unit\") ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/utils/OperationProtector.py\" 59)) set ((Some (\"contracts/utils/OperationProtector.py\" 59)) attr ((Some (\"contracts/utils/OperationProtector.py\" 59)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 59)) set )))) (liquidateBorrowAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 439)) (((Some (\"contracts/Comptroller.py\" 440)) verify ((Some (\"contracts/Comptroller.py\" 440)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 440)) MUL ((Some (\"contracts/Comptroller.py\" 440)) type_annotation ((Some (\"contracts/Comptroller.py\" 440)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 440)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 440)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 442)) set_type (None parameter) (record ((borrower \"address\") (cTokenBorrowed \"address\") (cTokenCollateral \"address\") (liquidator \"address\") (repayAmount \"nat\")) Variable (Some (\"contracts/interfaces/ComptrollerInterface.py\" 28)))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 444)) attr (None parameter) \"cTokenBorrowed\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 444)) attr (None parameter) \"cTokenBorrowed\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 445)) attr (None parameter) \"cTokenCollateral\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 445)) attr (None parameter) \"cTokenCollateral\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 496)) define_local \"calculation\" ((Some (\"contracts/Comptroller.py\" 496)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 497)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 497)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 498)) define_local \"temp\" ((Some (\"contracts/Comptroller.py\" 498)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 499)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 498)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 500)) if_block ((Some (\"contracts/Comptroller.py\" 500)) contains ((Some (\"contracts/Comptroller.py\" 500)) attr ((Some (\"contracts/Comptroller.py\" 500)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 501)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 501)) elements ((Some (\"contracts/Comptroller.py\" 501)) get_item ((Some (\"contracts/Comptroller.py\" 501)) attr ((Some (\"contracts/Comptroller.py\" 501)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 530)) verify ((Some (\"contracts/Comptroller.py\" 530)) is_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 530)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 531)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 531)) open_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 532)) define_local \"compute_Comptroller_532\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 536)) define_local \"compute_Comptroller_536\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 537)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 537)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 538)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 540)) if_block ((Some (\"contracts/Comptroller.py\" 540)) and ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) get_item ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 541)) set ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) add ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 543)) set ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) add ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 506)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 506)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 507)) set ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 507)) add ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\"))))))) ((Some (\"contracts/Comptroller.py\" 508)) if_block ((Some (\"contracts/Comptroller.py\" 508)) contains ((Some (\"contracts/Comptroller.py\" 508)) attr ((Some (\"contracts/Comptroller.py\" 508)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 509)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 509)) elements ((Some (\"contracts/Comptroller.py\" 509)) get_item ((Some (\"contracts/Comptroller.py\" 509)) attr ((Some (\"contracts/Comptroller.py\" 509)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\"))) (((Some (\"contracts/Comptroller.py\" 511)) if_block ((Some (\"contracts/Comptroller.py\" 511)) contains ((Some (\"contracts/Comptroller.py\" 511)) attr ((Some (\"contracts/Comptroller.py\" 511)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 512)) if_block ((Some (\"contracts/Comptroller.py\" 512)) not ((Some (\"contracts/Comptroller.py\" 512)) contains ((Some (\"contracts/Comptroller.py\" 512)) get_item ((Some (\"contracts/Comptroller.py\" 512)) attr ((Some (\"contracts/Comptroller.py\" 512)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\")) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\"))) (((Some (\"contracts/Comptroller.py\" 530)) verify ((Some (\"contracts/Comptroller.py\" 530)) is_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 530)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 531)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 531)) open_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 532)) define_local \"compute_Comptroller_532\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 536)) define_local \"compute_Comptroller_536\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 537)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 537)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 538)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 540)) if_block ((Some (\"contracts/Comptroller.py\" 540)) and ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) get_item ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 541)) set ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) add ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 543)) set ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) add ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 517)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 517)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 518)) set ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 518)) add ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\"))))))) (else_block (((Some (\"contracts/Comptroller.py\" 530)) verify ((Some (\"contracts/Comptroller.py\" 530)) is_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 530)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 531)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 531)) open_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 532)) define_local \"compute_Comptroller_532\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 536)) define_local \"compute_Comptroller_536\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 537)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 537)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 538)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 540)) if_block ((Some (\"contracts/Comptroller.py\" 540)) and ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) get_item ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 541)) set ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) add ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 543)) set ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) add ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 522)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 522)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 523)) set ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 523)) add ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\"))))))))) ((Some (\"contracts/Comptroller.py\" 388)) define_local \"calcLiquidity\" ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") True) ((Some (\"contracts/Comptroller.py\" 390)) define_local \"compute_Comptroller_390\" ((Some (\"contracts/Comptroller.py\" 391)) sub ((Some (\"contracts/Comptroller.py\" 391)) attr ((Some (\"contracts/Comptroller.py\" 389)) var \"calcLiquidity\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 391)) attr ((Some (\"contracts/Comptroller.py\" 389)) var \"calcLiquidity\") \"sumBorrowPlusEffects\")) True) ((Some (\"contracts/Comptroller.py\" 447)) define_local \"liquidtiy\" ((Some (\"contracts/Comptroller.py\" 390)) var \"compute_Comptroller_390\") True) ((Some (\"contracts/Comptroller.py\" 450)) verify ((Some (\"contracts/Comptroller.py\" 450)) lt ((Some (\"contracts/Comptroller.py\" 450)) var \"liquidtiy\") ((Some (\"contracts/Comptroller.py\" 450)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 450)) literal (string \"CMPT_INSUFFICIENT_SHORTFALL\"))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 456)) attr ((Some (\"contracts/Comptroller.py\" 456)) storage) \"closeFactorMantissa\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 456)) attr ((Some (\"contracts/Comptroller.py\" 456)) storage) \"closeFactorMantissa\"))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 456)) attr ((Some (\"contracts/Comptroller.py\" 456)) storage) \"closeFactorMantissa\"))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 452)) first ((Some (\"contracts/Comptroller.py\" 453)) open_variant ((Some (\"contracts/Comptroller.py\" 452)) view \"borrowBalanceStoredView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 444)) attr (None parameter) \"cTokenBorrowed\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 453)) literal (string \"INVALID ACCOUNT BORROW BALANCE VIEW\")))) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/Comptroller.py\" 456)) attr ((Some (\"contracts/Comptroller.py\" 456)) storage) \"closeFactorMantissa\") ((Some (\"contracts/Comptroller.py\" 452)) first ((Some (\"contracts/Comptroller.py\" 453)) open_variant ((Some (\"contracts/Comptroller.py\" 452)) view \"borrowBalanceStoredView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 444)) attr (None parameter) \"cTokenBorrowed\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 453)) literal (string \"INVALID ACCOUNT BORROW BALANCE VIEW\"))))) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/Comptroller.py\" 456)) attr ((Some (\"contracts/Comptroller.py\" 456)) storage) \"closeFactorMantissa\") ((Some (\"contracts/Comptroller.py\" 452)) first ((Some (\"contracts/Comptroller.py\" 453)) open_variant ((Some (\"contracts/Comptroller.py\" 452)) view \"borrowBalanceStoredView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 444)) attr (None parameter) \"cTokenBorrowed\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 453)) literal (string \"INVALID ACCOUNT BORROW BALANCE VIEW\"))))))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 455)) define_local \"maxClose\" ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/Comptroller.py\" 456)) attr ((Some (\"contracts/Comptroller.py\" 456)) storage) \"closeFactorMantissa\") ((Some (\"contracts/Comptroller.py\" 452)) first ((Some (\"contracts/Comptroller.py\" 453)) open_variant ((Some (\"contracts/Comptroller.py\" 452)) view \"borrowBalanceStoredView\" ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\") ((Some (\"contracts/Comptroller.py\" 444)) attr (None parameter) \"cTokenBorrowed\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 453)) literal (string \"INVALID ACCOUNT BORROW BALANCE VIEW\"))))) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")) True) ((Some (\"contracts/Comptroller.py\" 458)) verify ((Some (\"contracts/Comptroller.py\" 458)) ge ((Some (\"contracts/Comptroller.py\" 458)) var \"maxClose\") ((Some (\"contracts/Comptroller.py\" 458)) attr (None parameter) \"repayAmount\")) ((Some (\"contracts/Comptroller.py\" 458)) literal (string \"CMPT_TOO_MUCH_REPAY\"))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 448)) attr (None parameter) \"borrower\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 461)) attr (None parameter) \"liquidator\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 461)) attr (None parameter) \"liquidator\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))))) (mintAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 153)) (((Some (\"contracts/Comptroller.py\" 154)) verify ((Some (\"contracts/Comptroller.py\" 154)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 154)) MUL ((Some (\"contracts/Comptroller.py\" 154)) type_annotation ((Some (\"contracts/Comptroller.py\" 154)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 154)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 154)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 156)) set_type (None parameter) (record ((cToken \"address\") (mintAmount \"nat\") (minter \"address\")) (Value ((\"cToken\") ((\"minter\") (\"mintAmount\")))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 7)))) ((Some (\"contracts/Comptroller.py\" 157)) verify ((Some (\"contracts/Comptroller.py\" 158)) not ((Some (\"contracts/Comptroller.py\" 158)) attr ((Some (\"contracts/Comptroller.py\" 158)) get_item ((Some (\"contracts/Comptroller.py\" 158)) attr ((Some (\"contracts/Comptroller.py\" 158)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 158)) attr (None parameter) \"cToken\")) \"mintPaused\")) ((Some (\"contracts/Comptroller.py\" 157)) literal (string \"CMPT_MINT_PAUSED\"))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 158)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 158)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 160)) attr (None parameter) \"minter\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 160)) attr (None parameter) \"minter\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))))) (redeemAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 175)) (((Some (\"contracts/Comptroller.py\" 176)) verify ((Some (\"contracts/Comptroller.py\" 176)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 176)) MUL ((Some (\"contracts/Comptroller.py\" 176)) type_annotation ((Some (\"contracts/Comptroller.py\" 176)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 176)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 176)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 178)) set_type (None parameter) (record ((cToken \"address\") (redeemAmount \"nat\") (redeemer \"address\")) (Value ((\"cToken\") ((\"redeemer\") (\"redeemAmount\")))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 11)))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 185)) if_block ((Some (\"contracts/Comptroller.py\" 185)) and ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) get_item ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\"))) (((Some (\"contracts/Comptroller.py\" 187)) if_block ((Some (\"contracts/Comptroller.py\" 187)) and ((Some (\"contracts/Comptroller.py\" 187)) contains ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) ((Some (\"contracts/Comptroller.py\" 187)) neq ((Some (\"contracts/Comptroller.py\" 187)) size ((Some (\"contracts/Comptroller.py\" 187)) get_item ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\"))) ((Some (\"contracts/Comptroller.py\" 187)) literal (intOrNat 0)))) (((Some (\"contracts/Comptroller.py\" 799)) verify ((Some (\"contracts/Comptroller.py\" 799)) contains ((Some (\"contracts/Comptroller.py\" 799)) attr ((Some (\"contracts/Comptroller.py\" 799)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) ((Some (\"contracts/Comptroller.py\" 799)) literal (string \"CMPT_LIQUIDITY_ABSENT\"))) ((Some (\"contracts/Comptroller.py\" 801)) verify ((Some (\"contracts/Comptroller.py\" 802)) attr ((Some (\"contracts/Comptroller.py\" 802)) get_item ((Some (\"contracts/Comptroller.py\" 802)) attr ((Some (\"contracts/Comptroller.py\" 802)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 801)) literal (string \"CMPT_LIQUIDITY_INVALID\"))) ((Some (\"contracts/utils/Exponential.py\" 193)) set_type (None level) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 194)) set_type ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) get_item ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"updateLevel\") \"nat\") ((Some (\"contracts/Comptroller.py\" 803)) define_local \"compute_Comptroller_803\" ((Some (\"contracts/utils/Exponential.py\" 195)) open_variant ((Some (\"contracts/utils/Exponential.py\" 195)) is_nat ((Some (\"contracts/utils/Exponential.py\" 195)) sub (None level) ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) get_item ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"updateLevel\"))) \"Some\" ((Some (\"contracts/utils/Exponential.py\" 195)) literal (string \"SUBTRACTION_UNDERFLOW\"))) True) ((Some (\"contracts/Comptroller.py\" 805)) verify ((Some (\"contracts/Comptroller.py\" 805)) eq ((Some (\"contracts/Comptroller.py\" 803)) var \"compute_Comptroller_803\") ((Some (\"contracts/Comptroller.py\" 805)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 805)) literal (string \"CMPT_LIQUIDITY_OLD\"))) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemAmount\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemAmount\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemAmount\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 195)) define_local \"compute_Comptroller_195\" ((Some (\"contracts/Comptroller.py\" 195)) sub ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) get_item ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"liquidity\") ((Some (\"contracts/Comptroller.py\" 195)) to_int ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemAmount\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 197)) verify ((Some (\"contracts/Comptroller.py\" 197)) ge ((Some (\"contracts/Comptroller.py\" 195)) var \"compute_Comptroller_195\") ((Some (\"contracts/Comptroller.py\" 197)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 197)) literal (string \"CMPT_REDEEMER_SHORTFALL\"))))))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 180)) attr (None parameter) \"redeemer\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))))) (removeFromLoans True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 245)) (((Some (\"contracts/Comptroller.py\" 246)) verify ((Some (\"contracts/Comptroller.py\" 246)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 246)) MUL ((Some (\"contracts/Comptroller.py\" 246)) type_annotation ((Some (\"contracts/Comptroller.py\" 246)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 246)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 246)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") (None sender)) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") (None sender)) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 249)) if_block ((Some (\"contracts/Comptroller.py\" 249)) and ((Some (\"contracts/Comptroller.py\" 249)) contains ((Some (\"contracts/Comptroller.py\" 249)) attr ((Some (\"contracts/Comptroller.py\" 249)) storage) \"loans\") (None parameter)) ((Some (\"contracts/Comptroller.py\" 249)) contains ((Some (\"contracts/Comptroller.py\" 249)) get_item ((Some (\"contracts/Comptroller.py\" 249)) attr ((Some (\"contracts/Comptroller.py\" 249)) storage) \"loans\") (None parameter)) (None sender))) (((Some (\"contracts/Comptroller.py\" 250)) update_set ((Some (\"contracts/Comptroller.py\" 250)) get_item ((Some (\"contracts/Comptroller.py\" 250)) attr ((Some (\"contracts/Comptroller.py\" 250)) storage) \"loans\") (None parameter)) (None sender) False))))) (repayBorrowAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 262)) (((Some (\"contracts/Comptroller.py\" 263)) verify ((Some (\"contracts/Comptroller.py\" 263)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 263)) MUL ((Some (\"contracts/Comptroller.py\" 263)) type_annotation ((Some (\"contracts/Comptroller.py\" 263)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 263)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 263)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 265)) set_type (None parameter) (record ((borrower \"address\") (cToken \"address\") (payer \"address\") (repayAmount \"nat\")) (Value ((\"cToken\") ((\"payer\") ((\"borrower\") (\"repayAmount\"))))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 13)))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 266)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 266)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 267)) attr (None parameter) \"borrower\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 267)) attr (None parameter) \"borrower\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 268)) attr (None parameter) \"payer\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 268)) attr (None parameter) \"payer\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))))) (setAccountLiquidityWithView True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 341)) (((Some (\"contracts/Comptroller.py\" 342)) verify ((Some (\"contracts/Comptroller.py\" 342)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 342)) MUL ((Some (\"contracts/Comptroller.py\" 342)) type_annotation ((Some (\"contracts/Comptroller.py\" 342)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 342)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 342)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 344)) set_type (None parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 496)) define_local \"calculation\" ((Some (\"contracts/Comptroller.py\" 496)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 497)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 497)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 498)) define_local \"temp\" ((Some (\"contracts/Comptroller.py\" 498)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 499)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 498)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 500)) if_block ((Some (\"contracts/Comptroller.py\" 500)) contains ((Some (\"contracts/Comptroller.py\" 500)) attr ((Some (\"contracts/Comptroller.py\" 500)) storage) \"collaterals\") (None parameter)) (((Some (\"contracts/Comptroller.py\" 501)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 501)) elements ((Some (\"contracts/Comptroller.py\" 501)) get_item ((Some (\"contracts/Comptroller.py\" 501)) attr ((Some (\"contracts/Comptroller.py\" 501)) storage) \"collaterals\") (None parameter))) (((Some (\"contracts/Comptroller.py\" 530)) verify ((Some (\"contracts/Comptroller.py\" 530)) is_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 530)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 531)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 531)) open_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 532)) define_local \"compute_Comptroller_532\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 536)) define_local \"compute_Comptroller_536\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 537)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 537)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 538)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 540)) if_block ((Some (\"contracts/Comptroller.py\" 540)) and ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) get_item ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 541)) set ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) add ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 543)) set ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) add ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 501)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 506)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 506)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 507)) set ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 507)) add ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\"))))))) ((Some (\"contracts/Comptroller.py\" 508)) if_block ((Some (\"contracts/Comptroller.py\" 508)) contains ((Some (\"contracts/Comptroller.py\" 508)) attr ((Some (\"contracts/Comptroller.py\" 508)) storage) \"loans\") (None parameter)) (((Some (\"contracts/Comptroller.py\" 509)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 509)) elements ((Some (\"contracts/Comptroller.py\" 509)) get_item ((Some (\"contracts/Comptroller.py\" 509)) attr ((Some (\"contracts/Comptroller.py\" 509)) storage) \"loans\") (None parameter))) (((Some (\"contracts/Comptroller.py\" 511)) if_block ((Some (\"contracts/Comptroller.py\" 511)) contains ((Some (\"contracts/Comptroller.py\" 511)) attr ((Some (\"contracts/Comptroller.py\" 511)) storage) \"collaterals\") (None parameter)) (((Some (\"contracts/Comptroller.py\" 512)) if_block ((Some (\"contracts/Comptroller.py\" 512)) not ((Some (\"contracts/Comptroller.py\" 512)) contains ((Some (\"contracts/Comptroller.py\" 512)) get_item ((Some (\"contracts/Comptroller.py\" 512)) attr ((Some (\"contracts/Comptroller.py\" 512)) storage) \"collaterals\") (None parameter)) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\"))) (((Some (\"contracts/Comptroller.py\" 530)) verify ((Some (\"contracts/Comptroller.py\" 530)) is_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 530)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 531)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 531)) open_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 532)) define_local \"compute_Comptroller_532\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 536)) define_local \"compute_Comptroller_536\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 537)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 537)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 538)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 540)) if_block ((Some (\"contracts/Comptroller.py\" 540)) and ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) get_item ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 541)) set ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) add ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 543)) set ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) add ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 517)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 517)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 518)) set ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 518)) add ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\"))))))) (else_block (((Some (\"contracts/Comptroller.py\" 530)) verify ((Some (\"contracts/Comptroller.py\" 530)) is_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\") ((Some (\"contracts/Comptroller.py\" 530)) literal (string \"CMPT_OUTDATED_ACCOUNT_SNAPSHOT\"))) ((Some (\"contracts/Comptroller.py\" 531)) define_local \"params\" ((Some (\"contracts/Comptroller.py\" 531)) open_variant ((Some (\"contracts/Comptroller.py\" 529)) open_variant ((Some (\"contracts/Comptroller.py\" 528)) view \"getAccountSnapshotView\" (None parameter) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\") (option (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21))))) \"Some\" ((Some (\"contracts/Comptroller.py\" 529)) literal (string \"INVALID ACCOUNT SNAPSHOT VIEW\"))) \"Some\" \"None\") True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\") \"nat\") ((Some (\"contracts/Comptroller.py\" 532)) define_local \"compute_Comptroller_532\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 532)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"params\") \"exchangeRateMantissa\"))) True) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 536)) define_local \"compute_Comptroller_536\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) get_item ((Some (\"contracts/Comptroller.py\" 535)) attr ((Some (\"contracts/Comptroller.py\" 535)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"collateralFactor\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 532)) var \"compute_Comptroller_532\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/utils/Exponential.py\" 207)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 537)) define_local \"calc\" ((Some (\"contracts/Comptroller.py\" 537)) record (sumBorrowPlusEffects ((Some (\"contracts/Comptroller.py\" 538)) literal (nat 0))) (sumCollateral ((Some (\"contracts/Comptroller.py\" 537)) literal (nat 0)))) True) ((Some (\"contracts/Comptroller.py\" 540)) if_block ((Some (\"contracts/Comptroller.py\" 540)) and ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 540)) contains ((Some (\"contracts/Comptroller.py\" 540)) get_item ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 540)) attr ((Some (\"contracts/Comptroller.py\" 540)) var \"params\") \"account\")) ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\"))) (((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 541)) set ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) add ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 536)) var \"compute_Comptroller_536\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 542)) attr ((Some (\"contracts/Comptroller.py\" 542)) var \"params\") \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 543)) set ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) add ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\") ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) get_item ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 509)) var \"asset\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 544)) attr ((Some (\"contracts/Comptroller.py\" 544)) var \"params\") \"borrowBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) ((Some (\"contracts/Comptroller.py\" 522)) set ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 522)) add ((Some (\"contracts/Comptroller.py\" 506)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 541)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumCollateral\"))) ((Some (\"contracts/Comptroller.py\" 523)) set ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 523)) add ((Some (\"contracts/Comptroller.py\" 507)) attr ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") \"sumBorrowPlusEffects\") ((Some (\"contracts/Comptroller.py\" 543)) attr ((Some (\"contracts/Comptroller.py\" 538)) var \"calc\") \"sumBorrowPlusEffects\"))))))))) ((Some (\"contracts/Comptroller.py\" 345)) define_local \"liquidity\" ((Some (\"contracts/Comptroller.py\" 497)) var \"calculation\") True) ((Some (\"contracts/utils/OperationProtector.py\" 43)) verify ((Some (\"contracts/utils/OperationProtector.py\" 43)) contains ((Some (\"contracts/utils/OperationProtector.py\" 43)) attr ((Some (\"contracts/utils/OperationProtector.py\" 43)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 31)) literal (nat 4))) ((Some (\"contracts/utils/OperationProtector.py\" 43)) literal (string \"OP_NOT_ACTIVE\"))) ((Some (\"contracts/utils/OperationProtector.py\" 49)) update_set ((Some (\"contracts/utils/OperationProtector.py\" 49)) attr ((Some (\"contracts/utils/OperationProtector.py\" 49)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 31)) literal (nat 4)) False) ((Some (\"contracts/Comptroller.py\" 348)) set ((Some (\"contracts/Comptroller.py\" 348)) get_item ((Some (\"contracts/Comptroller.py\" 348)) attr ((Some (\"contracts/Comptroller.py\" 348)) storage) \"account_liquidity\") (None parameter)) ((Some (\"contracts/Comptroller.py\" 348)) record (liquidity ((Some (\"contracts/Comptroller.py\" 349)) sub ((Some (\"contracts/Comptroller.py\" 349)) attr ((Some (\"contracts/Comptroller.py\" 346)) var \"liquidity\") \"sumCollateral\") ((Some (\"contracts/Comptroller.py\" 349)) attr ((Some (\"contracts/Comptroller.py\" 346)) var \"liquidity\") \"sumBorrowPlusEffects\"))) (updateLevel (None level)) (valid ((Some (\"contracts/Comptroller.py\" 348)) literal (bool True))))))) (setAccountSnapAndExitMarket True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 128)) (((Some (\"contracts/Comptroller.py\" 129)) verify ((Some (\"contracts/Comptroller.py\" 129)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 129)) MUL ((Some (\"contracts/Comptroller.py\" 129)) type_annotation ((Some (\"contracts/Comptroller.py\" 129)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 129)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 129)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 131)) set_type (None parameter) (record ((account \"address\") (borrowBalance \"nat\") (cTokenBalance \"nat\") (exchangeRateMantissa \"nat\")) Variable (Some (\"contracts/interfaces/CTokenInterface.py\" 21)))) ((Some (\"contracts/utils/OperationProtector.py\" 43)) verify ((Some (\"contracts/utils/OperationProtector.py\" 43)) contains ((Some (\"contracts/utils/OperationProtector.py\" 43)) attr ((Some (\"contracts/utils/OperationProtector.py\" 43)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 28)) literal (nat 1))) ((Some (\"contracts/utils/OperationProtector.py\" 43)) literal (string \"OP_NOT_ACTIVE\"))) ((Some (\"contracts/utils/OperationProtector.py\" 49)) update_set ((Some (\"contracts/utils/OperationProtector.py\" 49)) attr ((Some (\"contracts/utils/OperationProtector.py\" 49)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 28)) literal (nat 1)) False) ((Some (\"contracts/Comptroller.py\" 133)) verify ((Some (\"contracts/Comptroller.py\" 133)) eq ((Some (\"contracts/Comptroller.py\" 133)) attr (None parameter) \"borrowBalance\") ((Some (\"contracts/Comptroller.py\" 134)) literal (nat 0))) ((Some (\"contracts/Comptroller.py\" 133)) literal (string \"CMPT_BORROW_IN_MARKET\"))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") (None sender)) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") (None sender)) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 185)) if_block ((Some (\"contracts/Comptroller.py\" 185)) and ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) get_item ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (None sender))) (((Some (\"contracts/Comptroller.py\" 187)) if_block ((Some (\"contracts/Comptroller.py\" 187)) and ((Some (\"contracts/Comptroller.py\" 187)) contains ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) ((Some (\"contracts/Comptroller.py\" 187)) neq ((Some (\"contracts/Comptroller.py\" 187)) size ((Some (\"contracts/Comptroller.py\" 187)) get_item ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\"))) ((Some (\"contracts/Comptroller.py\" 187)) literal (intOrNat 0)))) (((Some (\"contracts/Comptroller.py\" 799)) verify ((Some (\"contracts/Comptroller.py\" 799)) contains ((Some (\"contracts/Comptroller.py\" 799)) attr ((Some (\"contracts/Comptroller.py\" 799)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) ((Some (\"contracts/Comptroller.py\" 799)) literal (string \"CMPT_LIQUIDITY_ABSENT\"))) ((Some (\"contracts/Comptroller.py\" 801)) verify ((Some (\"contracts/Comptroller.py\" 802)) attr ((Some (\"contracts/Comptroller.py\" 802)) get_item ((Some (\"contracts/Comptroller.py\" 802)) attr ((Some (\"contracts/Comptroller.py\" 802)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 801)) literal (string \"CMPT_LIQUIDITY_INVALID\"))) ((Some (\"contracts/utils/Exponential.py\" 193)) set_type (None level) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 194)) set_type ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) get_item ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"updateLevel\") \"nat\") ((Some (\"contracts/Comptroller.py\" 803)) define_local \"compute_Comptroller_803\" ((Some (\"contracts/utils/Exponential.py\" 195)) open_variant ((Some (\"contracts/utils/Exponential.py\" 195)) is_nat ((Some (\"contracts/utils/Exponential.py\" 195)) sub (None level) ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) get_item ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"updateLevel\"))) \"Some\" ((Some (\"contracts/utils/Exponential.py\" 195)) literal (string \"SUBTRACTION_UNDERFLOW\"))) True) ((Some (\"contracts/Comptroller.py\" 805)) verify ((Some (\"contracts/Comptroller.py\" 805)) eq ((Some (\"contracts/Comptroller.py\" 803)) var \"compute_Comptroller_803\") ((Some (\"contracts/Comptroller.py\" 805)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 805)) literal (string \"CMPT_LIQUIDITY_OLD\"))) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") (None sender)) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") (None sender)) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"cTokenBalance\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"cTokenBalance\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"cTokenBalance\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 195)) define_local \"compute_Comptroller_195\" ((Some (\"contracts/Comptroller.py\" 195)) sub ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) get_item ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"liquidity\") ((Some (\"contracts/Comptroller.py\" 195)) to_int ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") (None sender)) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"cTokenBalance\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 197)) verify ((Some (\"contracts/Comptroller.py\" 197)) ge ((Some (\"contracts/Comptroller.py\" 195)) var \"compute_Comptroller_195\") ((Some (\"contracts/Comptroller.py\" 197)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 197)) literal (string \"CMPT_REDEEMER_SHORTFALL\"))))))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))) ((Some (\"contracts/Comptroller.py\" 138)) if_block ((Some (\"contracts/Comptroller.py\" 138)) and ((Some (\"contracts/Comptroller.py\" 138)) contains ((Some (\"contracts/Comptroller.py\" 138)) attr ((Some (\"contracts/Comptroller.py\" 138)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) ((Some (\"contracts/Comptroller.py\" 138)) contains ((Some (\"contracts/Comptroller.py\" 138)) get_item ((Some (\"contracts/Comptroller.py\" 138)) attr ((Some (\"contracts/Comptroller.py\" 138)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (None sender))) (((Some (\"contracts/Comptroller.py\" 140)) update_set ((Some (\"contracts/Comptroller.py\" 140)) get_item ((Some (\"contracts/Comptroller.py\" 140)) attr ((Some (\"contracts/Comptroller.py\" 140)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (None sender) False))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 137)) attr (None parameter) \"account\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))))) (setBorrowPaused True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 626)) (((Some (\"contracts/Comptroller.py\" 627)) verify ((Some (\"contracts/Comptroller.py\" 627)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 627)) MUL ((Some (\"contracts/Comptroller.py\" 627)) type_annotation ((Some (\"contracts/Comptroller.py\" 627)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 627)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 627)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 629)) set_type (None parameter) (record ((cToken \"address\") (state \"bool\")) Variable (Some (\"contracts/Comptroller.py\" 629)))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 630)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 630)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 632)) set ((Some (\"contracts/Comptroller.py\" 632)) attr ((Some (\"contracts/Comptroller.py\" 632)) get_item ((Some (\"contracts/Comptroller.py\" 632)) attr ((Some (\"contracts/Comptroller.py\" 632)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 630)) attr (None parameter) \"cToken\")) \"borrowPaused\") ((Some (\"contracts/Comptroller.py\" 632)) attr (None parameter) \"state\")))) (setCloseFactor True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 675)) (((Some (\"contracts/Comptroller.py\" 676)) verify ((Some (\"contracts/Comptroller.py\" 676)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 676)) MUL ((Some (\"contracts/Comptroller.py\" 676)) type_annotation ((Some (\"contracts/Comptroller.py\" 676)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 676)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 676)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 678)) set_type (None parameter) \"nat\") ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 680)) set ((Some (\"contracts/Comptroller.py\" 680)) attr ((Some (\"contracts/Comptroller.py\" 680)) storage) \"closeFactorMantissa\") (None parameter)))) (setCollateralFactor True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 707)) (((Some (\"contracts/Comptroller.py\" 708)) verify ((Some (\"contracts/Comptroller.py\" 708)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 708)) MUL ((Some (\"contracts/Comptroller.py\" 708)) type_annotation ((Some (\"contracts/Comptroller.py\" 708)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 708)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 708)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 710)) set_type (None parameter) (record ((cToken \"address\") (newCollateralFactor \"nat\")) Variable (Some (\"contracts/Comptroller.py\" 710)))) ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 713)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 713)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 714)) set ((Some (\"contracts/Comptroller.py\" 714)) attr ((Some (\"contracts/Comptroller.py\" 714)) attr ((Some (\"contracts/Comptroller.py\" 714)) get_item ((Some (\"contracts/Comptroller.py\" 714)) attr ((Some (\"contracts/Comptroller.py\" 714)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 713)) attr (None parameter) \"cToken\")) \"collateralFactor\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 714)) attr (None parameter) \"newCollateralFactor\")))) (setLiquidationIncentive True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 724)) (((Some (\"contracts/Comptroller.py\" 725)) verify ((Some (\"contracts/Comptroller.py\" 725)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 725)) MUL ((Some (\"contracts/Comptroller.py\" 725)) type_annotation ((Some (\"contracts/Comptroller.py\" 725)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 725)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 725)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 727)) set_type (None parameter) \"nat\") ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 729)) set ((Some (\"contracts/Comptroller.py\" 729)) attr ((Some (\"contracts/Comptroller.py\" 729)) storage) \"liquidationIncentiveMantissa\") (None parameter)))) (setMaxAssetsPerUser True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 690)) (((Some (\"contracts/Comptroller.py\" 691)) verify ((Some (\"contracts/Comptroller.py\" 691)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 691)) MUL ((Some (\"contracts/Comptroller.py\" 691)) type_annotation ((Some (\"contracts/Comptroller.py\" 691)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 691)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 691)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 693)) set_type (None parameter) \"nat\") ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 695)) set ((Some (\"contracts/Comptroller.py\" 695)) attr ((Some (\"contracts/Comptroller.py\" 695)) storage) \"maxAssetsPerUser\") (None parameter)))) (setMintPaused True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 608)) (((Some (\"contracts/Comptroller.py\" 609)) verify ((Some (\"contracts/Comptroller.py\" 609)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 609)) MUL ((Some (\"contracts/Comptroller.py\" 609)) type_annotation ((Some (\"contracts/Comptroller.py\" 609)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 609)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 609)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 611)) set_type (None parameter) (record ((cToken \"address\") (state \"bool\")) Variable (Some (\"contracts/Comptroller.py\" 611)))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 612)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 612)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 614)) set ((Some (\"contracts/Comptroller.py\" 614)) attr ((Some (\"contracts/Comptroller.py\" 614)) get_item ((Some (\"contracts/Comptroller.py\" 614)) attr ((Some (\"contracts/Comptroller.py\" 614)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 612)) attr (None parameter) \"cToken\")) \"mintPaused\") ((Some (\"contracts/Comptroller.py\" 614)) attr (None parameter) \"state\")))) (setPendingGovernance True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 574)) (((Some (\"contracts/Comptroller.py\" 575)) verify ((Some (\"contracts/Comptroller.py\" 575)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 575)) MUL ((Some (\"contracts/Comptroller.py\" 575)) type_annotation ((Some (\"contracts/Comptroller.py\" 575)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 575)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 575)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 577)) set_type (None parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 579)) set ((Some (\"contracts/Comptroller.py\" 579)) attr ((Some (\"contracts/Comptroller.py\" 579)) storage) \"pendingAdministrator\") ((Some (\"contracts/Comptroller.py\" 579)) variant \"Some\" (None parameter))))) (setPriceOracleAndTimeDiff True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 659)) (((Some (\"contracts/Comptroller.py\" 660)) verify ((Some (\"contracts/Comptroller.py\" 660)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 660)) MUL ((Some (\"contracts/Comptroller.py\" 660)) type_annotation ((Some (\"contracts/Comptroller.py\" 660)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 660)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 660)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 662)) set_type (None parameter) (record ((priceOracle \"address\") (timeDiff \"int\")) Variable (Some (\"contracts/Comptroller.py\" 662)))) ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 664)) set ((Some (\"contracts/Comptroller.py\" 664)) attr ((Some (\"contracts/Comptroller.py\" 664)) storage) \"maxPriceTimeDifference\") ((Some (\"contracts/Comptroller.py\" 664)) attr (None parameter) \"timeDiff\")) ((Some (\"contracts/Comptroller.py\" 665)) set ((Some (\"contracts/Comptroller.py\" 665)) attr ((Some (\"contracts/Comptroller.py\" 665)) storage) \"oracleAddress\") ((Some (\"contracts/Comptroller.py\" 665)) attr (None parameter) \"priceOracle\")))) (setTransferPaused True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 642)) (((Some (\"contracts/Comptroller.py\" 643)) verify ((Some (\"contracts/Comptroller.py\" 643)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 643)) MUL ((Some (\"contracts/Comptroller.py\" 643)) type_annotation ((Some (\"contracts/Comptroller.py\" 643)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 643)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 643)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 645)) set_type (None parameter) \"bool\") ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 647)) set ((Some (\"contracts/Comptroller.py\" 647)) attr ((Some (\"contracts/Comptroller.py\" 647)) storage) \"transferPaused\") (None parameter)))) (supportMarket True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 742)) (((Some (\"contracts/Comptroller.py\" 743)) verify ((Some (\"contracts/Comptroller.py\" 743)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 743)) MUL ((Some (\"contracts/Comptroller.py\" 743)) type_annotation ((Some (\"contracts/Comptroller.py\" 743)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 743)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 743)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 745)) set_type (None parameter) (record ((cToken \"address\") (name \"string\") (priceExp \"nat\")) Variable (Some (\"contracts/Comptroller.py\" 745)))) ((Some (\"contracts/Comptroller.py\" 793)) verify ((Some (\"contracts/Comptroller.py\" 793)) eq (None sender) ((Some (\"contracts/Comptroller.py\" 793)) attr ((Some (\"contracts/Comptroller.py\" 793)) storage) \"administrator\")) ((Some (\"contracts/Comptroller.py\" 793)) literal (string \"CMPT_NOT_ADMIN\"))) ((Some (\"contracts/Comptroller.py\" 789)) verify ((Some (\"contracts/Comptroller.py\" 789)) not ((Some (\"contracts/Comptroller.py\" 789)) and ((Some (\"contracts/Comptroller.py\" 789)) contains ((Some (\"contracts/Comptroller.py\" 789)) attr ((Some (\"contracts/Comptroller.py\" 789)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 748)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 790)) attr ((Some (\"contracts/Comptroller.py\" 790)) get_item ((Some (\"contracts/Comptroller.py\" 790)) attr ((Some (\"contracts/Comptroller.py\" 790)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 748)) attr (None parameter) \"cToken\")) \"isListed\"))) ((Some (\"contracts/Comptroller.py\" 789)) literal (string \"CMPT_MARKET_ALREADY_LISTED\"))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 751)) literal (nat 500000000000000000)) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 757)) literal (nat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 749)) set ((Some (\"contracts/Comptroller.py\" 749)) get_item ((Some (\"contracts/Comptroller.py\" 749)) attr ((Some (\"contracts/Comptroller.py\" 749)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 748)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 749)) record (borrowPaused ((Some (\"contracts/Comptroller.py\" 753)) literal (bool True))) (collateralFactor ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 751)) literal (nat 500000000000000000))))) (isListed ((Some (\"contracts/Comptroller.py\" 749)) literal (bool True))) (mintPaused ((Some (\"contracts/Comptroller.py\" 752)) literal (bool True))) (name ((Some (\"contracts/Comptroller.py\" 755)) attr (None parameter) \"name\")) (price ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 757)) literal (nat 0))))) (priceExp ((Some (\"contracts/Comptroller.py\" 758)) attr (None parameter) \"priceExp\")) (priceTimestamp ((Some (\"contracts/Comptroller.py\" 760)) literal (timestamp 0))) (updateLevel ((Some (\"contracts/Comptroller.py\" 759)) literal (nat 0))))) ((Some (\"contracts/Comptroller.py\" 761)) set ((Some (\"contracts/Comptroller.py\" 761)) get_item ((Some (\"contracts/Comptroller.py\" 761)) attr ((Some (\"contracts/Comptroller.py\" 761)) storage) \"marketNameToAddress\") ((Some (\"contracts/Comptroller.py\" 761)) add ((Some (\"contracts/Comptroller.py\" 755)) attr (None parameter) \"name\") ((Some (\"contracts/Comptroller.py\" 761)) literal (string \"-USD\")))) ((Some (\"contracts/Comptroller.py\" 748)) attr (None parameter) \"cToken\")))) (sweepFA12 True None None None True None (Some (\"contracts/utils/SweepTokens.py\" 35)) (((Some (\"contracts/utils/SweepTokens.py\" 36)) set_type (None parameter) (record ((amount \"nat\") (tokenAddress \"address\")) Variable (Some (\"contracts/utils/SweepTokens.py\" 36)))) ((Some (\"contracts/utils/TransferTokens.py\" 19)) set ((Some (\"contracts/utils/TransferTokens.py\" 19)) operations) ((Some (\"contracts/utils/TransferTokens.py\" 19)) cons ((Some (\"contracts/utils/TransferTokens.py\" 19)) transfer ((Some (\"contracts/utils/TransferTokens.py\" 6)) record (from_ (None self_address)) (to_ ((Some (\"contracts/utils/SweepTokens.py\" 39)) attr ((Some (\"contracts/utils/SweepTokens.py\" 39)) storage) \"administrator\")) (value ((Some (\"contracts/utils/SweepTokens.py\" 40)) attr (None parameter) \"amount\"))) ((Some (\"contracts/utils/TransferTokens.py\" 19)) literal (mutez 0)) ((Some (\"contracts/utils/TransferTokens.py\" 17)) open_variant ((Some (\"contracts/utils/TransferTokens.py\" 12)) contract \"transfer\" (record ((from_ \"address\") (to_ \"address\") (value \"nat\")) (Value ((\"from_ as from\") ((\"to_ as to\") (\"value\")))) (Some (\"contracts/utils/TransferTokens.py\" 13))) ((Some (\"contracts/utils/SweepTokens.py\" 38)) attr (None parameter) \"tokenAddress\")) \"Some\" \"None\")) ((Some (\"contracts/utils/TransferTokens.py\" 19)) operations))))) (sweepFA2 True None None None True None (Some (\"contracts/utils/SweepTokens.py\" 51)) (((Some (\"contracts/utils/SweepTokens.py\" 52)) set_type (None parameter) (record ((amount \"nat\") (id \"nat\") (tokenAddress \"address\")) Variable (Some (\"contracts/utils/SweepTokens.py\" 52)))) ((Some (\"contracts/utils/TransferTokens.py\" 45)) set ((Some (\"contracts/utils/TransferTokens.py\" 45)) operations) ((Some (\"contracts/utils/TransferTokens.py\" 45)) cons ((Some (\"contracts/utils/TransferTokens.py\" 45)) transfer ((Some (\"contracts/utils/TransferTokens.py\" 45)) list ((Some (\"contracts/utils/TransferTokens.py\" 26)) record (from_ (None self_address)) (txs ((Some (\"contracts/utils/TransferTokens.py\" 26)) list ((Some (\"contracts/utils/TransferTokens.py\" 29)) record (amount ((Some (\"contracts/utils/SweepTokens.py\" 56)) attr (None parameter) \"amount\")) (to_ ((Some (\"contracts/utils/SweepTokens.py\" 55)) attr ((Some (\"contracts/utils/SweepTokens.py\" 55)) storage) \"administrator\")) (token_id ((Some (\"contracts/utils/SweepTokens.py\" 54)) attr (None parameter) \"id\"))))))) ((Some (\"contracts/utils/TransferTokens.py\" 45)) literal (mutez 0)) ((Some (\"contracts/utils/TransferTokens.py\" 43)) open_variant ((Some (\"contracts/utils/TransferTokens.py\" 38)) contract \"transfer\" (list (record ((from_ \"address\") (txs (list (record ((amount \"nat\") (to_ \"address\") (token_id \"nat\")) (Value ((\"to_\") ((\"token_id\") (\"amount\")))) (Some (\"contracts/utils/TransferTokens.py\" 22)))))) (Value ((\"from_\") (\"txs\"))) (Some (\"contracts/utils/TransferTokens.py\" 40)))) ((Some (\"contracts/utils/SweepTokens.py\" 54)) attr (None parameter) \"tokenAddress\")) \"Some\" \"None\")) ((Some (\"contracts/utils/TransferTokens.py\" 45)) operations))))) (sweepMutez True None None None True None (Some (\"contracts/utils/SweepTokens.py\" 16)) (((Some (\"contracts/utils/SweepTokens.py\" 17)) set_type (None parameter) \"bool\") ((Some (\"contracts/utils/SweepTokens.py\" 19)) if_block (None parameter) (((Some (\"contracts/utils/SweepTokens.py\" 22)) set ((Some (\"contracts/utils/SweepTokens.py\" 22)) operations) ((Some (\"contracts/utils/SweepTokens.py\" 22)) cons ((Some (\"contracts/utils/SweepTokens.py\" 22)) transfer (None literal (unit)) (None balance) ((Some (\"contracts/utils/SweepTokens.py\" 21)) open_variant ((Some (\"contracts/utils/SweepTokens.py\" 20)) contract \"receive\" \"unit\" ((Some (\"contracts/utils/SweepTokens.py\" 21)) attr ((Some (\"contracts/utils/SweepTokens.py\" 21)) storage) \"administrator\")) \"Some\" \"None\")) ((Some (\"contracts/utils/SweepTokens.py\" 22)) operations))))) (else_block (((Some (\"contracts/utils/SweepTokens.py\" 24)) set ((Some (\"contracts/utils/SweepTokens.py\" 24)) operations) ((Some (\"contracts/utils/SweepTokens.py\" 24)) cons ((Some (\"contracts/utils/SweepTokens.py\" 24)) transfer (None literal (unit)) (None balance) ((Some (\"contracts/utils/SweepTokens.py\" 24)) open_variant ((Some (\"contracts/utils/SweepTokens.py\" 24)) contract \"\" \"unit\" ((Some (\"contracts/utils/SweepTokens.py\" 24)) attr ((Some (\"contracts/utils/SweepTokens.py\" 24)) storage) \"administrator\")) \"Some\" \"None\")) ((Some (\"contracts/utils/SweepTokens.py\" 24)) operations))))))) (transferAllowed True (Some True) None None True None (Some (\"contracts/Comptroller.py\" 284)) (((Some (\"contracts/Comptroller.py\" 285)) verify ((Some (\"contracts/Comptroller.py\" 285)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 285)) MUL ((Some (\"contracts/Comptroller.py\" 285)) type_annotation ((Some (\"contracts/Comptroller.py\" 285)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 285)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 285)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 287)) set_type (None parameter) (record ((cToken \"address\") (dst \"address\") (src \"address\") (transferTokens \"nat\")) (Value (((\"cToken\") (\"src\")) ((\"dst\") (\"transferTokens\")))) (Some (\"contracts/interfaces/ComptrollerInterface.py\" 16)))) ((Some (\"contracts/Comptroller.py\" 288)) verify ((Some (\"contracts/Comptroller.py\" 288)) not ((Some (\"contracts/Comptroller.py\" 288)) attr ((Some (\"contracts/Comptroller.py\" 288)) storage) \"transferPaused\")) ((Some (\"contracts/Comptroller.py\" 288)) literal (string \"CMPT_TRANSFER_PAUSED\"))) ((Some (\"contracts/Comptroller.py\" 785)) verify ((Some (\"contracts/Comptroller.py\" 785)) and ((Some (\"contracts/Comptroller.py\" 785)) contains ((Some (\"contracts/Comptroller.py\" 785)) attr ((Some (\"contracts/Comptroller.py\" 785)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) get_item ((Some (\"contracts/Comptroller.py\" 786)) attr ((Some (\"contracts/Comptroller.py\" 786)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) \"isListed\")) ((Some (\"contracts/Comptroller.py\" 785)) literal (string \"CMPT_MARKET_NOT_LISTED\"))) ((Some (\"contracts/Comptroller.py\" 185)) if_block ((Some (\"contracts/Comptroller.py\" 185)) and ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) ((Some (\"contracts/Comptroller.py\" 185)) contains ((Some (\"contracts/Comptroller.py\" 185)) get_item ((Some (\"contracts/Comptroller.py\" 185)) attr ((Some (\"contracts/Comptroller.py\" 185)) storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\"))) (((Some (\"contracts/Comptroller.py\" 187)) if_block ((Some (\"contracts/Comptroller.py\" 187)) and ((Some (\"contracts/Comptroller.py\" 187)) contains ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) ((Some (\"contracts/Comptroller.py\" 187)) neq ((Some (\"contracts/Comptroller.py\" 187)) size ((Some (\"contracts/Comptroller.py\" 187)) get_item ((Some (\"contracts/Comptroller.py\" 187)) attr ((Some (\"contracts/Comptroller.py\" 187)) storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\"))) ((Some (\"contracts/Comptroller.py\" 187)) literal (intOrNat 0)))) (((Some (\"contracts/Comptroller.py\" 799)) verify ((Some (\"contracts/Comptroller.py\" 799)) contains ((Some (\"contracts/Comptroller.py\" 799)) attr ((Some (\"contracts/Comptroller.py\" 799)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) ((Some (\"contracts/Comptroller.py\" 799)) literal (string \"CMPT_LIQUIDITY_ABSENT\"))) ((Some (\"contracts/Comptroller.py\" 801)) verify ((Some (\"contracts/Comptroller.py\" 802)) attr ((Some (\"contracts/Comptroller.py\" 802)) get_item ((Some (\"contracts/Comptroller.py\" 802)) attr ((Some (\"contracts/Comptroller.py\" 802)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 801)) literal (string \"CMPT_LIQUIDITY_INVALID\"))) ((Some (\"contracts/utils/Exponential.py\" 193)) set_type (None level) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 194)) set_type ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) get_item ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) \"updateLevel\") \"nat\") ((Some (\"contracts/Comptroller.py\" 803)) define_local \"compute_Comptroller_803\" ((Some (\"contracts/utils/Exponential.py\" 195)) open_variant ((Some (\"contracts/utils/Exponential.py\" 195)) is_nat ((Some (\"contracts/utils/Exponential.py\" 195)) sub (None level) ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) get_item ((Some (\"contracts/Comptroller.py\" 804)) attr ((Some (\"contracts/Comptroller.py\" 804)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) \"updateLevel\"))) \"Some\" ((Some (\"contracts/utils/Exponential.py\" 195)) literal (string \"SUBTRACTION_UNDERFLOW\"))) True) ((Some (\"contracts/Comptroller.py\" 805)) verify ((Some (\"contracts/Comptroller.py\" 805)) eq ((Some (\"contracts/Comptroller.py\" 803)) var \"compute_Comptroller_803\") ((Some (\"contracts/Comptroller.py\" 805)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 805)) literal (string \"CMPT_LIQUIDITY_OLD\"))) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 235)) verify ((Some (\"contracts/Comptroller.py\" 235)) gt ((Some (\"contracts/Comptroller.py\" 235)) attr ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 235)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 235)) literal (string \"CMPT_INVALID_PRICE\"))) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) \"price\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"transferTokens\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"transferTokens\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"transferTokens\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 195)) define_local \"compute_Comptroller_195\" ((Some (\"contracts/Comptroller.py\" 195)) sub ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) get_item ((Some (\"contracts/Comptroller.py\" 195)) attr ((Some (\"contracts/Comptroller.py\" 195)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) \"liquidity\") ((Some (\"contracts/Comptroller.py\" 195)) to_int ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) get_item ((Some (\"contracts/Comptroller.py\" 196)) attr ((Some (\"contracts/Comptroller.py\" 196)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"cToken\")) \"price\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"transferTokens\")) ((Some (\"contracts/utils/Exponential.py\" 61)) attr ((Some (\"contracts/utils/Exponential.py\" 61)) storage) \"expScale\")))) True) ((Some (\"contracts/Comptroller.py\" 197)) verify ((Some (\"contracts/Comptroller.py\" 197)) ge ((Some (\"contracts/Comptroller.py\" 195)) var \"compute_Comptroller_195\") ((Some (\"contracts/Comptroller.py\" 197)) literal (intOrNat 0))) ((Some (\"contracts/Comptroller.py\" 197)) literal (string \"CMPT_REDEEMER_SHORTFALL\"))))))) ((Some (\"contracts/Comptroller.py\" 808)) if_block ((Some (\"contracts/Comptroller.py\" 808)) contains ((Some (\"contracts/Comptroller.py\" 808)) attr ((Some (\"contracts/Comptroller.py\" 808)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) (((Some (\"contracts/Comptroller.py\" 809)) set ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) get_item ((Some (\"contracts/Comptroller.py\" 809)) attr ((Some (\"contracts/Comptroller.py\" 809)) storage) \"account_liquidity\") ((Some (\"contracts/Comptroller.py\" 290)) attr (None parameter) \"src\")) \"valid\") ((Some (\"contracts/Comptroller.py\" 809)) literal (bool False))))))) (updateAccountLiquidityWithView True None None None True None (Some (\"contracts/Comptroller.py\" 325)) (((Some (\"contracts/Comptroller.py\" 326)) verify ((Some (\"contracts/Comptroller.py\" 326)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 326)) MUL ((Some (\"contracts/Comptroller.py\" 326)) type_annotation ((Some (\"contracts/Comptroller.py\" 326)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 326)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 326)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 328)) set_type (None parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 302)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 302)) values ((Some (\"contracts/Comptroller.py\" 302)) attr ((Some (\"contracts/Comptroller.py\" 302)) storage) \"marketNameToAddress\")) (((Some (\"contracts/Comptroller.py\" 303)) if_block ((Some (\"contracts/Comptroller.py\" 303)) lt ((Some (\"contracts/Comptroller.py\" 303)) attr ((Some (\"contracts/Comptroller.py\" 303)) get_item ((Some (\"contracts/Comptroller.py\" 303)) attr ((Some (\"contracts/Comptroller.py\" 303)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"updateLevel\") (None level)) (((Some (\"contracts/Comptroller.py\" 304)) define_local \"pricePair\" ((Some (\"contracts/Comptroller.py\" 306)) open_variant ((Some (\"contracts/Comptroller.py\" 305)) view \"getPrice\" ((Some (\"contracts/Comptroller.py\" 305)) add ((Some (\"contracts/Comptroller.py\" 305)) attr ((Some (\"contracts/Comptroller.py\" 305)) get_item ((Some (\"contracts/Comptroller.py\" 305)) attr ((Some (\"contracts/Comptroller.py\" 305)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"name\") ((Some (\"contracts/Comptroller.py\" 305)) literal (string \"-USD\"))) ((Some (\"contracts/Comptroller.py\" 305)) attr ((Some (\"contracts/Comptroller.py\" 305)) storage) \"oracleAddress\") (tuple \"timestamp\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 306)) literal (string \"invalid oracle view call\"))) True) ((Some (\"contracts/Comptroller.py\" 308)) if_block ((Some (\"contracts/Comptroller.py\" 308)) neq ((Some (\"contracts/Comptroller.py\" 308)) attr ((Some (\"contracts/Comptroller.py\" 308)) get_item ((Some (\"contracts/Comptroller.py\" 308)) attr ((Some (\"contracts/Comptroller.py\" 308)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"priceTimestamp\") ((Some (\"contracts/Comptroller.py\" 308)) literal (timestamp 0))) (((Some (\"contracts/Comptroller.py\" 309)) verify ((Some (\"contracts/Comptroller.py\" 309)) le ((Some (\"contracts/Comptroller.py\" 309)) sub (None now) ((Some (\"contracts/Comptroller.py\" 309)) first ((Some (\"contracts/Comptroller.py\" 309)) var \"pricePair\"))) ((Some (\"contracts/Comptroller.py\" 309)) attr ((Some (\"contracts/Comptroller.py\" 309)) storage) \"maxPriceTimeDifference\")) ((Some (\"contracts/Comptroller.py\" 309)) literal (string \"STALE_ASSET_PRICE\"))))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 311)) mul_homo ((Some (\"contracts/Comptroller.py\" 311)) second ((Some (\"contracts/Comptroller.py\" 311)) var \"pricePair\")) ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) get_item ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"priceExp\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 310)) set ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) get_item ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"price\") ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 311)) mul_homo ((Some (\"contracts/Comptroller.py\" 311)) second ((Some (\"contracts/Comptroller.py\" 311)) var \"pricePair\")) ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) get_item ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"priceExp\"))))) ((Some (\"contracts/Comptroller.py\" 312)) set ((Some (\"contracts/Comptroller.py\" 312)) attr ((Some (\"contracts/Comptroller.py\" 312)) get_item ((Some (\"contracts/Comptroller.py\" 312)) attr ((Some (\"contracts/Comptroller.py\" 312)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"priceTimestamp\") ((Some (\"contracts/Comptroller.py\" 312)) first ((Some (\"contracts/Comptroller.py\" 312)) var \"pricePair\"))) ((Some (\"contracts/Comptroller.py\" 313)) set ((Some (\"contracts/Comptroller.py\" 313)) attr ((Some (\"contracts/Comptroller.py\" 313)) get_item ((Some (\"contracts/Comptroller.py\" 313)) attr ((Some (\"contracts/Comptroller.py\" 313)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"updateLevel\") (None level)))))) ((Some (\"contracts/Comptroller.py\" 355)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 355)) values ((Some (\"contracts/Comptroller.py\" 355)) attr ((Some (\"contracts/Comptroller.py\" 355)) storage) \"marketNameToAddress\")) (((Some (\"contracts/Comptroller.py\" 356)) set ((Some (\"contracts/Comptroller.py\" 356)) operations) ((Some (\"contracts/Comptroller.py\" 356)) cons ((Some (\"contracts/Comptroller.py\" 356)) transfer (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 356)) literal (mutez 0)) ((Some (\"contracts/Comptroller.py\" 357)) open_variant ((Some (\"contracts/Comptroller.py\" 356)) contract \"accrueInterest\" \"unit\" ((Some (\"contracts/Comptroller.py\" 355)) var \"asset\")) \"Some\" \"None\")) ((Some (\"contracts/Comptroller.py\" 356)) operations))))) ((Some (\"contracts/utils/OperationProtector.py\" 46)) update_set ((Some (\"contracts/utils/OperationProtector.py\" 46)) attr ((Some (\"contracts/utils/OperationProtector.py\" 46)) storage) \"activeOperations\") ((Some (\"contracts/utils/OperationProtector.py\" 31)) literal (nat 4)) True) ((Some (\"contracts/Comptroller.py\" 332)) set ((Some (\"contracts/Comptroller.py\" 332)) operations) ((Some (\"contracts/Comptroller.py\" 332)) cons ((Some (\"contracts/Comptroller.py\" 332)) transfer (None parameter) ((Some (\"contracts/Comptroller.py\" 332)) literal (mutez 0)) ((Some (\"contracts/Comptroller.py\" 332)) self \"setAccountLiquidityWithView\")) ((Some (\"contracts/Comptroller.py\" 332)) operations))))) (updateAllAssetPricesWithView True None None None False None (Some (\"contracts/Comptroller.py\" 296)) (((Some (\"contracts/Comptroller.py\" 297)) verify ((Some (\"contracts/Comptroller.py\" 297)) eq (None amount) ((Some (\"contracts/Comptroller.py\" 297)) MUL ((Some (\"contracts/Comptroller.py\" 297)) type_annotation ((Some (\"contracts/Comptroller.py\" 297)) literal (intOrNat 0)) \"nat\") ((Some (\"contracts/Comptroller.py\" 297)) literal (mutez 1)))) ((Some (\"contracts/Comptroller.py\" 297)) literal (string \"TEZ_TRANSFERED\"))) ((Some (\"contracts/Comptroller.py\" 302)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 302)) values ((Some (\"contracts/Comptroller.py\" 302)) attr ((Some (\"contracts/Comptroller.py\" 302)) storage) \"marketNameToAddress\")) (((Some (\"contracts/Comptroller.py\" 303)) if_block ((Some (\"contracts/Comptroller.py\" 303)) lt ((Some (\"contracts/Comptroller.py\" 303)) attr ((Some (\"contracts/Comptroller.py\" 303)) get_item ((Some (\"contracts/Comptroller.py\" 303)) attr ((Some (\"contracts/Comptroller.py\" 303)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"updateLevel\") (None level)) (((Some (\"contracts/Comptroller.py\" 304)) define_local \"pricePair\" ((Some (\"contracts/Comptroller.py\" 306)) open_variant ((Some (\"contracts/Comptroller.py\" 305)) view \"getPrice\" ((Some (\"contracts/Comptroller.py\" 305)) add ((Some (\"contracts/Comptroller.py\" 305)) attr ((Some (\"contracts/Comptroller.py\" 305)) get_item ((Some (\"contracts/Comptroller.py\" 305)) attr ((Some (\"contracts/Comptroller.py\" 305)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"name\") ((Some (\"contracts/Comptroller.py\" 305)) literal (string \"-USD\"))) ((Some (\"contracts/Comptroller.py\" 305)) attr ((Some (\"contracts/Comptroller.py\" 305)) storage) \"oracleAddress\") (tuple \"timestamp\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 306)) literal (string \"invalid oracle view call\"))) True) ((Some (\"contracts/Comptroller.py\" 308)) if_block ((Some (\"contracts/Comptroller.py\" 308)) neq ((Some (\"contracts/Comptroller.py\" 308)) attr ((Some (\"contracts/Comptroller.py\" 308)) get_item ((Some (\"contracts/Comptroller.py\" 308)) attr ((Some (\"contracts/Comptroller.py\" 308)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"priceTimestamp\") ((Some (\"contracts/Comptroller.py\" 308)) literal (timestamp 0))) (((Some (\"contracts/Comptroller.py\" 309)) verify ((Some (\"contracts/Comptroller.py\" 309)) le ((Some (\"contracts/Comptroller.py\" 309)) sub (None now) ((Some (\"contracts/Comptroller.py\" 309)) first ((Some (\"contracts/Comptroller.py\" 309)) var \"pricePair\"))) ((Some (\"contracts/Comptroller.py\" 309)) attr ((Some (\"contracts/Comptroller.py\" 309)) storage) \"maxPriceTimeDifference\")) ((Some (\"contracts/Comptroller.py\" 309)) literal (string \"STALE_ASSET_PRICE\"))))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 311)) mul_homo ((Some (\"contracts/Comptroller.py\" 311)) second ((Some (\"contracts/Comptroller.py\" 311)) var \"pricePair\")) ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) get_item ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"priceExp\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 310)) set ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) get_item ((Some (\"contracts/Comptroller.py\" 310)) attr ((Some (\"contracts/Comptroller.py\" 310)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"price\") ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 311)) mul_homo ((Some (\"contracts/Comptroller.py\" 311)) second ((Some (\"contracts/Comptroller.py\" 311)) var \"pricePair\")) ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) get_item ((Some (\"contracts/Comptroller.py\" 311)) attr ((Some (\"contracts/Comptroller.py\" 311)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"priceExp\"))))) ((Some (\"contracts/Comptroller.py\" 312)) set ((Some (\"contracts/Comptroller.py\" 312)) attr ((Some (\"contracts/Comptroller.py\" 312)) get_item ((Some (\"contracts/Comptroller.py\" 312)) attr ((Some (\"contracts/Comptroller.py\" 312)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"priceTimestamp\") ((Some (\"contracts/Comptroller.py\" 312)) first ((Some (\"contracts/Comptroller.py\" 312)) var \"pricePair\"))) ((Some (\"contracts/Comptroller.py\" 313)) set ((Some (\"contracts/Comptroller.py\" 313)) attr ((Some (\"contracts/Comptroller.py\" 313)) get_item ((Some (\"contracts/Comptroller.py\" 313)) attr ((Some (\"contracts/Comptroller.py\" 313)) storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 302)) var \"asset\")) \"updateLevel\") (None level)))))))))\nflags ()\nprivates ()\nviews ((onchain getMaxAssetsPerUser False (Some (\"contracts/Comptroller.py\" 563)) False \"\" (((Some (\"contracts/Comptroller.py\" 564)) result ((Some (\"contracts/Comptroller.py\" 564)) attr (None storage) \"maxAssetsPerUser\")))) (onchain getUserAssetsCount True (Some (\"contracts/Comptroller.py\" 553)) False \"\" (((Some (\"contracts/Comptroller.py\" 554)) set_type ((Some (\"contracts/Comptroller.py\" 553)) parameter) \"address\") ((Some (\"contracts/Comptroller.py\" 812)) define_local \"unique_assets\" ((Some (\"contracts/Comptroller.py\" 812)) type_annotation ((Some (\"contracts/Comptroller.py\" 812)) set ) (set \"address\")) True) ((Some (\"contracts/Comptroller.py\" 814)) if_block ((Some (\"contracts/Comptroller.py\" 814)) contains ((Some (\"contracts/Comptroller.py\" 814)) attr (None storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 553)) parameter)) (((Some (\"contracts/Comptroller.py\" 815)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 815)) elements ((Some (\"contracts/Comptroller.py\" 815)) get_item ((Some (\"contracts/Comptroller.py\" 814)) attr (None storage) \"collaterals\") ((Some (\"contracts/Comptroller.py\" 553)) parameter))) (((Some (\"contracts/Comptroller.py\" 816)) update_set ((Some (\"contracts/Comptroller.py\" 816)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 815)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 818)) if_block ((Some (\"contracts/Comptroller.py\" 818)) contains ((Some (\"contracts/Comptroller.py\" 818)) attr (None storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 553)) parameter)) (((Some (\"contracts/Comptroller.py\" 819)) for_group \"asset\" ((Some (\"contracts/Comptroller.py\" 819)) elements ((Some (\"contracts/Comptroller.py\" 819)) get_item ((Some (\"contracts/Comptroller.py\" 818)) attr (None storage) \"loans\") ((Some (\"contracts/Comptroller.py\" 553)) parameter))) (((Some (\"contracts/Comptroller.py\" 820)) update_set ((Some (\"contracts/Comptroller.py\" 820)) var \"unique_assets\") ((Some (\"contracts/Comptroller.py\" 819)) var \"asset\") True))))) ((Some (\"contracts/Comptroller.py\" 555)) result ((Some (\"contracts/Comptroller.py\" 822)) size ((Some (\"contracts/Comptroller.py\" 822)) var \"unique_assets\"))))) (onchain liquidateCalculateSeizeTokens True (Some (\"contracts/Comptroller.py\" 404)) False \"\" (((Some (\"contracts/Comptroller.py\" 405)) set_type ((Some (\"contracts/Comptroller.py\" 404)) parameter) (record ((actualRepayAmount \"nat\") (cTokenBorrowed \"address\") (cTokenCollateral \"address\")) Variable (Some (\"contracts/interfaces/ComptrollerInterface.py\" 25)))) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 408)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenBorrowed\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 407)) define_local \"priceBorrowedMantissa\" ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 408)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenBorrowed\")) \"price\") True) ((Some (\"contracts/Comptroller.py\" 316)) verify ((Some (\"contracts/Comptroller.py\" 316)) eq (None level) ((Some (\"contracts/Comptroller.py\" 316)) attr ((Some (\"contracts/Comptroller.py\" 316)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 410)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenCollateral\")) \"updateLevel\")) ((Some (\"contracts/Comptroller.py\" 316)) literal (string \"CMPT_UPDATE_PRICE\"))) ((Some (\"contracts/Comptroller.py\" 409)) define_local \"priceCollateralMantissa\" ((Some (\"contracts/Comptroller.py\" 317)) attr ((Some (\"contracts/Comptroller.py\" 317)) get_item ((Some (\"contracts/Comptroller.py\" 316)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 410)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenCollateral\")) \"price\") True) ((Some (\"contracts/Comptroller.py\" 412)) verify ((Some (\"contracts/Comptroller.py\" 412)) and ((Some (\"contracts/Comptroller.py\" 412)) neq ((Some (\"contracts/Comptroller.py\" 412)) attr ((Some (\"contracts/Comptroller.py\" 412)) var \"priceBorrowedMantissa\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 412)) literal (nat 0))) ((Some (\"contracts/Comptroller.py\" 413)) neq ((Some (\"contracts/Comptroller.py\" 413)) attr ((Some (\"contracts/Comptroller.py\" 413)) var \"priceCollateralMantissa\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 413)) literal (nat 0)))) ((Some (\"contracts/Comptroller.py\" 412)) literal (string \"CMPT_PRICE_ERROR\"))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 422)) attr (None storage) \"liquidationIncentiveMantissa\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 422)) attr (None storage) \"liquidationIncentiveMantissa\"))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/Comptroller.py\" 422)) var \"priceBorrowedMantissa\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/Comptroller.py\" 422)) attr (None storage) \"liquidationIncentiveMantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 422)) var \"priceBorrowedMantissa\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 421)) define_local \"numerator\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/Comptroller.py\" 422)) attr (None storage) \"liquidationIncentiveMantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 422)) var \"priceBorrowedMantissa\") \"mantissa\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")))) True) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/Comptroller.py\" 418)) first ((Some (\"contracts/Comptroller.py\" 416)) open_variant ((Some (\"contracts/Comptroller.py\" 415)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 410)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 416)) literal (string \"INVALID EXCHANGE RATE VIEW\")))) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 205)) set_type ((Some (\"contracts/Comptroller.py\" 424)) var \"priceCollateralMantissa\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 206)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/Comptroller.py\" 418)) first ((Some (\"contracts/Comptroller.py\" 416)) open_variant ((Some (\"contracts/Comptroller.py\" 415)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 410)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 416)) literal (string \"INVALID EXCHANGE RATE VIEW\")))))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 424)) var \"priceCollateralMantissa\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 418)) first ((Some (\"contracts/Comptroller.py\" 416)) open_variant ((Some (\"contracts/Comptroller.py\" 415)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 410)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 416)) literal (string \"INVALID EXCHANGE RATE VIEW\"))))) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 423)) define_local \"denominator\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 207)) div ((Some (\"contracts/utils/Exponential.py\" 207)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 207)) attr ((Some (\"contracts/Comptroller.py\" 424)) var \"priceCollateralMantissa\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 418)) first ((Some (\"contracts/Comptroller.py\" 416)) open_variant ((Some (\"contracts/Comptroller.py\" 415)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 410)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 416)) literal (string \"INVALID EXCHANGE RATE VIEW\"))))) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")))) True) ((Some (\"contracts/utils/Exponential.py\" 241)) set_type ((Some (\"contracts/Comptroller.py\" 427)) var \"numerator\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 242)) set_type ((Some (\"contracts/Comptroller.py\" 427)) var \"denominator\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 243)) verify ((Some (\"contracts/utils/Exponential.py\" 243)) gt ((Some (\"contracts/utils/Exponential.py\" 243)) attr ((Some (\"contracts/Comptroller.py\" 427)) var \"denominator\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 243)) literal (intOrNat 0))) ((Some (\"contracts/utils/Exponential.py\" 243)) literal (string \"DIVISION_BY_ZERO\"))) ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 244)) div ((Some (\"contracts/utils/Exponential.py\" 244)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 244)) attr ((Some (\"contracts/Comptroller.py\" 427)) var \"numerator\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 243)) attr ((Some (\"contracts/Comptroller.py\" 427)) var \"denominator\") \"mantissa\")) \"nat\") ((Some (\"contracts/Comptroller.py\" 426)) define_local \"ratio\" ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 244)) div ((Some (\"contracts/utils/Exponential.py\" 244)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 244)) attr ((Some (\"contracts/Comptroller.py\" 427)) var \"numerator\") \"mantissa\") ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) ((Some (\"contracts/utils/Exponential.py\" 243)) attr ((Some (\"contracts/Comptroller.py\" 427)) var \"denominator\") \"mantissa\")))) True) ((Some (\"contracts/utils/Exponential.py\" 73)) set_type ((Some (\"contracts/Comptroller.py\" 430)) var \"ratio\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 217)) set_type ((Some (\"contracts/Comptroller.py\" 430)) var \"ratio\") (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/utils/Exponential.py\" 218)) set_type ((Some (\"contracts/Comptroller.py\" 430)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"actualRepayAmount\") \"nat\") ((Some (\"contracts/utils/Exponential.py\" 34)) set_type ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 430)) var \"ratio\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 430)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"actualRepayAmount\")) \"nat\") ((Some (\"contracts/utils/Exponential.py\" 60)) set_type ((Some (\"contracts/utils/Exponential.py\" 35)) record (mantissa ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 430)) var \"ratio\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 430)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"actualRepayAmount\")))) (record ((mantissa \"nat\")) Variable (Some (\"contracts/utils/Exponential.py\" 15)))) ((Some (\"contracts/Comptroller.py\" 429)) result ((Some (\"contracts/Comptroller.py\" 429)) tuple ((Some (\"contracts/utils/Exponential.py\" 61)) div ((Some (\"contracts/utils/Exponential.py\" 219)) mul_homo ((Some (\"contracts/utils/Exponential.py\" 219)) attr ((Some (\"contracts/Comptroller.py\" 430)) var \"ratio\") \"mantissa\") ((Some (\"contracts/Comptroller.py\" 430)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"actualRepayAmount\")) ((Some (\"contracts/utils/Exponential.py\" 207)) attr (None storage) \"expScale\")) ((Some (\"contracts/Comptroller.py\" 419)) second ((Some (\"contracts/Comptroller.py\" 416)) open_variant ((Some (\"contracts/Comptroller.py\" 415)) view \"exchangeRateStoredView\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 410)) attr ((Some (\"contracts/Comptroller.py\" 404)) parameter) \"cTokenCollateral\") (tuple \"nat\" \"nat\")) \"Some\" ((Some (\"contracts/Comptroller.py\" 416)) literal (string \"INVALID EXCHANGE RATE VIEW\")))))))) (onchain seizeAllowed True (Some (\"contracts/Comptroller.py\" 469)) False \"\" (((Some (\"contracts/Comptroller.py\" 470)) set_type ((Some (\"contracts/Comptroller.py\" 469)) parameter) (record ((cTokenBorrowed \"address\") (cTokenCollateral \"address\")) Variable (Some (\"contracts/Comptroller.py\" 470)))) ((Some (\"contracts/Comptroller.py\" 479)) if_block ((Some (\"contracts/Comptroller.py\" 479)) or ((Some (\"contracts/Comptroller.py\" 479)) not ((Some (\"contracts/Comptroller.py\" 473)) and ((Some (\"contracts/Comptroller.py\" 473)) contains ((Some (\"contracts/Comptroller.py\" 473)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 473)) attr ((Some (\"contracts/Comptroller.py\" 469)) parameter) \"cTokenBorrowed\")) ((Some (\"contracts/Comptroller.py\" 474)) attr ((Some (\"contracts/Comptroller.py\" 474)) get_item ((Some (\"contracts/Comptroller.py\" 473)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 473)) attr ((Some (\"contracts/Comptroller.py\" 469)) parameter) \"cTokenBorrowed\")) \"isListed\"))) ((Some (\"contracts/Comptroller.py\" 479)) not ((Some (\"contracts/Comptroller.py\" 476)) and ((Some (\"contracts/Comptroller.py\" 476)) contains ((Some (\"contracts/Comptroller.py\" 473)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 476)) attr ((Some (\"contracts/Comptroller.py\" 469)) parameter) \"cTokenCollateral\")) ((Some (\"contracts/Comptroller.py\" 477)) attr ((Some (\"contracts/Comptroller.py\" 477)) get_item ((Some (\"contracts/Comptroller.py\" 473)) attr (None storage) \"markets\") ((Some (\"contracts/Comptroller.py\" 476)) attr ((Some (\"contracts/Comptroller.py\" 469)) parameter) \"cTokenCollateral\")) \"isListed\")))) (((Some (\"contracts/Comptroller.py\" 480)) result ((Some (\"contracts/Comptroller.py\" 480)) literal (bool False))))) (else_block (((Some (\"contracts/Comptroller.py\" 485)) if_block ((Some (\"contracts/Comptroller.py\" 485)) or ((Some (\"contracts/Comptroller.py\" 485)) is_variant ((Some (\"contracts/Comptroller.py\" 482)) view \"comptroller\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 473)) attr ((Some (\"contracts/Comptroller.py\" 469)) parameter) \"cTokenBorrowed\") \"address\") \"None\") ((Some (\"contracts/Comptroller.py\" 485)) is_variant ((Some (\"contracts/Comptroller.py\" 483)) view \"comptroller\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 476)) attr ((Some (\"contracts/Comptroller.py\" 469)) parameter) \"cTokenCollateral\") \"address\") \"None\")) (((Some (\"contracts/Comptroller.py\" 486)) result ((Some (\"contracts/Comptroller.py\" 486)) literal (bool False))))) (else_block (((Some (\"contracts/Comptroller.py\" 490)) result ((Some (\"contracts/Comptroller.py\" 490)) eq ((Some (\"contracts/Comptroller.py\" 488)) open_variant ((Some (\"contracts/Comptroller.py\" 482)) view \"comptroller\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 473)) attr ((Some (\"contracts/Comptroller.py\" 469)) parameter) \"cTokenBorrowed\") \"address\") \"Some\" \"None\") ((Some (\"contracts/Comptroller.py\" 489)) open_variant ((Some (\"contracts/Comptroller.py\" 483)) view \"comptroller\" (None literal (unit)) ((Some (\"contracts/Comptroller.py\" 476)) attr ((Some (\"contracts/Comptroller.py\" 469)) parameter) \"cTokenCollateral\") \"address\") \"Some\" \"None\"))))))))))\nentrypoints_layout ()\ninitial_metadata ()\nbalance ())", "id": "(None static_id 0)", "line_no": "(Some (\"\" -1))", "show": true diff --git a/contracts/Comptroller.py b/contracts/Comptroller.py index 4d4d2e2f..314424a3 100644 --- a/contracts/Comptroller.py +++ b/contracts/Comptroller.py @@ -224,7 +224,8 @@ def borrowAllowed(self, params): # only cTokens may call borrowAllowed if borrower not in market sp.verify(sp.sender == params.cToken, EC.CMPT_INVALID_BORROW_SENDER) - self.addToLoans(sp.sender, params.borrower) + sp.if sp.sender == params.cToken: + self.addToLoans(params.cToken, params.borrower) self.checkInsuffLiquidityInternal( params.cToken, params.borrower, params.borrowAmount) self.invalidateLiquidity(params.borrower) diff --git a/contracts/tests/CTokenTest.py b/contracts/tests/CTokenTest.py index d1295b2c..5064dcaa 100644 --- a/contracts/tests/CTokenTest.py +++ b/contracts/tests/CTokenTest.py @@ -99,8 +99,36 @@ def test(): "symbol": sp.utils.bytes_of_string("cToken"), "decimals": sp.utils.bytes_of_string("x"), }) + c2 = TestCToken(comptroller_=cmpt.address, + interestRateModel_=irm.address, + initialExchangeRateMantissa_=sp.nat(exchange_rate), + administrator_=admin.address, + metadata_=sp.big_map({ + "": sp.utils.bytes_of_string("tezos-storage:data"), + "data": sp.utils.bytes_of_string(json.dumps({ + "name": "...", + "description": "...", + "version": "1.0.0", + "authors": ["ewqenqjw"], + "homepage": "https://some-website.com", + "interfaces": ["TZIP-007"], + "license": {"name": "..."} + })) + }), + token_metadata_={ + "name": sp.utils.bytes_of_string("Compound token"), + "symbol": sp.utils.bytes_of_string("cToken"), + "decimals": sp.utils.bytes_of_string("x"), + }) scenario += c1 + scenario += c2 + + scenario.h2("Set initial state") + scenario += cmpt.enterMarkets(c1.address).run(sender=alice, level=bLevel.current()) + scenario += cmpt.enterMarkets(c2.address).run(sender=alice, level=bLevel.current()) + scenario.verify(cmpt.data.markets.contains(c1.address)) + scenario.verify(cmpt.data.markets.contains(c2.address)) scenario.h2("Try borrow when there is no cash") scenario += c1.borrow(100).run(sender=alice, level=bLevel.current(), valid=False) @@ -147,6 +175,15 @@ def test(): scenario += c1.borrow(1100 * ctoken_decimals + 1).run(sender=carl, level=bLevel.current(), valid=False) scenario.h3("Try borrow in callback") scenario += c1.getCashLegacy(sp.pair(sp.unit, c1.typed.borrow)).run(sender=alice, level=bLevel.current(), valid=False) + scenario.h3("Add liquidity to c2 for borrowing tests") + DataRelevance.updateAccrueInterest(scenario, bLevel, bob, c2) + scenario += c2.mint(1000).run(sender=bob, level=bLevel.current()) + scenario.h3("Verify that loans are added correctly") + DataRelevance.updateAllRelevance(scenario, bLevel, carl, c2, cmpt, c2.address, carl.address) + scenario += cmpt.setBorrowAllowed(sp.bool(True)) + scenario += c2.borrow(10).run(sender=alice, level=bLevel.current()) + scenario.verify(cmpt.data.loans[alice.address].contains(c1.address)) + scenario.verify(cmpt.data.loans[alice.address].contains(c2.address)) scenario.h2("Test Redeem") scenario.h3("Redeem allowed") diff --git a/contracts/tests/mock/ComptrollerMock.py b/contracts/tests/mock/ComptrollerMock.py index df115ef3..5523c983 100644 --- a/contracts/tests/mock/ComptrollerMock.py +++ b/contracts/tests/mock/ComptrollerMock.py @@ -11,12 +11,16 @@ def __init__(self, **extra_storage): borrow_allowed = sp.bool(True), redeem_allowed = sp.bool(True), repay_borrow_allowed = sp.bool(True), + markets = sp.set(t=sp.TAddress), + loans=sp.big_map(l={}, tkey=sp.TAddress, + tvalue=sp.TSet(sp.TAddress)), **extra_storage ) @sp.entry_point def enterMarkets(self, params): - sp.set_type(params, sp.TUnit) + sp.set_type(params, sp.TAddress) + self.data.markets.add(params) @sp.entry_point def exitMarket(self, params): @@ -44,7 +48,16 @@ def setRedeemAllowed(self, params): def borrowAllowed(self, params): sp.set_type(params, CMPTInterface.TBorrowAllowedParams) sp.verify(self.data.borrow_allowed) - + sp.if ~ self.data.loans.contains(params.borrower): + # only cTokens may call borrowAllowed if borrower not in market + sp.verify(sp.sender == params.cToken, + "Invalid sender for borrowAllowed") + sp.if sp.sender == params.cToken: + sp.if self.data.loans.contains(params.borrower): + self.data.loans[params.borrower].add(params.cToken) + sp.else: + self.data.loans[params.borrower] = sp.set([params.cToken]) + @sp.entry_point def setBorrowAllowed(self, params): self.data.borrow_allowed = params