x
942
1877
parameter (or (or (or (or (nat %bailout) (nat %burn)) (or (bool %create_vault) (or (nat %deposit) (lambda %execute unit (list operation))))) (or (or (nat %internal_bailout) (or (nat %internal_burn) (pair %internal_liquidate (address %vault_owner) (nat %token_amount)))) (or (nat %internal_mint) (or (pair %internal_settle_with_vault (address %vault_owner) (pair (nat %token_amount) (address %recipient))) (list %internal_touch address))))) (or (or (or (nat %internal_withdraw) (or (pair %liquidate (address %vault_owner) (nat %token_amount)) (nat %mint))) (or (pair %remove_administrator (address %administrator_to_remove) (nat %token_id)) (or (pair %set_administrator (address %administrator_to_set) (nat %token_id)) (pair %set_contracts (pair (address %governance_token_contract) (address %options_contract)) (pair (address %reward_pool_contract) (pair (address %savings_pool_contract) (address %target_price_oracle))))))) (or (or (nat %set_reference_interest_rate) (or (nat %set_target_price) (pair %settle_with_vault (address %vault_owner) (pair (nat %token_amount) (address %recipient))))) (or (list %touch address) (or (unit %update) (nat %withdraw))))));storage (pair (pair (pair (pair (timestamp %accrual_update_timestamp) (big_map %administrators (pair (address %owner) (nat %token_id)) unit)) (pair (address %collateral_token_contract) (int %collateral_token_id))) (pair (pair (nat %compound_interest_rate) (address %governance_token_contract)) (pair (address %options_contract) (nat %reference_interest_rate)))) (pair (pair (pair (address %reward_pool_contract) (address %savings_pool_contract)) (pair (address %sender) (nat %target_price))) (pair (pair (address %target_price_oracle) (address %token_contract)) (pair (nat %token_id) (pair (nat %total_supply) (big_map %vault_contexts address (pair (pair (bool %allows_settlement) (nat %balance)) (pair (bool %is_being_liquidated) (nat %minted)))))))));code { LAMBDA (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) { CDR ; UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; CONTRACT %get_price (contract nat) ; IF_NONE { PUSH int 69 ; FAILWITH } {} ; PUSH mutez 0 ; SELF_ADDRESS ; CONTRACT %set_target_price nat ; IF_NONE { PUSH int 71 ; FAILWITH } {} ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; CAR ; CAR ; CAR ; CAR ; NOW ; SUB ; ISNAT ; IF_NONE { PUSH int 139 ; FAILWITH } {} ; DUP ; PUSH nat 0 ; COMPARE ; LT ; IF { DIG 2 ; DROP ; PUSH nat 1000000000000 ; DUP 4 ; GET 9 ; DUP 3 ; DUP 6 ; CAR ; GET 6 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 142 ; FAILWITH } { CAR } ; PUSH nat 1000000000000 ; DUP 5 ; GET 9 ; DUP 4 ; PUSH nat 316 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 144 ; FAILWITH } { CAR } ; DUP 5 ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; CDR ; PUSH nat 1000000000000 ; DIG 7 ; PUSH nat 316 ; DUP 11 ; CAR ; GET 6 ; ADD ; MUL ; PUSH nat 1000000000000 ; ADD ; DIG 9 ; CAR ; GET 3 ; CAR ; MUL ; EDIV ; IF_NONE { PUSH int 148 ; FAILWITH } { CAR } ; PAIR ; PAIR ; SWAP ; PAIR ; PAIR ; DUG 3 ; DIG 2 ; DUP 4 ; GET 5 ; CDR ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 5 ; DIG 6 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 8 ; GET 3 ; CAR ; CDR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 4 ; GET 5 ; CDR ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DIG 6 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 8 ; GET 3 ; CAR ; CAR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 2 ; DIG 3 ; DUP ; GET 9 ; DIG 2 ; DIG 3 ; ADD ; ADD ; UPDATE 9 ; UNPAIR ; UNPAIR ; UNPAIR ; CDR ; NOW ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } { DROP ; SWAP ; DROP } ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair (pair address nat) (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; CAR ; GET 3 ; CDR ; CONTRACT %update_stake (pair address nat) ; IF_NONE { PUSH int 167 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) { CDR ; UNPAIR ; SELF_ADDRESS ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 400 ; FAILWITH } ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair nat (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) (pair unit (pair (list operation) (pair (pair (pair (pair timestamp (big_map (pair address nat) unit)) (pair address int)) (pair (pair nat address) (pair address nat))) (pair (pair (pair address address) (pair address nat)) (pair (pair address address) (pair nat (pair nat (big_map address (pair (pair bool nat) (pair bool nat)))))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; CAR ; CAR ; CAR ; CDR ; DIG 2 ; SENDER ; PAIR ; MEM ; IF {} { PUSH int 401 ; FAILWITH } ; UNIT ; PAIR 3 } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUP ; DUG 3 ; GET 3 ; CAR ; CDR ; CONTRACT %bailout nat ; IF_NONE { PUSH int 586 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; TRANSFER_TOKENS ; CONS ; SELF %internal_bailout ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_burn ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 10 ; SENDER ; MEM ; IF { DROP } { SWAP ; DUP ; GET 10 ; PUSH (pair bool nat) (Pair False 0) ; PUSH nat 0 ; DIG 4 ; PAIR ; PAIR ; SOME ; SENDER ; UPDATE ; UPDATE 10 } ; NIL operation } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DUP 3 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; SELF_ADDRESS ; SENDER ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DIG 2 ; DUP ; GET 10 ; DUP ; SENDER ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 439 ; FAILWITH } {} ; UNPAIR ; UNPAIR ; SWAP ; DIG 7 ; ADD ; SWAP ; PAIR ; PAIR ; SOME ; SWAP ; UPDATE ; UPDATE 10 ; SWAP } { NIL operation ; DUP 4 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DUP 3 ; UNIT ; EXEC ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 2 ; SWAP ; CONS ; SWAP } ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } } } { IF_LEFT { IF_LEFT { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 3 ; DUP ; GET 10 ; SWAP ; DUP ; DUG 5 ; GET 3 ; GET 3 ; GET ; IF_NONE { PUSH int 611 ; FAILWITH } {} ; DUP 5 ; GET 3 ; GET 4 ; DUP 5 ; MUL ; PUSH nat 1000000000000000000 ; PUSH nat 1 ; PUSH nat 2 ; DUP 4 ; LSR ; DUP 4 ; ADD ; MUL ; EDIV ; IF_NONE { PUSH int 615 ; FAILWITH } { CAR } ; DUP ; PUSH nat 1 ; SWAP ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 1000000000000 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 5 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 619 ; FAILWITH } { CAR } ; DIG 3 ; DUP 8 ; CAR ; GET 3 ; CAR ; PUSH nat 1000000000000 ; DUP 9 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 620 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 620 ; FAILWITH } { CAR } ; UPDATE 4 ; DUP ; DUG 4 ; UNPAIR ; CAR ; DUP 4 ; DIG 6 ; CAR ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 621 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; DUG 3 ; DUP 8 ; DUP ; GET 10 ; DUP 6 ; SOME ; DIG 10 ; GET 3 ; GET 3 ; UPDATE ; UPDATE 10 ; DUG 7 ; DUP 4 ; CAR ; CAR ; IF { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 6 ; DROP ; DIG 6 ; DROP ; DIG 5 ; DUP 6 ; GET 3 ; GET 4 ; DUP 6 ; DIG 3 ; SUB ; ISNAT ; IF_NONE { PUSH int 626 ; FAILWITH } {} ; MUL ; DUP 6 ; GET 3 ; GET 3 ; PAIR ; SWAP ; DIG 5 ; DIG 4 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 3 ; DIG 2 ; DIG 3 } { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP } ; SWAP ; DUP 4 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 6 ; GET 3 ; CAR ; CDR ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 5 ; CDR ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DIG 5 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 7 ; GET 3 ; CAR ; CDR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 3 ; DIG 2 ; DIG 3 ; GET 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 634 ; FAILWITH } {} ; UPDATE 9 ; SWAP } { IF_LEFT { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; PUSH nat 1000001 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; DIG 3 ; DUP ; GET 10 ; SWAP ; DUP ; DUG 5 ; GET 3 ; GET 3 ; GET ; IF_NONE { PUSH int 323 ; FAILWITH } {} ; PUSH nat 1000000000000 ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 3 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 325 ; FAILWITH } { CAR } ; DUP 6 ; GET 3 ; GET 4 ; DUP 6 ; DUP 3 ; SUB ; ISNAT ; IF_NONE { PUSH int 326 ; FAILWITH } {} ; MUL ; DIG 2 ; DUP 7 ; CAR ; GET 3 ; CAR ; PUSH nat 1000000000000 ; DUP 8 ; DUP 6 ; SUB ; ISNAT ; IF_NONE { PUSH int 328 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 328 ; FAILWITH } { CAR } ; UPDATE 4 ; DUG 2 ; DUP 7 ; DUP ; GET 10 ; DUP 5 ; SOME ; DIG 9 ; GET 3 ; GET 3 ; UPDATE ; UPDATE 10 ; DUG 6 ; DIG 4 ; DUP 7 ; GET 5 ; CDR ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 8 ; DIG 9 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 11 ; GET 3 ; GET 3 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 4 ; DUP 7 ; DUP 7 ; DIG 8 ; GET 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 334 ; FAILWITH } {} ; UPDATE 9 ; DUG 6 ; DUP 3 ; CAR ; CAR ; IF { SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 3 ; SWAP ; DUP 4 ; GET 3 ; GET 3 ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DROP 4 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DUP 4 ; GET 10 ; DUP 4 ; CAR ; GET ; IF_NONE { PUSH int 380 ; FAILWITH } {} ; DUP ; CAR ; CDR ; PUSH nat 1 ; PUSH nat 2 ; DUP 8 ; GET 3 ; GET 4 ; PUSH nat 1000000000000 ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 7 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 383 ; FAILWITH } { CAR } ; MUL ; MUL ; MUL ; PUSH nat 1000000000000 ; PUSH nat 1000000 ; DUP 4 ; MUL ; MUL ; COMPARE ; LT ; IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; GET 3 } ; IF {} { PUSH int 802 ; FAILWITH } ; SWAP ; PUSH bool True ; UPDATE 3 ; SWAP ; PUSH nat 1000000000000000000 ; PUSH nat 1 ; PUSH nat 3 ; DUP 9 ; GET 3 ; GET 4 ; DUP 9 ; CDR ; MUL ; LSR ; DUP 9 ; GET 3 ; GET 4 ; DUP 9 ; CDR ; MUL ; ADD ; MUL ; EDIV ; IF_NONE { PUSH int 392 ; FAILWITH } { CAR } ; DUP 7 ; GET 3 ; GET 4 ; DUP 7 ; CDR ; PUSH nat 1000000000000 ; DUP 10 ; CAR ; GET 3 ; CAR ; DUP 7 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 383 ; FAILWITH } { CAR } ; SUB ; ISNAT ; IF_NONE { PUSH int 394 ; FAILWITH } {} ; MUL ; PUSH nat 1 ; PUSH nat 3 ; DUP 3 ; MUL ; MUL ; PUSH nat 1000000000000 ; PUSH nat 1000000 ; DUP 5 ; DUP 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 396 ; FAILWITH } {} ; MUL ; MUL ; COMPARE ; LT ; IF {} { PUSH int 803 ; FAILWITH } ; PUSH nat 1 ; DUP 3 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 1 ; PUSH nat 100 ; PUSH nat 3 ; DUP 4 ; MUL ; MUL ; MUL ; PUSH nat 1000000000000 ; PUSH nat 105 ; PUSH nat 1000000 ; DUP 6 ; DUP 8 ; SUB ; ISNAT ; IF_NONE { PUSH int 399 ; FAILWITH } {} ; MUL ; MUL ; MUL ; COMPARE ; GE ; IF { DIG 3 ; PUSH bool False ; UPDATE 3 ; DUG 3 } {} ; DIG 5 ; DUP 8 ; GET 5 ; CDR ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 9 ; CDR ; DIG 10 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 12 ; GET 3 ; GET 3 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 5 ; DUP 8 ; DUP 8 ; CDR ; DIG 9 ; GET 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 404 ; FAILWITH } {} ; UPDATE 9 ; DUG 7 ; DUP 4 ; DUP 9 ; CAR ; GET 3 ; CAR ; PUSH nat 1000000000000 ; DUP 10 ; CDR ; PUSH nat 1000000000000 ; DUP 13 ; CAR ; GET 3 ; CAR ; DIG 9 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 383 ; FAILWITH } { CAR } ; SUB ; ISNAT ; IF_NONE { PUSH int 406 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 406 ; FAILWITH } { CAR } ; UPDATE 4 ; DUP ; DUG 4 ; UNPAIR ; CAR ; DUP 4 ; DIG 6 ; CAR ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 407 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; DUG 3 ; DIG 7 ; DUP ; GET 10 ; DUP 6 ; SOME ; DUP 10 ; CAR ; UPDATE ; UPDATE 10 ; DUG 7 ; DUP 4 ; CAR ; CAR ; IF { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 6 ; DROP ; DIG 6 ; DROP ; DIG 5 ; SWAP ; DIG 4 ; CAR ; PAIR ; SWAP ; DIG 4 ; DIG 4 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 2 } { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP } ; SWAP ; DUP 3 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 3 ; GET 3 ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS } } } { IF_LEFT { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; PUSH nat 1000001 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; DIG 3 ; DUP ; GET 10 ; SWAP ; DUP ; DUG 5 ; GET 3 ; GET 3 ; GET ; IF_NONE { PUSH int 260 ; FAILWITH } {} ; PUSH nat 1000000000000 ; DUP 6 ; CAR ; GET 3 ; CAR ; DUP 3 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 263 ; FAILWITH } { CAR } ; DUP 6 ; GET 3 ; GET 4 ; DUP 6 ; DUP 3 ; ADD ; MUL ; PUSH nat 1 ; PUSH nat 3 ; DUP 3 ; MUL ; MUL ; PUSH nat 1000000000000 ; PUSH nat 1000000 ; DUP 6 ; CAR ; CDR ; MUL ; MUL ; COMPARE ; GE ; IF {} { PUSH int 801 ; FAILWITH } ; DIG 2 ; DUP ; GET 4 ; DUP 8 ; CAR ; GET 3 ; CAR ; PUSH nat 1000000000000 ; DUP 9 ; MUL ; EDIV ; IF_NONE { PUSH int 273 ; FAILWITH } { CAR } ; ADD ; UPDATE 4 ; DUG 2 ; DUP 7 ; DUP ; GET 10 ; DUP 5 ; SOME ; DIG 9 ; GET 3 ; GET 3 ; UPDATE ; UPDATE 10 ; DUG 6 ; DIG 4 ; DUP 7 ; GET 5 ; CDR ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; PUSH nat 6 ; DUP 9 ; LSR ; DUP 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 271 ; FAILWITH } {} ; DIG 9 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 11 ; GET 3 ; GET 3 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 7 ; GET 5 ; CDR ; CONTRACT %mint (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; PUSH nat 6 ; DUP 9 ; LSR ; DIG 9 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 11 ; GET 3 ; CAR ; CAR ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 4 ; DIG 6 ; DUP ; GET 9 ; DUP 8 ; ADD ; UPDATE 9 ; DUG 6 ; DUP 3 ; CAR ; CAR ; IF { SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 3 ; SWAP ; DUP 4 ; GET 3 ; GET 3 ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DROP 4 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } { IF_LEFT { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 3 ; DUP ; CAR ; GET 5 ; SWAP ; DUP ; DUG 5 ; GET 3 ; GET 3 ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; DUP 4 ; GET 10 ; DUP 4 ; CAR ; GET ; IF_NONE { PUSH int 537 ; FAILWITH } {} ; DUP ; CAR ; CAR ; IF {} { PUSH int 403 ; FAILWITH } ; DUP 5 ; GET 3 ; GET 4 ; DUP 5 ; GET 3 ; MUL ; PUSH nat 1000000000000000000 ; PUSH nat 1 ; PUSH nat 4 ; DUP 4 ; LSR ; DUP 4 ; SUB ; ISNAT ; IF_NONE { PUSH int 544 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 544 ; FAILWITH } { CAR } ; DUP ; PUSH nat 1 ; SWAP ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; PUSH nat 1000000000000 ; DUP 8 ; CAR ; GET 3 ; CAR ; DUP 5 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 549 ; FAILWITH } { CAR } ; DIG 3 ; DUP 8 ; CAR ; GET 3 ; CAR ; PUSH nat 1000000000000 ; DUP 9 ; GET 3 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 551 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 551 ; FAILWITH } { CAR } ; UPDATE 4 ; DUP ; DUG 4 ; UNPAIR ; CAR ; DUP 4 ; DIG 6 ; CAR ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 552 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; DUG 3 ; DIG 7 ; DUP ; GET 10 ; DUP 6 ; SOME ; DUP 10 ; CAR ; UPDATE ; UPDATE 10 ; DUG 7 ; DUP 4 ; CAR ; CAR ; IF { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 5 ; DROP ; DIG 5 ; DROP ; DIG 6 ; DROP ; DIG 6 ; DROP ; DIG 5 ; DUP 6 ; GET 3 ; GET 4 ; DUP 6 ; GET 3 ; DIG 3 ; SUB ; ISNAT ; IF_NONE { PUSH int 557 ; FAILWITH } {} ; MUL ; DUP 5 ; CAR ; PAIR ; SWAP ; DIG 5 ; DIG 4 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 3 ; DIG 2 ; DIG 3 } { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP } ; SWAP ; DUP 4 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 4 ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 3 ; GET 5 ; CDR ; CONTRACT %burn (pair address (pair nat nat)) ; IF_NONE { PUSH int 120 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; GET 3 ; DIG 5 ; DUP ; GET 7 ; SWAP ; DUP ; DUG 7 ; GET 3 ; GET 3 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 3 ; DIG 2 ; GET 3 ; DIG 3 ; GET 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 565 ; FAILWITH } {} ; UPDATE 9 ; SWAP } { NIL operation ; DUP 5 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DIG 8 ; DUP 3 ; ITER { DUP 5 ; GET 10 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 655 ; FAILWITH } {} ; CAR ; CAR ; IF { DUP 8 ; PUSH nat 1000000000000 ; DIG 6 ; DUP ; GET 3 ; GET 4 ; SWAP ; DUP ; CAR ; GET 3 ; CAR ; SWAP ; DUP ; DUG 9 ; GET 10 ; DUP 6 ; GET ; IF_NONE { PUSH int 656 ; FAILWITH } {} ; GET 4 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 656 ; FAILWITH } { CAR } ; DIG 2 ; PAIR ; SWAP ; DIG 5 ; DIG 4 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DUG 8 ; DUG 8 ; DUG 8 ; DUG 8 ; DIG 6 ; DIG 8 ; DIG 7 ; DIG 8 } { DROP } } ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } } } } { IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DUP ; GET 10 ; SWAP ; DUP ; DUG 4 ; GET 3 ; GET 3 ; GET ; IF_NONE { PUSH int 477 ; FAILWITH } {} ; PUSH nat 1 ; PUSH nat 3 ; DIG 5 ; DUP ; GET 3 ; GET 4 ; SWAP ; DUP ; DUG 7 ; CAR ; GET 3 ; CAR ; DUP 5 ; GET 4 ; MUL ; MUL ; MUL ; MUL ; PUSH nat 1000000000000 ; PUSH nat 1000000 ; PUSH nat 1000000000000 ; DUP 7 ; DUP 6 ; CAR ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 479 ; FAILWITH } {} ; MUL ; MUL ; MUL ; COMPARE ; GE ; IF {} { PUSH int 801 ; FAILWITH } ; DUP ; UNPAIR ; CAR ; DUP 5 ; DIG 3 ; CAR ; CDR ; SUB ; ISNAT ; IF_NONE { PUSH int 479 ; FAILWITH } {} ; SWAP ; PAIR ; PAIR ; DUP 4 ; DUP ; GET 10 ; DIG 2 ; SOME ; DIG 5 ; GET 3 ; GET 3 ; UPDATE ; UPDATE 10 ; DUP ; DUG 3 ; CAR ; CAR ; GET 3 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 3 ; GET 3 ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_liquidate ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_mint ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 3 ; DUP 3 ; CDR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; NONE unit ; DIG 7 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 3 ; DUP 3 ; CDR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; SWAP ; PUSH (option unit) (Some Unit) ; DIG 7 ; UPDATE ; SWAP ; PAIR ; PAIR ; PAIR ; PAIR ; SWAP } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CDR ; DUP 6 ; GET 6 ; PAIR ; PAIR ; SWAP ; CDR ; DUP 5 ; GET 3 ; DUP 6 ; GET 5 ; SWAP ; PAIR ; PAIR ; PAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; CAR ; DUP 6 ; CAR ; CAR ; SWAP ; PAIR ; SWAP ; CDR ; DIG 5 ; CAR ; CDR ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } } } } { IF_LEFT { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; CAR ; DIG 5 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; SWAP ; DUP ; DUG 2 ; GET 5 ; CAR ; SENDER ; COMPARE ; EQ ; IF {} { PUSH string "WrongCondition: sp.sender == self.data.target_price_oracle" ; FAILWITH } ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CAR ; DIG 4 ; SWAP ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; NIL operation } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_settle_with_vault ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DUG 2 ; SELF %internal_touch ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } { IF_LEFT { DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 2 ; UNIT ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; NIL operation ; DIG 4 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 3 ; DIG 2 ; DIG 3 ; DIG 3 ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; UNPAIR ; SWAP ; UNPAIR ; UNPAIR ; SWAP ; CDR ; SENDER ; PAIR ; SWAP ; PAIR ; PAIR ; SWAP ; PAIR ; DUG 2 ; SELF %internal_withdraw ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS } } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR }