x
644
1265
{ 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 1000000 ; DUP 9 ; GET 39 ; UNIT ; VIEW "get_price" nat ; IF_NONE { PUSH int 502 ; FAILWITH } {} ; DUP 3 ; MUL ; MUL ; PUSH nat 1000000000000 ; PUSH nat 1 ; PUSH nat 1000000 ; 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 1000000000000000000 ; PUSH nat 1000000 ; 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 1000000000000000000 ; PUSH nat 1000000 ; 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 1 ; 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 1000000 ; 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 } ; PUSH nat 1000001 ; DUP 4 ; COMPARE ; GE ; IF {} { PUSH int 602 ; 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 432 ; FAILWITH } {} ; UPDATE 45 ; DUG 11 ; DIG 8 ; DUP 12 ; GET 11 ; PUSH nat 1000000000000 ; DIG 3 ; MUL ; EDIV ; IF_NONE { PUSH int 437 ; FAILWITH } { CAR } ; UPDATE 4 ; DUP 3 ; DUP 9 ; SUB ; ISNAT ; IF_NONE { PUSH int 441 ; 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 473 ; FAILWITH } {} ; COMPARE ; GT ; IF { DIG 8 ; DUP 11 ; GET 7 ; CONTRACT %transfer (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; DUP 6 ; DUP 8 ; SUB ; ISNAT ; IF_NONE { PUSH int 473 ; FAILWITH } {} ; DUP 16 ; GET 9 ; DUP 16 ; GET 5 ; PAIR 3 ; CONS ; SELF_ADDRESS ; PAIR ; CONS ; 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 (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; DIG 5 ; DIG 6 ; DUP ; GET 9 ; SWAP ; DUP ; DUG 8 ; GET 27 ; PAIR 3 ; CONS ; SELF_ADDRESS ; PAIR ; CONS ; 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 629 ; 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 641 ; 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 650 ; 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 659 ; 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 (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; DUP 6 ; DUP 8 ; GET 9 ; SELF_ADDRESS ; PAIR 3 ; CONS ; SENDER ; PAIR ; CONS ; 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 692 ; 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 703 ; 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 534 ; 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 1 ; 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 551 ; FAILWITH } { CAR } ; PUSH nat 1000000 ; DIG 6 ; DUP ; GET 5 ; CDR ; SWAP ; DUP ; DUG 8 ; GET 5 ; CAR ; DIG 3 ; MUL ; EDIV ; IF_NONE { PUSH int 556 ; 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 573 ; 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 567 ; FAILWITH } { CAR } ; DUP 7 ; SUB ; ISNAT ; IF_NONE { PUSH int 571 ; 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 567 ; 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 598 ; 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 743 ; 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 754 ; 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 839 ; 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 850 ; 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 778 ; FAILWITH } {} ; PUSH nat 1000000 ; 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 1 ; PUSH nat 1000000 ; PUSH nat 1000000000000 ; DUP 9 ; DUP 8 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH int 780 ; 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 780 ; 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 (list (pair (address %from_) (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; IF_NONE { PUSH int 36 ; FAILWITH } {} ; PUSH mutez 0 ; NIL (pair address (list (pair address (pair nat nat)))) ; NIL (pair address (pair nat nat)) ; DIG 5 ; DUP 7 ; GET 9 ; SENDER ; PAIR 3 ; CONS ; SELF_ADDRESS ; PAIR ; CONS ; 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 1018 ; FAILWITH } {} ; SOME } { DROP 2 ; NONE (pair nat (pair (option address) nat)) } } }