x
935
1850
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 124 ; FAILWITH } {} ;
PUSH mutez 0 ;
SELF_ADDRESS ;
CONTRACT %set_target_price nat ;
IF_NONE { PUSH int 126 ; 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 149 ; FAILWITH } { CAR } ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUG 3 ;
DIG 2 ;
DUP 4 ;
GET 5 ;
CDR ;
CONTRACT %mint (pair (address %owner)
(pair (nat %token_id) (nat %token_amount))) ;
IF_NONE { PUSH int 175 ; 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 %owner)
(pair (nat %token_id) (nat %token_amount))) ;
IF_NONE { PUSH int 175 ; 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 %address) (nat %amount)) ;
IF_NONE { PUSH int 168 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS ;
UNIT ;
PAIR 3 } ;
SWAP ;
LAMBDA
unit
unit
{ DROP ; SELF_ADDRESS ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 400 ; FAILWITH } ; UNIT } ;
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 588 ; 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 %from)
(pair (address %to) (nat %value))) ;
IF_NONE { PUSH int 91 ; 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 441 ; 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
{ DUP 4 ;
UNIT ;
EXEC ;
DIG 2 ;
DUP ;
GET 10 ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 613 ; FAILWITH } {} ;
PUSH nat 1000000 ;
DUP 5 ;
GET 3 ;
GET 4 ;
DUP 5 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 615 ; FAILWITH } { CAR } ;
PUSH nat 1000000000000000000 ;
PUSH nat 100000000 ;
PUSH nat 2 ;
DUP 4 ;
LSR ;
DUP 4 ;
ADD ;
MUL ;
EDIV ;
IF_NONE { PUSH int 617 ; FAILWITH } { CAR } ;
DUP ;
PUSH nat 1 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH int 602 ; FAILWITH } ;
PUSH nat 1000000000000 ;
DUP 7 ;
CAR ;
GET 3 ;
CAR ;
DUP 5 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 620 ; FAILWITH } { CAR } ;
DIG 3 ;
DUP 7 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1000000000000 ;
DUP 8 ;
DUP 5 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 622 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 622 ; FAILWITH } { CAR } ;
UPDATE 4 ;
DUP ;
DUG 4 ;
UNPAIR ;
CAR ;
DUP 4 ;
DIG 6 ;
CAR ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 623 ; FAILWITH } {} ;
SWAP ;
PAIR ;
PAIR ;
DUG 3 ;
DUP 7 ;
DUP ;
GET 10 ;
DUP 6 ;
SOME ;
DIG 9 ;
GET 3 ;
GET 3 ;
UPDATE ;
UPDATE 10 ;
DUG 6 ;
DUP 4 ;
CAR ;
CAR ;
IF
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
NIL operation ;
DIG 5 ;
PUSH nat 1000000 ;
DUP 7 ;
GET 3 ;
GET 4 ;
DUP 7 ;
DIG 5 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 628 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 628 ; FAILWITH } { CAR } ;
DUP 6 ;
GET 3 ;
GET 3 ;
PAIR ;
SWAP ;
DIG 5 ;
DIG 3 ;
DIG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SWAP ;
DUG 3 }
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
NIL operation } ;
DUP 4 ;
CAR ;
CAR ;
GET 3 ;
CONTRACT %transfer (pair (address %from)
(pair (address %to) (nat %value))) ;
IF_NONE { PUSH int 91 ; 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 %owner)
(pair (nat %token_id) (nat %token_amount))) ;
IF_NONE { PUSH int 175 ; 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 636 ; FAILWITH } {} ;
UPDATE 9 ;
SWAP }
{ IF_LEFT
{ DUP 4 ;
UNIT ;
EXEC ;
DROP ;
DUP ;
PUSH nat 1000001 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH int 602 ; FAILWITH } ;
SWAP ;
DUP ;
GET 10 ;
SWAP ;
DUP ;
DUG 3 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 324 ; FAILWITH } {} ;
PUSH nat 1000000000000 ;
DUP 4 ;
CAR ;
GET 3 ;
CAR ;
DUP 3 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 326 ; FAILWITH } { CAR } ;
PUSH nat 1000000 ;
DUP 5 ;
GET 3 ;
GET 4 ;
DUP 5 ;
DUP 4 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 327 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 327 ; FAILWITH } { CAR } ;
DIG 2 ;
DUP 5 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1000000000000 ;
DUP 6 ;
DIG 5 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 329 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 329 ; FAILWITH } { CAR } ;
UPDATE 4 ;
SWAP ;
DUP 4 ;
DUP ;
GET 10 ;
DUP 4 ;
SOME ;
DIG 6 ;
GET 3 ;
GET 3 ;
UPDATE ;
UPDATE 10 ;
DUG 3 ;
NIL operation ;
DUP 5 ;
GET 5 ;
CDR ;
CONTRACT %burn (pair (address %owner)
(pair (nat %token_id)
(nat %token_amount))) ;
IF_NONE { PUSH int 175 ; FAILWITH } {} ;
PUSH mutez 0 ;
DUP 6 ;
DIG 7 ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
DUG 9 ;
GET 3 ;
GET 3 ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS ;
DUP 5 ;
DIG 4 ;
DIG 5 ;
GET 9 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 335 ; FAILWITH } {} ;
UPDATE 9 ;
DUG 3 ;
DIG 2 ;
CAR ;
CAR ;
IF
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 3 ;
DIG 2 ;
DUP 4 ;
GET 3 ;
GET 3 ;
PAIR ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR }
{ SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } }
{ DUP 4 ;
UNIT ;
EXEC ;
DUP 3 ;
GET 10 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 381 ; FAILWITH } {} ;
DUP ;
CAR ;
CDR ;
PUSH nat 100000000 ;
PUSH nat 2 ;
DUP 7 ;
GET 3 ;
GET 4 ;
PUSH nat 1000000000000 ;
DUP 9 ;
CAR ;
GET 3 ;
CAR ;
DUP 7 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 384 ; FAILWITH } { CAR } ;
MUL ;
MUL ;
MUL ;
PUSH nat 1000000 ;
SWAP ;
EDIV ;
IF_NONE { PUSH int 386 ; FAILWITH } { CAR } ;
DUP ;
PUSH nat 1000000000000 ;
PUSH nat 1000000 ;
DUP 5 ;
MUL ;
MUL ;
COMPARE ;
LT ;
IF { PUSH bool True } { DUP 3 ; GET 3 } ;
IF {} { PUSH int 802 ; FAILWITH } ;
DIG 2 ;
PUSH bool True ;
UPDATE 3 ;
DUG 2 ;
PUSH nat 1000000000000000000 ;
PUSH nat 100000000 ;
PUSH nat 3 ;
PUSH nat 1000000 ;
DUP 10 ;
GET 3 ;
GET 4 ;
DUP 10 ;
CDR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 392 ; FAILWITH } { CAR } ;
LSR ;
PUSH nat 1000000 ;
DUP 10 ;
GET 3 ;
GET 4 ;
DUP 10 ;
CDR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 392 ; FAILWITH } { CAR } ;
ADD ;
MUL ;
EDIV ;
IF_NONE { PUSH int 394 ; FAILWITH } { CAR } ;
PUSH nat 1000000 ;
DUP 8 ;
GET 3 ;
GET 4 ;
DUP 8 ;
CDR ;
PUSH nat 1000000000000 ;
DUP 11 ;
CAR ;
GET 3 ;
CAR ;
DUP 9 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 384 ; FAILWITH } { CAR } ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 396 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 396 ; FAILWITH } { CAR } ;
PUSH nat 100000000 ;
PUSH nat 3 ;
DUP 3 ;
MUL ;
MUL ;
PUSH nat 1000000000000 ;
PUSH nat 1000000 ;
DUP 5 ;
DUP 8 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 398 ; FAILWITH } {} ;
MUL ;
MUL ;
COMPARE ;
LT ;
IF {} { PUSH int 803 ; FAILWITH } ;
PUSH nat 1 ;
DUP 3 ;
COMPARE ;
GE ;
IF {} { PUSH int 602 ; FAILWITH } ;
PUSH nat 100000000 ;
PUSH nat 100 ;
PUSH nat 3 ;
DUP 4 ;
MUL ;
MUL ;
MUL ;
PUSH nat 1000000000000 ;
PUSH nat 105 ;
PUSH nat 1000000 ;
DUP 6 ;
DUP 9 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 401 ; FAILWITH } {} ;
MUL ;
MUL ;
MUL ;
COMPARE ;
GE ;
IF { DIG 4 ; PUSH bool False ; UPDATE 3 ; DUG 4 } {} ;
NIL operation ;
DUP 9 ;
GET 5 ;
CDR ;
CONTRACT %burn (pair (address %owner)
(pair (nat %token_id)
(nat %token_amount))) ;
IF_NONE { PUSH int 175 ; FAILWITH } {} ;
PUSH mutez 0 ;
DUP 10 ;
CDR ;
DIG 11 ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
DUG 13 ;
GET 3 ;
GET 3 ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS ;
DUP 9 ;
DUP 9 ;
CDR ;
DIG 10 ;
GET 9 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 406 ; FAILWITH } {} ;
UPDATE 9 ;
DUG 8 ;
DUP 6 ;
DUP 10 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1000000000000 ;
DUP 11 ;
CDR ;
PUSH nat 1000000000000 ;
DUP 14 ;
CAR ;
GET 3 ;
CAR ;
DIG 11 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 384 ; FAILWITH } { CAR } ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 408 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ;
UPDATE 4 ;
DUP ;
DUG 6 ;
UNPAIR ;
CAR ;
DUP 5 ;
DIG 8 ;
CAR ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 409 ; FAILWITH } {} ;
SWAP ;
PAIR ;
PAIR ;
DUG 5 ;
DIG 8 ;
DUP ;
GET 10 ;
DUP 8 ;
SOME ;
DUP 11 ;
CAR ;
UPDATE ;
UPDATE 10 ;
DUG 8 ;
DUP 6 ;
CAR ;
CAR ;
IF
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 5 ;
DIG 2 ;
DIG 4 ;
CAR ;
PAIR ;
SWAP ;
DIG 4 ;
DIG 3 ;
DIG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SWAP ;
DUG 2 }
{ SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP } ;
DUP 3 ;
CAR ;
CAR ;
GET 3 ;
CONTRACT %transfer (pair (address %from)
(pair (address %to) (nat %value))) ;
IF_NONE { PUSH int 91 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DUP 5 ;
GET 3 ;
GET 3 ;
SELF_ADDRESS ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS } } }
{ IF_LEFT
{ DUP 4 ;
UNIT ;
EXEC ;
DROP ;
DUP ;
PUSH nat 1000001 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH int 602 ; FAILWITH } ;
SWAP ;
DUP ;
GET 10 ;
SWAP ;
DUP ;
DUG 3 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 261 ; FAILWITH } {} ;
PUSH nat 1000000000000 ;
DUP 4 ;
CAR ;
GET 3 ;
CAR ;
DUP 3 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 264 ; FAILWITH } { CAR } ;
PUSH nat 1000000 ;
DUP 5 ;
GET 3 ;
GET 4 ;
DUP 5 ;
DIG 3 ;
ADD ;
MUL ;
EDIV ;
IF_NONE { PUSH int 265 ; FAILWITH } { CAR } ;
PUSH nat 100000000 ;
PUSH nat 3 ;
DUP 3 ;
MUL ;
MUL ;
PUSH nat 1000000000000 ;
PUSH nat 1000000 ;
DUP 5 ;
CAR ;
CDR ;
MUL ;
MUL ;
COMPARE ;
GE ;
IF {} { PUSH int 801 ; FAILWITH } ;
SWAP ;
DUP ;
GET 4 ;
DUP 5 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1000000000000 ;
DUP 6 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 274 ; FAILWITH } { CAR } ;
ADD ;
UPDATE 4 ;
SWAP ;
DUP 4 ;
DUP ;
GET 10 ;
DUP 4 ;
SOME ;
DIG 6 ;
GET 3 ;
GET 3 ;
UPDATE ;
UPDATE 10 ;
DUG 3 ;
NIL operation ;
DUP 5 ;
GET 5 ;
CDR ;
CONTRACT %mint (pair (address %owner)
(pair (nat %token_id) (nat %token_amount))) ;
IF_NONE { PUSH int 175 ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH nat 6 ;
DUP 7 ;
LSR ;
DUP 7 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 272 ; FAILWITH } {} ;
DIG 7 ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
DUG 9 ;
GET 3 ;
GET 3 ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS ;
DUP 5 ;
GET 5 ;
CDR ;
CONTRACT %mint (pair (address %owner)
(pair (nat %token_id) (nat %token_amount))) ;
IF_NONE { PUSH int 175 ; FAILWITH } {} ;
PUSH mutez 0 ;
PUSH nat 6 ;
DUP 7 ;
LSR ;
DIG 7 ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
DUG 9 ;
GET 3 ;
CAR ;
CAR ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS ;
DIG 4 ;
DUP ;
GET 9 ;
DIG 5 ;
ADD ;
UPDATE 9 ;
DUG 3 ;
DIG 2 ;
CAR ;
CAR ;
IF
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 3 ;
DIG 2 ;
DUP 4 ;
GET 3 ;
GET 3 ;
PAIR ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR }
{ SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } }
{ IF_LEFT
{ DUP 4 ;
UNIT ;
EXEC ;
DIG 2 ;
DUP ;
CAR ;
GET 5 ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
GET 3 ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
DUP 3 ;
GET 10 ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 539 ; FAILWITH } {} ;
DUP ;
CAR ;
CAR ;
IF {} { PUSH int 403 ; FAILWITH } ;
PUSH nat 1000000 ;
DUP 5 ;
GET 3 ;
GET 4 ;
DUP 5 ;
GET 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 544 ; FAILWITH } { CAR } ;
PUSH nat 1000000000000000000 ;
PUSH nat 100000000 ;
PUSH nat 4 ;
DUP 4 ;
LSR ;
DUP 4 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 546 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 546 ; FAILWITH } { CAR } ;
DUP ;
PUSH nat 1 ;
SWAP ;
COMPARE ;
GE ;
IF {} { PUSH int 602 ; FAILWITH } ;
PUSH nat 1000000000000 ;
DUP 7 ;
CAR ;
GET 3 ;
CAR ;
DUP 5 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 550 ; FAILWITH } { CAR } ;
DIG 3 ;
DUP 7 ;
CAR ;
GET 3 ;
CAR ;
PUSH nat 1000000000000 ;
DUP 8 ;
GET 3 ;
DUP 5 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 553 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 553 ; FAILWITH } { CAR } ;
UPDATE 4 ;
DUP ;
DUG 4 ;
UNPAIR ;
CAR ;
DUP 4 ;
DIG 6 ;
CAR ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 554 ; FAILWITH } {} ;
SWAP ;
PAIR ;
PAIR ;
DUG 3 ;
DIG 6 ;
DUP ;
GET 10 ;
DUP 6 ;
SOME ;
DUP 9 ;
CAR ;
UPDATE ;
UPDATE 10 ;
DUG 6 ;
DUP 4 ;
CAR ;
CAR ;
IF
{ DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
NIL operation ;
DIG 5 ;
DUP 6 ;
GET 3 ;
GET 4 ;
DUP 6 ;
GET 3 ;
DIG 4 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 559 ; FAILWITH } {} ;
MUL ;
DUP 5 ;
CAR ;
PAIR ;
SWAP ;
DIG 5 ;
DIG 3 ;
DIG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SWAP ;
DUG 3 }
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
NIL operation } ;
DUP 4 ;
CAR ;
CAR ;
GET 3 ;
CONTRACT %transfer (pair (address %from)
(pair (address %to) (nat %value))) ;
IF_NONE { PUSH int 91 ; 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 %owner)
(pair (nat %token_id)
(nat %token_amount))) ;
IF_NONE { PUSH int 175 ; 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 567 ; FAILWITH } {} ;
UPDATE 9 ;
SWAP }
{ DUP 4 ;
UNIT ;
EXEC ;
NIL operation ;
DUP 3 ;
ITER { DUP 5 ;
GET 10 ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 657 ; FAILWITH } {} ;
CAR ;
CAR ;
IF
{ DUP 8 ;
PUSH nat 1000000000000000000 ;
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 658 ; FAILWITH } {} ;
GET 4 ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH int 658 ; FAILWITH } { CAR } ;
DIG 2 ;
PAIR ;
SWAP ;
DIG 5 ;
DIG 3 ;
DIG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
DUG 8 ;
DUG 8 ;
DUG 8 ;
DUG 8 ;
DIG 6 ;
DIG 8 ;
DIG 8 ;
DIG 8 }
{ DROP } } ;
SWAP ;
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 ;
DIG 2 ;
UNIT ;
EXEC ;
DROP ;
SWAP ;
DUP ;
GET 10 ;
SWAP ;
DUP ;
DUG 3 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 479 ; FAILWITH } {} ;
PUSH nat 100000000 ;
PUSH nat 3 ;
DIG 4 ;
DUP ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 6 ;
CAR ;
GET 3 ;
CAR ;
DUP 5 ;
GET 4 ;
MUL ;
MUL ;
MUL ;
MUL ;
PUSH nat 1000000 ;
PUSH nat 1000000000000 ;
PUSH nat 1000000 ;
PUSH nat 1000000000000 ;
DUP 7 ;
DUP 7 ;
CAR ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 481 ; FAILWITH } {} ;
MUL ;
MUL ;
MUL ;
MUL ;
COMPARE ;
GE ;
IF {} { PUSH int 801 ; FAILWITH } ;
DUP ;
UNPAIR ;
CAR ;
DUP 4 ;
DIG 3 ;
CAR ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 481 ; FAILWITH } {} ;
SWAP ;
PAIR ;
PAIR ;
DUP 3 ;
DUP ;
GET 10 ;
DIG 2 ;
SOME ;
DIG 4 ;
GET 3 ;
GET 3 ;
UPDATE ;
UPDATE 10 ;
SWAP ;
NIL operation ;
DUP 3 ;
CAR ;
CAR ;
GET 3 ;
CONTRACT %transfer (pair (address %from)
(pair (address %to) (nat %value))) ;
IF_NONE { PUSH int 91 ; 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 }