x
608
1154
{ parameter (or
(or
(or
(or (nat %burn)
(pair %create_vault (option %baker key_hash)
(option %introducer address)))
(or
(lambda %execute
(pair
(big_map address
(pair (address %address)
(pair (nat %balance)
(pair (option %introducer address)
(nat %minted)))))
(big_map address address))
(pair
(pair
(big_map address
(pair (address %address)
(pair (nat %balance)
(pair (option %introducer address)
(nat %minted)))))
(big_map address address))
(list operation)))
(or (pair %liquidate (address %vault_owner) (nat %token_amount))
(nat %mint))))
(or
(or
(pair %remove_administrator (address %administrator_to_remove)
(nat %token_id))
(or
(pair %set_administrator (address %administrator_to_set)
(nat %token_id))
(pair %set_collateral_ratio (nat %numerator) (nat %denominator))))
(or
(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 (pair %set_introducer_ratio (nat %numerator) (nat %denominator))
(pair %set_liquidation_payout_ratio (nat %numerator)
(nat %denominator))))))
(or
(or
(or (pair %set_minting_fee_ratio (nat %numerator) (nat %denominator))
(nat %set_reference_interest_rate))
(or
(pair %set_settlement_payout_ratio (nat %numerator)
(nat %denominator))
(or (pair %set_settlement_ratio (nat %numerator) (nat %denominator))
(pair %set_settlement_reward_fee_ratio (nat %numerator)
(nat %denominator)))))
(or
(or (mutez %set_vault_balance)
(or (option %set_vault_delegate key_hash)
(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)
(pair
(big_map %vault_contexts
address
(pair
(address %address)
(pair
(nat %balance)
(pair
(option %introducer address)
(nat %minted)))))
(big_map %vault_lookup
address
address))))))))))))))))))))))))) ;
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
(pair
(big_map
address
(pair
address
(pair
nat
(pair
(option address)
nat))))
(big_map
address
address)))))))))))))))))))))))))))
(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
(pair
(big_map
address
(pair
address
(pair
nat
(pair
(option address)
nat))))
(big_map
address
address)))))))))))))))))))))))))))
{ UNPAIR 3 ;
SWAP ;
DUP 3 ;
GET 47 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 341 ; FAILWITH } {} ;
DUP ;
GET 3 ;
DUP 5 ;
GET 11 ;
DUP 3 ;
GET 6 ;
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 3 ;
MUL ;
MUL ;
PUSH nat 1000000000000 ;
PUSH nat 1 ;
PUSH nat 1000000 ;
DUP ;
DUP 7 ;
MUL ;
MUL ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH int 366 ; FAILWITH } { CAR } ;
DIG 5 ;
DUP ;
GET 7 ;
CDR ;
SWAP ;
DUP ;
DUG 7 ;
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 6 ;
DUP ;
GET 10 ;
SWAP ;
DUP ;
DUG 8 ;
GET 9 ;
PUSH nat 1000000 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 370 ; FAILWITH } { CAR } ;
DIG 2 ;
DUP ;
DUP 3 ;
COMPARE ;
LE ;
IF { DROP } { SWAP ; DROP } ;
PUSH nat 1000000000000000000 ;
PUSH nat 1000000 ;
DUP 10 ;
GET 39 ;
UNIT ;
VIEW "get_price" nat ;
IF_NONE { PUSH int 502 ; FAILWITH } {} ;
DUP 10 ;
GET 3 ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH int 388 ; FAILWITH } { CAR } ;
MUL ;
EDIV ;
IF_NONE { PUSH int 392 ; FAILWITH } { CAR } ;
DIG 6 ;
DUP ;
GET 35 ;
CDR ;
SWAP ;
DUP ;
DUG 8 ;
GET 35 ;
CAR ;
PUSH nat 1000000000000000000 ;
PUSH nat 1000000 ;
DUP 11 ;
GET 39 ;
UNIT ;
VIEW "get_price" nat ;
IF_NONE { PUSH int 502 ; FAILWITH } {} ;
DUP 11 ;
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 7 ;
GET 3 ;
DIG 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 404 ; FAILWITH } {} ;
PUSH nat 1 ;
DUP 9 ;
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 7 ;
DUP ;
GET 7 ;
CDR ;
SWAP ;
DUP ;
DUG 9 ;
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 8 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 413 ; FAILWITH } {} ;
MUL ;
MUL ;
COMPARE ;
LT ;
IF {} { PUSH int 803 ; FAILWITH } ;
DIG 5 ;
DUP 8 ;
GET 41 ;
CONTRACT %burn (pair (address %owner)
(pair (nat %token_id) (nat %token_amount))) ;
IF_NONE { PUSH int 125 ; FAILWITH } {} ;
PUSH mutez 0 ;
DUP 9 ;
GET 3 ;
DUP 11 ;
GET 43 ;
SENDER ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS ;
DUG 5 ;
DUP 8 ;
DUP 8 ;
GET 3 ;
DIG 9 ;
GET 45 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 428 ; FAILWITH } {} ;
UPDATE 45 ;
DUG 7 ;
DIG 4 ;
DUP 8 ;
GET 11 ;
PUSH nat 1000000000000 ;
DIG 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 433 ; FAILWITH } { CAR } ;
UPDATE 6 ;
DUP 3 ;
DIG 4 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 437 ; FAILWITH } {} ;
UPDATE 3 ;
DUG 2 ;
DIG 5 ;
DUP ;
GET 47 ;
DUP 5 ;
SOME ;
DUP 8 ;
CAR ;
UPDATE ;
UPDATE 47 ;
DUG 5 ;
DIG 3 ;
DUP 4 ;
CAR ;
CONTRACT %withdraw (pair (address %recipient) (mutez %amount)) ;
IF_NONE { PUSH int 444 ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH mutez 1 ;
DUP 5 ;
DIG 6 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 452 ; FAILWITH } {} ;
MUL ;
DIG 6 ;
GET 5 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
DUG 2 ;
DUG 2 ;
CAR ;
CONTRACT %withdraw (pair (address %recipient) (mutez %amount)) ;
IF_NONE { PUSH int 444 ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH mutez 1 ;
DIG 4 ;
MUL ;
DUP 5 ;
GET 27 ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
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
(pair
(big_map
address
(pair
address
(pair
nat
(pair
(option address)
nat))))
(big_map
address
address)))))))))))))))))))))))))))
(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
(pair
(big_map
address
(pair
address
(pair
nat
(pair
(option address)
nat))))
(big_map
address
address)))))))))))))))))))))))))))
{ 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
(pair
(big_map
address
(pair
address
(pair
nat
(pair
(option address)
nat))))
(big_map
address
address)))))))))))))))))))))))))))
(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
(pair
(big_map
address
(pair
address
(pair
nat
(pair
(option address)
nat))))
(big_map
address
address)))))))))))))))))))))))))))
{ 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
(pair
(big_map
address
(pair
address
(pair
nat
(pair
(option address)
nat))))
(big_map
address
address)))))))))))))))))))))))))))
(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
(pair
(big_map
address
(pair
address
(pair
nat
(pair
(option address)
nat))))
(big_map
address
address)))))))))))))))))))))))))))
{ 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 47 ;
SENDER ;
GET ;
IF_NONE { PUSH int 625 ; FAILWITH } {} ;
DUP 5 ;
GET 11 ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
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 6 ;
DIG 4 ;
DUP ;
GET 47 ;
DUP 3 ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 47 ;
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 6 ;
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 5 ;
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 6 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 655 ; FAILWITH } { CAR } ;
DIG 2 ;
GET 5 ;
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 ;
SWAP ;
DUP ;
DUG 2 ;
GET 47 ;
SENDER ;
MEM ;
IF
{ DROP ;
DUP ;
GET 47 ;
NIL operation ;
SWAP ;
SENDER ;
GET ;
IF_NONE { PUSH int 159 ; FAILWITH } {} ;
CAR ;
CONTRACT unit ;
IF_NONE { PUSH int 159 ; FAILWITH } {} ;
AMOUNT ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ NIL operation ;
SELF_ADDRESS ;
AMOUNT ;
DUP 4 ;
CAR ;
CREATE_CONTRACT { parameter (or (unit %default)
(or
(option %set_delegate key_hash)
(pair %withdraw
(address %recipient)
(mutez %amount)))) ;
storage address ;
code { CAST (pair
(or unit
(or (option key_hash)
(pair address mutez)))
address) ;
UNPAIR ;
IF_LEFT
{ DROP ;
DUP ;
CONTRACT %set_vault_balance mutez ;
IF_NONE
{ PUSH int 70 ; FAILWITH }
{} ;
NIL operation ;
SWAP ;
PUSH mutez 0 ;
BALANCE ;
TRANSFER_TOKENS ;
CONS }
{ IF_LEFT
{ SWAP ;
DUP ;
DUG 2 ;
SENDER ;
COMPARE ;
EQ ;
IF
{}
{ PUSH int 401 ;
FAILWITH } ;
SET_DELEGATE ;
NIL operation ;
SWAP ;
CONS ;
SELF_ADDRESS ;
CONTRACT unit ;
IF_NONE
{ PUSH int 63 ; FAILWITH }
{} ;
PUSH mutez 0 ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ SWAP ;
DUP ;
DUG 2 ;
SENDER ;
COMPARE ;
EQ ;
IF
{}
{ PUSH int 401 ;
FAILWITH } ;
PUSH nat 0 ;
PUSH mutez 1 ;
DUP 3 ;
CDR ;
EDIV ;
IF_NONE
{ UNIT ; FAILWITH }
{} ;
CAR ;
COMPARE ;
GT ;
IF
{ DUP ;
CAR ;
CONTRACT unit ;
IF_NONE
{ PUSH int 89 ;
FAILWITH }
{} ;
NIL operation ;
SWAP ;
DIG 2 ;
CDR ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP ; NIL operation } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR } } ;
PAIR ;
DUP ;
DUG 2 ;
CAR ;
CONS ;
SWAP ;
DIG 3 ;
DUP ;
GET 47 ;
PUSH nat 0 ;
DUP 6 ;
CDR ;
PUSH mutez 1 ;
AMOUNT ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
DUP 6 ;
CDR ;
PAIR 4 ;
DIG 5 ;
DROP ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 47 ;
DUP ;
GET 48 ;
SENDER ;
SOME ;
DIG 3 ;
CDR ;
UPDATE ;
UPDATE 48 ;
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 ;
DIG 4 ;
DUP ;
GET 48 ;
SWAP ;
DUP ;
DUG 6 ;
GET 47 ;
PAIR ;
EXEC ;
DIG 4 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
UPDATE 47 ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CDR ;
UPDATE 48 ;
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 }
{ 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 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 47 ;
DUP 5 ;
CAR ;
GET ;
IF_NONE { PUSH int 688 ; FAILWITH } {} ;
DUP 8 ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
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 5 ;
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 6 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 699 ; FAILWITH } { CAR } ;
DIG 2 ;
GET 5 ;
IF_NONE { PUSH int 604 ; FAILWITH } {} ;
PAIR ;
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 ;
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 47 ;
SENDER ;
GET ;
IF_NONE { PUSH int 530 ; FAILWITH } {} ;
DUP 5 ;
GET 11 ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
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 547 ; 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 552 ; FAILWITH } { CAR } ;
MUL ;
PUSH nat 1000000000000 ;
PUSH nat 1000000 ;
DUP 4 ;
GET 3 ;
MUL ;
MUL ;
COMPARE ;
GE ;
IF {} { PUSH int 801 ; FAILWITH } ;
DUP ;
GET 6 ;
DUP 6 ;
GET 11 ;
PUSH nat 1000000000000 ;
DUP 7 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 569 ; FAILWITH } { CAR } ;
ADD ;
UPDATE 6 ;
DIG 4 ;
DUP ;
GET 47 ;
DUP 3 ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 47 ;
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 6 ;
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 5 ;
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 6 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 594 ; FAILWITH } { CAR } ;
DIG 2 ;
GET 5 ;
IF_NONE { PUSH int 604 ; FAILWITH } {} ;
PAIR ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR } } } } }
{ 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 ;
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 }
{ 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 } } }
{ 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 ;
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
{ 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
{ 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 21 ;
SWAP }
{ 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 } }
{ 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 31 ;
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 33 ;
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 35 ;
SWAP } } } }
{ IF_LEFT
{ IF_LEFT
{ 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 ;
DUP ;
GET 47 ;
DUP ;
DIG 4 ;
GET 48 ;
SENDER ;
GET ;
IF_NONE { PUSH int 113 ; FAILWITH } {} ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 112 ; FAILWITH } {} ;
PUSH mutez 1 ;
DIG 5 ;
EDIV ;
IF_NONE { UNIT ; FAILWITH } {} ;
CAR ;
UPDATE 3 ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 47 ;
NIL operation }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
NIL operation ;
DUP 3 ;
GET 47 ;
SENDER ;
GET ;
IF_NONE { PUSH int 130 ; FAILWITH } {} ;
CAR ;
CONTRACT %set_delegate (option key_hash) ;
IF_NONE { PUSH int 128 ; FAILWITH } {} ;
AMOUNT ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ 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 47 ;
DUP 5 ;
CAR ;
GET ;
IF_NONE { PUSH int 739 ; FAILWITH } {} ;
DUP 8 ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
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 5 ;
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 6 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 750 ; FAILWITH } { CAR } ;
DIG 2 ;
GET 5 ;
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 47 ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 835 ; FAILWITH } {} ;
DUP 8 ;
SWAP ;
DUP ;
DUG 2 ;
GET 6 ;
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 5 ;
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 6 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 846 ; FAILWITH } { CAR } ;
DIG 2 ;
GET 5 ;
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 }
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
NIL operation ;
DIG 3 ;
UNIT ;
SWAP ;
DIG 4 ;
DIG 3 ;
DIG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SWAP ;
DUP ;
DUG 3 ;
GET 47 ;
SENDER ;
GET ;
IF_NONE { PUSH int 774 ; 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 6 ;
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 ;
GET 3 ;
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 ;
GET 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 776 ; FAILWITH } {} ;
UPDATE 3 ;
DIG 3 ;
DUP ;
GET 47 ;
DUP 3 ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 47 ;
DUG 3 ;
CAR ;
CONTRACT %withdraw (pair (address %recipient)
(mutez %amount)) ;
IF_NONE { PUSH int 798 ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH mutez 1 ;
DIG 4 ;
MUL ;
SENDER ;
PAIR ;
TRANSFER_TOKENS ;
CONS } } } } } ;
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 (address %address)
(pair (nat %balance)
(pair (option %introducer address) (nat %minted)))))
{ UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
GET 47 ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{ SWAP ; GET 47 ; SWAP ; GET ; IF_NONE { PUSH int 1014 ; FAILWITH } {} ; SOME }
{ DROP 2 ; NONE (pair address (pair nat (pair (option address) nat))) } } }