x
628
1275
{ parameter (or (or (or (or (nat %burn) (option %create_vault address)) (or (nat %deposit) (or (lambda %execute (big_map address (pair (nat %balance) (pair (option %introducer address) (nat %minted)))) (pair (big_map address (pair (nat %balance) (pair (option %introducer address) (nat %minted)))) (list operation))) (pair %liquidate (address %vault_owner) (nat %token_amount))))) (or (or (nat %mint) (pair %remove_administrator (address %administrator_to_remove) (nat %token_id))) (or (pair %set_administrator (address %administrator_to_set) (nat %token_id)) (or (pair %set_collateral_ratio (nat %numerator) (nat %denominator)) (pair %set_contracts (pair (address %governance_token_contract) (pair (address %interest_rate_setter_contract) (address %options_contract))) (pair (address %reward_pool_contract) (pair (address %savings_pool_contract) (address %target_price_oracle)))))))) (or (or (or (pair %set_introducer_ratio (nat %numerator) (nat %denominator)) (pair %set_liquidation_payout_ratio (nat %numerator) (nat %denominator))) (or (pair %set_minting_fee_ratio (nat %numerator) (nat %denominator)) (or (nat %set_reference_interest_rate) (pair %set_settlement_payout_ratio (nat %numerator) (nat %denominator))))) (or (or (pair %set_settlement_ratio (nat %numerator) (nat %denominator)) (or (pair %set_settlement_reward_fee_ratio (nat %numerator) (nat %denominator)) (pair %settle_with_vault (address %vault_owner) (pair (nat %token_amount) (address %recipient))))) (or (list %touch address) (or (unit %update) (nat %withdraw)))))) ; storage (pair (timestamp %accrual_update_timestamp) (pair (big_map %administrators (pair (address %owner) (nat %token_id)) unit) (pair (pair %collateral_ratio (nat %numerator) (nat %denominator)) (pair (address %collateral_token_contract) (pair (nat %collateral_token_id) (pair (nat %compound_interest_rate) (pair (address %governance_token_contract) (pair (address %interest_rate_setter_contract) (pair (pair %introducer_ratio (nat %numerator) (nat %denominator)) (pair (pair %liquidation_payout_ratio (nat %numerator) (nat %denominator)) (pair (pair %minting_fee_ratio (nat %numerator) (nat %denominator)) (pair (address %options_contract) (pair (nat %reference_interest_rate) (pair (address %reward_pool_contract) (pair (address %savings_pool_contract) (pair (pair %settlement_payout_ratio (nat %numerator) (nat %denominator)) (pair (pair %settlement_ratio (nat %numerator) (nat %denominator)) (pair (pair %settlement_reward_fee_ratio (nat %numerator) (nat %denominator)) (pair (nat %spread_rate) (pair (address %target_price_oracle) (pair (address %token_contract) (pair (nat %token_id) (pair (nat %total_supply) (big_map %vault_contexts address (pair (nat %balance) (pair (option %introducer address) (nat %minted))))))))))))))))))))))))))) ; code { LAMBDA (pair (pair address (pair nat (pair address (pair (pair nat nat) (pair nat nat))))) (pair (list operation) (pair timestamp (pair (big_map (pair address nat) unit) (pair (pair nat nat) (pair address (pair nat (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair address (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair nat (pair address (pair address (pair nat (pair nat (big_map address (pair nat (pair (option address) nat)))))))))))))))))))))))))))) (pair unit (pair (list operation) (pair timestamp (pair (big_map (pair address nat) unit) (pair (pair nat nat) (pair address (pair nat (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair address (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair nat (pair address (pair address (pair nat (pair nat (big_map address (pair nat (pair (option address) nat)))))))))))))))))))))))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; GET 46 ; DUP 3 ; CAR ; GET ; IF_NONE { PUSH int 341 ; FAILWITH } {} ; DUP ; CAR ; DUP 5 ; GET 11 ; DUP 3 ; GET 4 ; MUL ; LAMBDA (pair nat nat) nat { UNPAIR ; PUSH nat 0 ; DUP 3 ; DUP 3 ; EDIV ; IF_NONE { PUSH int 128 ; FAILWITH } { CDR } ; COMPARE ; EQ ; IF { EDIV ; IF_NONE { PUSH int 130 ; FAILWITH } { CAR } } { PUSH nat 1 ; DUG 2 ; EDIV ; IF_NONE { PUSH int 132 ; FAILWITH } { CAR } ; ADD } } ; DUP ; PUSH nat 1000000000000 ; DUP 4 ; PAIR ; EXEC ; PUSH nat 100000000 ; DUP 9 ; GET 39 ; UNIT ; VIEW "get_price" nat ; IF_NONE { PUSH int 502 ; FAILWITH } {} ; DUP 3 ; MUL ; MUL ; PUSH nat 1000000000000 ; PUSH nat 1000000 ; DUP ; DUP ; DUP 9 ; MUL ; MUL ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 366 ; FAILWITH } { CAR } ; DIG 7 ; DUP ; GET 7 ; CDR ; SWAP ; DUP ; DUG 9 ; GET 7 ; CAR ; PUSH nat 1000000 ; MUL ; EDIV ; IF_NONE { PUSH int 375 ; FAILWITH } { CAR } ; SWAP ; DUP ; DUG 2 ; COMPARE ; LT ; IF {} { PUSH int 802 ; FAILWITH } ; PUSH nat 1000000 ; DIG 8 ; DUP ; GET 10 ; SWAP ; DUP ; DUG 10 ; GET 9 ; PUSH nat 1000000 ; MUL ; EDIV ; IF_NONE { PUSH int 370 ; FAILWITH } { CAR } ; DUP 3 ; DUP ; DUP 3 ; COMPARE ; LE ; IF { DROP } { SWAP ; DROP } ; PUSH nat 1000000000000000000000000 ; PUSH nat 100000000 ; DUP 13 ; GET 39 ; UNIT ; VIEW "get_price" nat ; IF_NONE { PUSH int 502 ; FAILWITH } {} ; DUP 13 ; GET 3 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 388 ; FAILWITH } { CAR } ; MUL ; EDIV ; IF_NONE { PUSH int 392 ; FAILWITH } { CAR } ; DIG 9 ; DUP ; GET 35 ; CDR ; SWAP ; DUP ; DUG 11 ; GET 35 ; CAR ; PUSH nat 1000000000000000000000000 ; PUSH nat 100000000 ; DUP 14 ; GET 39 ; UNIT ; VIEW "get_price" nat ; IF_NONE { PUSH int 502 ; FAILWITH } {} ; DUP 14 ; GET 3 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 388 ; FAILWITH } { CAR } ; DUP 4 ; SUB ; PUSH int 0 ; DUP ; DUP 3 ; COMPARE ; LE ; IF { SWAP ; DROP } { DROP } ; ISNAT ; IF_NONE { PUSH int 397 ; FAILWITH } {} ; MUL ; EDIV ; IF_NONE { PUSH int 397 ; FAILWITH } { CAR } ; DUP 10 ; GET 3 ; DUP 5 ; SUB ; ISNAT ; IF_NONE { PUSH int 404 ; FAILWITH } {} ; PUSH nat 1000000 ; DUP 13 ; GET 39 ; UNIT ; VIEW "get_price" nat ; IF_NONE { PUSH int 502 ; FAILWITH } {} ; DUP 3 ; MUL ; EDIV ; IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ; DIG 11 ; DUP ; GET 7 ; CDR ; SWAP ; DUP ; DUG 13 ; GET 7 ; CAR ; PUSH nat 100000000 ; DIG 3 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 415 ; FAILWITH } { CAR } ; PUSH nat 1000000000000 ; PUSH nat 1000000 ; DUP 6 ; DUP 12 ; SUB ; ISNAT ; IF_NONE { PUSH int 413 ; FAILWITH } {} ; MUL ; MUL ; COMPARE ; LT ; IF {} { PUSH int 803 ; FAILWITH } ; DIG 9 ; DUP 12 ; GET 41 ; CONTRACT %burn (pair (address %owner) (pair (nat %token_id) (nat %token_amount))) ; IF_NONE { PUSH int 125 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 13 ; GET 3 ; DUP 15 ; GET 43 ; SENDER ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 9 ; DUP 12 ; DUP 12 ; GET 3 ; DIG 13 ; GET 45 ; SUB ; ISNAT ; IF_NONE { PUSH int 428 ; FAILWITH } {} ; UPDATE 45 ; DUG 11 ; DIG 8 ; DUP 12 ; GET 11 ; PUSH nat 1000000000000 ; DIG 3 ; MUL ; EDIV ; IF_NONE { PUSH int 433 ; FAILWITH } { CAR } ; UPDATE 4 ; DUP 3 ; DUP 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 437 ; FAILWITH } {} ; UPDATE 1 ; DUG 7 ; DIG 10 ; DUP ; GET 46 ; DUP 10 ; SOME ; DUP 13 ; CAR ; UPDATE ; UPDATE 46 ; DUG 10 ; DUP ; PUSH nat 0 ; SWAP ; DUP 4 ; SUB ; ISNAT ; IF_NONE { PUSH int 483 ; FAILWITH } {} ; COMPARE ; GT ; IF { DIG 8 ; DUP 11 ; GET 7 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 19 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DUP 6 ; SUB ; ISNAT ; IF_NONE { PUSH int 483 ; FAILWITH } {} ; DUP 13 ; GET 5 ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 8 } {} ; DUP ; PUSH nat 0 ; COMPARE ; LT ; IF { SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; SWAP ; DUP 3 ; GET 7 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 19 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DUP 5 ; GET 27 ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS } { DROP 8 ; SWAP ; DROP } ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair unit (pair (list operation) (pair timestamp (pair (big_map (pair address nat) unit) (pair (pair nat nat) (pair address (pair nat (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair address (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair nat (pair address (pair address (pair nat (pair nat (big_map address (pair nat (pair (option address) nat)))))))))))))))))))))))))))) (pair unit (pair (list operation) (pair timestamp (pair (big_map (pair address nat) unit) (pair (pair nat nat) (pair address (pair nat (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair address (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair nat (pair address (pair address (pair nat (pair nat (big_map address (pair nat (pair (option address) nat)))))))))))))))))))))))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; CAR ; NOW ; SUB ; ISNAT ; IF_NONE { PUSH int 232 ; FAILWITH } {} ; DUP ; PUSH nat 0 ; COMPARE ; LT ; IF { DIG 2 ; DROP ; PUSH nat 1000000000000 ; DUP 4 ; GET 45 ; DUP 3 ; DUP 6 ; GET 25 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 237 ; FAILWITH } { CAR } ; PUSH nat 1000000000000 ; DUP 5 ; GET 45 ; DUP 4 ; DUP 7 ; GET 37 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH int 246 ; FAILWITH } { CAR } ; DUP 5 ; PUSH nat 1000000000000 ; DIG 4 ; DIG 6 ; DUP ; GET 37 ; SWAP ; DUP ; DUG 8 ; GET 25 ; ADD ; MUL ; PUSH nat 1000000000000 ; ADD ; DIG 6 ; GET 11 ; MUL ; EDIV ; IF_NONE { PUSH int 261 ; FAILWITH } { CAR } ; UPDATE 11 ; DUG 3 ; DIG 2 ; DUP 4 ; GET 41 ; CONTRACT %mint (pair (address %owner) (pair (nat %token_id) (nat %token_amount))) ; IF_NONE { PUSH int 125 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 5 ; DIG 6 ; DUP ; GET 43 ; SWAP ; DUP ; DUG 8 ; GET 29 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 4 ; GET 41 ; CONTRACT %mint (pair (address %owner) (pair (nat %token_id) (nat %token_amount))) ; IF_NONE { PUSH int 125 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; DIG 6 ; DUP ; GET 43 ; SWAP ; DUP ; DUG 8 ; GET 27 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 2 ; DIG 3 ; DUP ; GET 45 ; DIG 2 ; DIG 3 ; ADD ; ADD ; UPDATE 45 ; NOW ; UPDATE 1 ; SWAP } { DROP ; SWAP ; DROP } ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair (pair address nat) (pair (list operation) (pair timestamp (pair (big_map (pair address nat) unit) (pair (pair nat nat) (pair address (pair nat (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair address (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair nat (pair address (pair address (pair nat (pair nat (big_map address (pair nat (pair (option address) nat)))))))))))))))))))))))))))) (pair unit (pair (list operation) (pair timestamp (pair (big_map (pair address nat) unit) (pair (pair nat nat) (pair address (pair nat (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair address (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair nat (pair address (pair address (pair nat (pair nat (big_map address (pair nat (pair (option address) nat)))))))))))))))))))))))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; GET 13 ; CONTRACT %update_stake (pair (address %address) (nat %amount)) ; IF_NONE { PUSH int 293 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; TRANSFER_TOKENS ; CONS ; UNIT ; PAIR 3 } ; SWAP ; LAMBDA (pair nat (pair (list operation) (pair timestamp (pair (big_map (pair address nat) unit) (pair (pair nat nat) (pair address (pair nat (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair address (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair nat (pair address (pair address (pair nat (pair nat (big_map address (pair nat (pair (option address) nat)))))))))))))))))))))))))))) (pair unit (pair (list operation) (pair timestamp (pair (big_map (pair address nat) unit) (pair (pair nat nat) (pair address (pair nat (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair address (pair nat (pair address (pair address (pair (pair nat nat) (pair (pair nat nat) (pair (pair nat nat) (pair nat (pair address (pair address (pair nat (pair nat (big_map address (pair nat (pair (option address) nat)))))))))))))))))))))))))))) { UNPAIR 3 ; SWAP ; DUP 3 ; GET 3 ; DIG 2 ; SENDER ; PAIR ; MEM ; IF {} { PUSH int 401 ; FAILWITH } ; UNIT ; PAIR 3 } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { IF_LEFT { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 6 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 6 ; DIG 7 ; DIG 7 ; DIG 7 ; PUSH nat 1000001 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; DUP 4 ; GET 46 ; SENDER ; GET ; IF_NONE { PUSH int 625 ; FAILWITH } {} ; DUP 5 ; GET 11 ; SWAP ; DUP ; DUG 2 ; GET 4 ; MUL ; LAMBDA (pair nat nat) nat { UNPAIR ; PUSH nat 0 ; DUP 3 ; DUP 3 ; EDIV ; IF_NONE { PUSH int 128 ; FAILWITH } { CDR } ; COMPARE ; EQ ; IF { EDIV ; IF_NONE { PUSH int 130 ; FAILWITH } { CAR } } { PUSH nat 1 ; DUG 2 ; EDIV ; IF_NONE { PUSH int 132 ; FAILWITH } { CAR } ; ADD } } ; DUP ; PUSH nat 1000000000000 ; DIG 3 ; PAIR ; EXEC ; PUSH nat 1000000000000 ; DUP 7 ; DIG 2 ; SUB ; ISNAT ; IF_NONE { PUSH int 637 ; FAILWITH } {} ; MUL ; DUG 2 ; DUP 7 ; GET 11 ; DIG 3 ; PAIR ; EXEC ; UPDATE 4 ; DIG 4 ; DUP ; GET 46 ; DUP 3 ; SOME ; SENDER ; UPDATE ; UPDATE 46 ; DUG 4 ; DIG 2 ; DUP 5 ; GET 41 ; CONTRACT %burn (pair (address %owner) (pair (nat %token_id) (nat %token_amount))) ; IF_NONE { PUSH int 125 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 6 ; DUP 8 ; GET 43 ; SENDER ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 2 ; DUP 5 ; DUP 5 ; DIG 6 ; GET 45 ; SUB ; ISNAT ; IF_NONE { PUSH int 646 ; FAILWITH } {} ; UPDATE 45 ; DUG 4 ; DUP 7 ; SWAP ; DUP ; DUG 2 ; GET 4 ; SENDER ; PAIR ; SWAP ; DIG 6 ; DIG 5 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 5 ; DIG 8 ; DIG 6 ; DIG 8 ; DIG 8 ; DUP ; GET 3 ; IF_NONE { DROP 2 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 3 ; DIG 3 ; DUP ; GET 17 ; CDR ; SWAP ; DUP ; DUG 5 ; GET 17 ; CAR ; DUP 4 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 655 ; FAILWITH } { CAR } ; DIG 2 ; GET 3 ; IF_NONE { PUSH int 604 ; FAILWITH } {} ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } } { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 46 ; SENDER ; MEM ; IF { DROP } { SWAP ; DUP ; GET 46 ; PUSH nat 0 ; DIG 3 ; PUSH nat 0 ; PAIR 3 ; SOME ; SENDER ; UPDATE ; UPDATE 46 } ; NIL operation } } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; DUP ; PUSH nat 0 ; COMPARE ; LT ; IF { NIL operation ; DUP 3 ; GET 7 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 19 ; FAILWITH } {} ; PUSH mutez 0 ; DUP 4 ; SELF_ADDRESS ; SENDER ; PAIR 3 ; TRANSFER_TOKENS ; CONS } { NIL operation } ; DIG 2 ; DUP ; GET 46 ; DUP ; SENDER ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 144 ; FAILWITH } {} ; DUP ; CAR ; DIG 6 ; ADD ; UPDATE 1 ; SOME ; SWAP ; UPDATE ; UPDATE 46 ; SWAP } { IF_LEFT { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 4 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 6 ; DIG 7 ; DIG 7 ; DIG 7 ; DUP 3 ; DUP 5 ; GET 46 ; EXEC ; DIG 4 ; SWAP ; DUP ; DUG 2 ; CAR ; UPDATE 46 ; DUG 4 ; DUP ; CDR ; NIL operation ; SWAP ; ITER { CONS } ; ITER { DIG 3 ; SWAP ; CONS ; DUG 2 } ; DROP 2 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 6 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 6 ; DIG 7 ; DIG 7 ; DIG 7 ; DUP 8 ; DIG 4 ; DUP ; GET 19 ; SWAP ; DUP ; DUG 6 ; GET 5 ; SENDER ; DIG 6 ; DUP ; CDR ; SWAP ; DUP ; DUG 8 ; CAR ; PAIR 5 ; SWAP ; DIG 5 ; DIG 4 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 6 ; DIG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DUP 5 ; GET 46 ; DUP 5 ; CAR ; GET ; IF_NONE { PUSH int 688 ; FAILWITH } {} ; DUP 8 ; SWAP ; DUP ; DUG 2 ; GET 4 ; DUP 7 ; CAR ; PAIR ; SWAP ; DIG 7 ; DIG 6 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 9 ; DIG 9 ; DIG 9 ; DIG 9 ; DIG 5 ; DIG 9 ; DIG 6 ; DIG 9 ; DIG 9 ; DIG 9 ; DUP ; GET 3 ; IF_NONE { DROP 3 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 3 ; DIG 3 ; DUP ; GET 17 ; CDR ; SWAP ; DUP ; DUG 5 ; GET 17 ; CAR ; DUP 4 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 699 ; FAILWITH } { CAR } ; DIG 2 ; GET 3 ; IF_NONE { PUSH int 604 ; FAILWITH } {} ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } } } } } { IF_LEFT { IF_LEFT { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 6 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 6 ; DIG 7 ; DIG 7 ; DIG 7 ; PUSH nat 1000001 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; FAILWITH } ; DUP 4 ; GET 46 ; SENDER ; GET ; IF_NONE { PUSH int 530 ; FAILWITH } {} ; DUP 5 ; GET 11 ; SWAP ; DUP ; DUG 2 ; GET 4 ; MUL ; LAMBDA (pair nat nat) nat { UNPAIR ; PUSH nat 0 ; DUP 3 ; DUP 3 ; EDIV ; IF_NONE { PUSH int 128 ; FAILWITH } { CDR } ; COMPARE ; EQ ; IF { EDIV ; IF_NONE { PUSH int 130 ; FAILWITH } { CAR } } { PUSH nat 1 ; DUG 2 ; EDIV ; IF_NONE { PUSH int 132 ; FAILWITH } { CAR } ; ADD } } ; PUSH nat 1000000000000 ; DIG 2 ; PAIR ; EXEC ; PUSH nat 1000000 ; DUP 7 ; GET 39 ; UNIT ; VIEW "get_price" nat ; IF_NONE { PUSH int 502 ; FAILWITH } {} ; DUP 7 ; DIG 3 ; ADD ; MUL ; EDIV ; IF_NONE { PUSH int 547 ; FAILWITH } { CAR } ; PUSH nat 100000000 ; DIG 6 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 8 ; GET 5 ; CAR ; DIG 3 ; MUL ; EDIV ; IF_NONE { PUSH int 552 ; FAILWITH } { CAR } ; MUL ; PUSH nat 1000000000000 ; PUSH nat 1000000 ; DUP 4 ; CAR ; MUL ; MUL ; COMPARE ; GE ; IF {} { PUSH int 801 ; FAILWITH } ; DUP ; GET 4 ; DUP 6 ; GET 11 ; PUSH nat 1000000000000 ; DUP 7 ; MUL ; EDIV ; IF_NONE { PUSH int 569 ; FAILWITH } { CAR } ; ADD ; UPDATE 4 ; DIG 4 ; DUP ; GET 46 ; DUP 3 ; SOME ; SENDER ; UPDATE ; UPDATE 46 ; DUG 4 ; DIG 2 ; DUP 5 ; GET 41 ; CONTRACT %mint (pair (address %owner) (pair (nat %token_id) (nat %token_amount))) ; IF_NONE { PUSH int 125 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 6 ; DUP ; GET 21 ; CDR ; SWAP ; DUP ; DUG 8 ; GET 21 ; CAR ; DUP 8 ; MUL ; EDIV ; IF_NONE { PUSH int 563 ; FAILWITH } { CAR } ; DUP 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 567 ; FAILWITH } {} ; DUP 8 ; GET 43 ; SENDER ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUP 5 ; GET 41 ; CONTRACT %mint (pair (address %owner) (pair (nat %token_id) (nat %token_amount))) ; IF_NONE { PUSH int 125 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 6 ; DUP ; GET 21 ; CDR ; SWAP ; DUP ; DUG 8 ; GET 21 ; CAR ; DUP 8 ; MUL ; EDIV ; IF_NONE { PUSH int 563 ; FAILWITH } { CAR } ; DIG 7 ; DUP ; GET 43 ; SWAP ; DUP ; DUG 9 ; GET 27 ; PAIR 3 ; TRANSFER_TOKENS ; CONS ; DUG 2 ; DIG 4 ; DUP ; GET 45 ; DUP 6 ; ADD ; UPDATE 45 ; DUG 4 ; DUP 7 ; SWAP ; DUP ; DUG 2 ; GET 4 ; SENDER ; PAIR ; SWAP ; DIG 6 ; DIG 5 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 5 ; DIG 8 ; DIG 6 ; DIG 8 ; DIG 8 ; DUP ; GET 3 ; IF_NONE { DROP 2 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 3 ; DIG 3 ; DUP ; GET 17 ; CDR ; SWAP ; DUP ; DUG 5 ; GET 17 ; CAR ; DUP 4 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 594 ; FAILWITH } { CAR } ; DIG 2 ; GET 3 ; IF_NONE { PUSH int 604 ; FAILWITH } {} ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; DUP 3 ; CDR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DUP ; GET 3 ; NONE unit ; DIG 4 ; UPDATE ; UPDATE 3 ; SWAP } } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; DUP 3 ; CDR ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DUP ; GET 3 ; PUSH (option unit) (Some Unit) ; DIG 4 ; UPDATE ; UPDATE 3 ; SWAP } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; UPDATE 5 ; SWAP } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; DUP ; DUG 3 ; GET 6 ; UPDATE 39 ; DUG 2 ; DUG 2 ; DUP ; DUG 3 ; GET 3 ; UPDATE 27 ; DUG 2 ; DUG 2 ; DUP ; DUG 3 ; GET 5 ; UPDATE 29 ; DUG 2 ; DUG 2 ; DUP ; DUG 3 ; CAR ; CAR ; UPDATE 13 ; DUG 2 ; DUG 2 ; DUP ; DUG 3 ; CAR ; GET 4 ; UPDATE 23 ; DUG 2 ; DUG 2 ; CAR ; GET 3 ; UPDATE 15 ; SWAP } } } } } { IF_LEFT { IF_LEFT { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; UPDATE 17 ; SWAP } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; UPDATE 19 ; SWAP } } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; UPDATE 21 ; SWAP } { IF_LEFT { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 15 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; NIL operation ; DIG 3 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; UPDATE 25 ; SWAP } { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; UPDATE 31 ; SWAP } } } } { IF_LEFT { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; UPDATE 33 ; SWAP } { IF_LEFT { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 3 ; PUSH nat 0 ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; SWAP ; DIG 2 ; UPDATE 35 ; SWAP } { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; SWAP ; DUP ; DUG 2 ; GET 23 ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 401 ; FAILWITH } ; NIL operation ; DUP 6 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 6 ; DIG 7 ; DIG 7 ; DIG 7 ; DUP 8 ; DIG 4 ; DUP ; GET 31 ; SWAP ; DUP ; DUG 6 ; GET 33 ; DIG 5 ; DUP ; GET 4 ; SWAP ; DUP ; GET 3 ; SWAP ; DUP ; DUG 8 ; CAR ; PAIR 5 ; SWAP ; DIG 5 ; DIG 4 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 8 ; DIG 6 ; DIG 8 ; DIG 7 ; DIG 8 ; DIG 8 ; DUP 5 ; GET 46 ; DUP 5 ; CAR ; GET ; IF_NONE { PUSH int 739 ; FAILWITH } {} ; DUP 8 ; SWAP ; DUP ; DUG 2 ; GET 4 ; DUP 7 ; CAR ; PAIR ; SWAP ; DIG 7 ; DIG 6 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 9 ; DIG 9 ; DIG 9 ; DIG 9 ; DIG 5 ; DIG 9 ; DIG 6 ; DIG 9 ; DIG 9 ; DIG 9 ; DUP ; GET 3 ; IF_NONE { DROP 3 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 3 ; DROP ; DIG 4 ; DROP ; DIG 4 ; DROP ; DIG 3 ; DIG 3 ; DUP ; GET 17 ; CDR ; SWAP ; DUP ; DUG 5 ; GET 17 ; CAR ; DUP 4 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 750 ; FAILWITH } { CAR } ; DIG 2 ; GET 3 ; IF_NONE { PUSH int 604 ; FAILWITH } {} ; PAIR ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } } } } { IF_LEFT { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 6 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; UNPAIR 3 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 6 ; DIG 7 ; DIG 7 ; DIG 7 ; DUP 3 ; ITER { DUP 5 ; GET 46 ; SWAP ; DUP ; DUG 2 ; GET ; IF_NONE { PUSH int 835 ; FAILWITH } {} ; DUP 8 ; SWAP ; DUP ; DUG 2 ; GET 4 ; DUP 4 ; PAIR ; SWAP ; DIG 7 ; DIG 6 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 9 ; DIG 9 ; DIG 9 ; DIG 9 ; DIG 5 ; DIG 9 ; DIG 6 ; DIG 9 ; DIG 9 ; DIG 9 ; DUP ; GET 3 ; IF_NONE { DROP 2 } { DROP ; SWAP ; DROP ; DUP 7 ; DIG 5 ; DUP ; GET 17 ; CDR ; SWAP ; DUP ; DUG 7 ; GET 17 ; CAR ; DUP 4 ; GET 4 ; MUL ; EDIV ; IF_NONE { PUSH int 846 ; FAILWITH } { CAR } ; DIG 2 ; GET 3 ; IF_NONE { PUSH int 604 ; FAILWITH } {} ; PAIR ; SWAP ; DIG 5 ; DIG 4 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 7 ; DIG 5 ; DIG 7 ; DIG 6 ; DIG 7 } } ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } { IF_LEFT { DROP ; SWAP ; DROP ; SWAP ; DROP ; DIG 2 ; DROP ; AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DIG 2 ; UNIT ; SWAP ; DUG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR } { AMOUNT ; PUSH mutez 0 ; COMPARE ; EQ ; IF {} { AMOUNT ; FAILWITH } ; NIL operation ; DUP 6 ; UNIT ; SWAP ; DIG 4 ; DIG 3 ; DIG 3 ; PAIR 3 ; EXEC ; CDR ; UNPAIR ; DUG 6 ; DUG 6 ; DUG 6 ; DIG 5 ; DIG 6 ; DIG 6 ; DUP 3 ; GET 46 ; SENDER ; GET ; IF_NONE { PUSH int 774 ; FAILWITH } {} ; PUSH nat 100000000 ; DIG 4 ; DUP ; GET 5 ; CAR ; SWAP ; DUP ; DUG 6 ; GET 39 ; UNIT ; VIEW "get_price" nat ; IF_NONE { PUSH int 502 ; FAILWITH } {} ; DUP 7 ; GET 11 ; DUP 5 ; GET 4 ; MUL ; MUL ; MUL ; MUL ; DUP 5 ; GET 5 ; CDR ; PUSH nat 1000000000000 ; PUSH nat 1000000 ; DUP ; PUSH nat 1000000000000 ; DUP 9 ; DUP 8 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH int 776 ; FAILWITH } {} ; MUL ; MUL ; MUL ; MUL ; MUL ; COMPARE ; GE ; IF {} { PUSH int 801 ; FAILWITH } ; DUP ; DUP 4 ; DIG 2 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH int 776 ; FAILWITH } {} ; UPDATE 1 ; DIG 3 ; DUP ; GET 46 ; DIG 2 ; SOME ; SENDER ; UPDATE ; UPDATE 46 ; DUG 2 ; PUSH nat 0 ; DUP 3 ; COMPARE ; GT ; IF { DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DIG 3 ; DROP ; DUP 3 ; GET 7 ; CONTRACT %transfer (pair (address %from) (pair (address %to) (nat %value))) ; IF_NONE { PUSH int 19 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; SENDER ; SELF_ADDRESS ; PAIR 3 ; TRANSFER_TOKENS ; CONS } { SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } } } } } ; NIL operation ; SWAP ; ITER { CONS } ; PAIR } ; view "accrual_update_timestamp" unit timestamp { CDR ; CAR } ; view "collateral_ratio" unit (pair (nat %numerator) (nat %denominator)) { CDR ; GET 5 } ; view "compound_interest_rate" unit nat { CDR ; GET 11 } ; view "governance_token_contract" unit address { CDR ; GET 13 } ; view "interest_rate_setter_contract" unit address { CDR ; GET 15 } ; view "introducer_ratio" unit (pair (nat %numerator) (nat %denominator)) { CDR ; GET 17 } ; view "is_admin" (pair (address %owner) (nat %token_id)) bool { UNPAIR ; SWAP ; GET 3 ; SWAP ; MEM } ; view "liquidation_payout_ratio" unit (pair (nat %numerator) (nat %denominator)) { CDR ; GET 19 } ; view "minting_fee_ratio" unit (pair (nat %numerator) (nat %denominator)) { CDR ; GET 21 } ; view "options_contract" unit address { CDR ; GET 23 } ; view "reference_interest_rate" unit nat { CDR ; GET 25 } ; view "reward_pool_contract" unit address { CDR ; GET 27 } ; view "savings_pool_contract" unit address { CDR ; GET 29 } ; view "settlement_payout_ratio" unit (pair (nat %numerator) (nat %denominator)) { CDR ; GET 31 } ; view "settlement_ratio" unit (pair (nat %numerator) (nat %denominator)) { CDR ; GET 33 } ; view "settlement_reward_fee_ratio" unit (pair (nat %numerator) (nat %denominator)) { CDR ; GET 35 } ; view "spread_rate" unit nat { CDR ; GET 37 } ; view "target_price_oracle" unit address { CDR ; GET 39 } ; view "total_supply" unit nat { CDR ; GET 45 } ; view "vault_context" address (option (pair (nat %balance) (pair (option %introducer address) (nat %minted)))) { UNPAIR ; SWAP ; DUP ; DUG 2 ; GET 46 ; SWAP ; DUP ; DUG 2 ; MEM ; IF { SWAP ; GET 46 ; SWAP ; GET ; IF_NONE { PUSH int 1014 ; FAILWITH } {} ; SOME } { DROP 2 ; NONE (pair nat (pair (option address) nat)) } } }