x
965
1393
parameter (or
(or
(or (or (unit %claim) (unit %default))
(or (nat %deposit) (unit %internal_claim)))
(or (or (nat %internal_deposit) (unit %internal_withdraw))
(or (address %propose_administrator) (address %remove_administrator))))
(or
(or
(or
(pair %remove_exchange
(or %src_token (address %fa12)
(or (pair %fa2 address nat) (unit %tez)))
(or %dst_token (address %fa12)
(or (pair %fa2 address nat) (unit %tez))))
(unit %set_administrator))
(or (option %set_delegate key_hash)
(pair %set_exchange
(pair %exchange_key
(or %src_token (address %fa12)
(or (pair %fa2 address nat) (unit %tez)))
(or %dst_token (address %fa12)
(or (pair %fa2 address nat) (unit %tez))))
(pair %exchange_value (address %oracle)
(lambda %exchange_lambda (pair nat nat)
(list operation))))))
(or
(or (nat %set_max_release_period)
(list %set_reward_balance (pair
(pair %request (address %owner)
(nat %token_id))
(nat %balance))))
(or
(list %swap (pair
(pair %exchange_key
(or %src_token (address %fa12)
(or (pair %fa2 address nat) (unit %tez)))
(or %dst_token (address %fa12)
(or (pair %fa2 address nat) (unit %tez))))
(nat %token_amount)))
(or
(pair %update_trading_window (timestamp %initial_shift)
(pair (nat %duration_in_seconds)
(nat %recurrence_in_seconds)))
(unit %withdraw))))));
storage (pair
(pair
(pair (big_map %administrators address nat)
(pair (nat %current_reward_balance) (nat %dist_factor)))
(pair
(pair
(big_map %exchanges
(pair
(or %src_token (address %fa12)
(or (pair %fa2 address nat) (unit %tez)))
(or %dst_token (address %fa12)
(or (pair %fa2 address nat) (unit %tez))))
(pair (address %oracle)
(lambda %exchange_lambda (pair nat nat) (list operation))))
(nat %last_reward_balance))
(pair (nat %max_release_period) (address %reward_token_address))))
(pair
(pair (nat %reward_token_id)
(pair (address %sender) (address %stake_token_address)))
(pair
(pair (int %stake_token_id)
(big_map %stakes address
(pair (timestamp %age_timestamp)
(pair (nat %dist_factor) (nat %stake)))))
(pair (nat %total_stake)
(pair %trading_window (timestamp %initial_shift)
(pair (nat %duration_in_seconds)
(nat %recurrence_in_seconds)))))));
code { LAMBDA
(pair unit
(pair (list operation)
(pair
(pair (pair (big_map address nat) (pair nat nat))
(pair
(pair
(big_map
(pair (or address (or (pair address nat) unit))
(or address (or (pair address nat) unit)))
(pair address
(lambda (pair nat nat) (list operation))))
nat)
(pair nat address)))
(pair (pair nat (pair address address))
(pair
(pair int
(big_map address (pair timestamp (pair nat nat))))
(pair nat (pair timestamp (pair nat nat))))))))
(pair unit
(pair (list operation)
(pair
(pair (pair (big_map address nat) (pair nat nat))
(pair
(pair
(big_map
(pair (or address (or (pair address nat) unit))
(or address (or (pair address nat) unit)))
(pair address
(lambda (pair nat nat) (list operation))))
nat)
(pair nat address)))
(pair (pair nat (pair address address))
(pair
(pair int
(big_map address (pair timestamp (pair nat nat))))
(pair nat (pair timestamp (pair nat nat))))))))
{ CDR ;
UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 6 ;
CONTRACT %balance_of (pair
(list %requests (pair (address %owner) (nat %token_id)))
(contract %callback (list (pair
(pair %request
(address %owner)
(nat %token_id))
(nat %balance))))) ;
IF_NONE { PUSH int 88 ; FAILWITH } {} ;
PUSH mutez 0 ;
SELF_ADDRESS ;
CONTRACT %set_reward_balance (list (pair
(pair %request (address %owner)
(nat %token_id))
(nat %balance))) ;
IF_NONE { PUSH int 91 ; FAILWITH } {} ;
NIL (pair address nat) ;
DUP 6 ;
GET 3 ;
CAR ;
SELF_ADDRESS ;
PAIR ;
CONS ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
UNIT ;
PAIR 3 } ;
SWAP ;
LAMBDA
(pair unit
(pair (list operation)
(pair
(pair (pair (big_map address nat) (pair nat nat))
(pair
(pair
(big_map
(pair (or address (or (pair address nat) unit))
(or address (or (pair address nat) unit)))
(pair address
(lambda (pair nat nat) (list operation))))
nat)
(pair nat address)))
(pair (pair nat (pair address address))
(pair
(pair int
(big_map address (pair timestamp (pair nat nat))))
(pair nat (pair timestamp (pair nat nat))))))))
(pair unit
(pair (list operation)
(pair
(pair (pair (big_map address nat) (pair nat nat))
(pair
(pair
(big_map
(pair (or address (or (pair address nat) unit))
(or address (or (pair address nat) unit)))
(pair address
(lambda (pair nat nat) (list operation))))
nat)
(pair nat address)))
(pair (pair nat (pair address address))
(pair
(pair int
(big_map address (pair timestamp (pair nat nat))))
(pair nat (pair timestamp (pair nat nat))))))))
{ UNPAIR 3 ;
SWAP ;
DIG 2 ;
DUP ;
GET 5 ;
CDR ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
GET 3 ;
MEM ;
IF
{ DIG 2 ;
DUP ;
GET 5 ;
CDR ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 153 ; FAILWITH } {} ;
DUP ;
GET 3 ;
PUSH nat 1000000000000 ;
SWAP ;
DUP 6 ;
CAR ;
CAR ;
GET 4 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 162 ; FAILWITH } {} ;
DUP 3 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 161 ; FAILWITH } { CAR } ;
DIG 4 ;
DUP ;
CAR ;
GET 5 ;
SWAP ;
DUP ;
DUG 6 ;
CAR ;
GET 5 ;
DUP 4 ;
CAR ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 155 ; FAILWITH } {} ;
DUP ;
DUP 3 ;
COMPARE ;
LE ;
IF { DROP } { SWAP ; DROP } ;
DUP 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 167 ; FAILWITH } { CAR } ;
DUP ;
PUSH nat 0 ;
SWAP ;
DUP 4 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 175 ; FAILWITH } {} ;
COMPARE ;
GT ;
IF
{ DIG 3 ;
DUP 6 ;
CAR ;
GET 6 ;
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 175 ; FAILWITH } {} ;
DUP 11 ;
GET 3 ;
CAR ;
SELF_ADDRESS ;
PAIR 3 ;
CONS ;
SELF_ADDRESS ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
DUG 3 }
{} ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
DUP 4 ;
CAR ;
GET 6 ;
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 7 ;
DUP ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 9 ;
GET 3 ;
GET 3 ;
PAIR 3 ;
CONS ;
SELF_ADDRESS ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
SWAP }
{ DROP ; SWAP ; DROP ; DIG 2 ; DROP } ;
DUP 3 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
DIG 4 ;
DIG 6 ;
CAR ;
GET 3 ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 185 ; FAILWITH } {} ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP ;
DUP 8 ;
GET 3 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 188 ; FAILWITH } {} ;
DIG 8 ;
CAR ;
CAR ;
GET 4 ;
UPDATE 3 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP }
{ SWAP ; DROP } ;
UNIT ;
PAIR 3 } ;
SWAP ;
LAMBDA
(pair unit
(pair
(pair (pair (big_map address nat) (pair nat nat))
(pair
(pair
(big_map
(pair (or address (or (pair address nat) unit))
(or address (or (pair address nat) unit)))
(pair address (lambda (pair nat nat) (list operation))))
nat)
(pair nat address)))
(pair (pair nat (pair address address))
(pair
(pair int (big_map address (pair timestamp (pair nat nat))))
(pair nat (pair timestamp (pair nat nat)))))))
(pair unit
(pair
(pair (pair (big_map address nat) (pair nat nat))
(pair
(pair
(big_map
(pair (or address (or (pair address nat) unit))
(or address (or (pair address nat) unit)))
(pair address (lambda (pair nat nat) (list operation))))
nat)
(pair nat address)))
(pair (pair nat (pair address address))
(pair
(pair int (big_map address (pair timestamp (pair nat nat))))
(pair nat (pair timestamp (pair nat nat)))))))
{ CDR ;
DUP ;
GET 7 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 6 ;
GET 7 ;
PUSH nat 1000000000000 ;
DIG 7 ;
DUP ;
CAR ;
GET 3 ;
CDR ;
SWAP ;
CAR ;
CAR ;
GET 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 135 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 139 ; FAILWITH } { CAR } ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
CAR ;
DIG 4 ;
CAR ;
CAR ;
GET 3 ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{} ;
UNIT ;
PAIR } ;
SWAP ;
LAMBDA
unit
unit
{ DROP ; SELF_ADDRESS ; SENDER ; COMPARE ; EQ ; IF {} { PUSH int 400 ; FAILWITH } ; UNIT } ;
SWAP ;
LAMBDA
(pair unit
(pair
(pair (pair (big_map address nat) (pair nat nat))
(pair
(pair
(big_map
(pair (or address (or (pair address nat) unit))
(or address (or (pair address nat) unit)))
(pair address (lambda (pair nat nat) (list operation))))
nat)
(pair nat address)))
(pair (pair nat (pair address address))
(pair
(pair int (big_map address (pair timestamp (pair nat nat))))
(pair nat (pair timestamp (pair nat nat)))))))
(pair unit
(pair
(pair (pair (big_map address nat) (pair nat nat))
(pair
(pair
(big_map
(pair (or address (or (pair address nat) unit))
(or address (or (pair address nat) unit)))
(pair address (lambda (pair nat nat) (list operation))))
nat)
(pair nat address)))
(pair (pair nat (pair address address))
(pair
(pair int (big_map address (pair timestamp (pair nat nat))))
(pair nat (pair timestamp (pair nat nat)))))))
{ CDR ;
DUP ;
CAR ;
CAR ;
CAR ;
PUSH nat 1 ;
SWAP ;
SENDER ;
GET ;
IF_NONE { PUSH int 21 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH int 401 ; FAILWITH } ;
UNIT ;
PAIR } ;
SWAP ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
SENDER ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
NIL operation ;
DIG 2 ;
UNIT ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SELF %internal_claim ;
PUSH mutez 0 ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; 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 } ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
SENDER ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
NIL operation ;
DIG 3 ;
UNIT ;
SWAP ;
DIG 4 ;
DIG 3 ;
DIG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SWAP ;
DUG 2 ;
SELF %internal_deposit ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ DROP ;
SWAP ;
DROP ;
DIG 4 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
UNIT ;
EXEC ;
DROP ;
SWAP ;
UNIT ;
SWAP ;
DUG 2 ;
PAIR ;
EXEC ;
CDR ;
NIL operation ;
DIG 2 ;
UNIT ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR } } }
{ IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DIG 2 ;
UNIT ;
EXEC ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ NIL operation ;
DUP 3 ;
GET 3 ;
GET 4 ;
CONTRACT %transfer (pair (address %from)
(pair (address %to) (nat %value))) ;
IF_NONE { PUSH int 19 ; FAILWITH } {} ;
PUSH mutez 0 ;
DUP 4 ;
SELF_ADDRESS ;
DUP 7 ;
GET 3 ;
GET 3 ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS }
{ NIL operation } ;
DIG 2 ;
DUP ;
GET 5 ;
CDR ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
GET 3 ;
MEM ;
IF
{ DIG 2 ;
DUP ;
GET 5 ;
CDR ;
SWAP ;
DUP ;
DUG 4 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 266 ; FAILWITH } {} ;
DUP ;
GET 3 ;
PUSH nat 1000000000000 ;
SWAP ;
DUP 6 ;
CAR ;
CAR ;
GET 4 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 275 ; FAILWITH } {} ;
DUP 3 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 274 ; FAILWITH } { CAR } ;
DUP 4 ;
DUP 3 ;
GET 4 ;
ADD ;
PUSH nat 1000000000000 ;
DIG 2 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 284 ; FAILWITH } { CAR } ;
DUP 5 ;
CAR ;
CAR ;
GET 4 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 282 ; FAILWITH } {} ;
DUP 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP 9 ;
DUP 8 ;
GET 4 ;
ADD ;
DIG 6 ;
DUP 10 ;
DUP 9 ;
GET 4 ;
ADD ;
DUP 12 ;
CAR ;
GET 5 ;
DUP 10 ;
CAR ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 268 ; FAILWITH } {} ;
DUP ;
DUP 3 ;
COMPARE ;
LE ;
IF { DROP } { SWAP ; DROP } ;
DIG 9 ;
GET 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 290 ; FAILWITH } { CAR } ;
INT ;
PUSH int -1 ;
MUL ;
NOW ;
ADD ;
PAIR 3 ;
SOME ;
DIG 8 ;
GET 3 ;
GET 3 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUG 2 }
{ DUP 3 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
DUP 7 ;
DUP 9 ;
CAR ;
CAR ;
GET 4 ;
NOW ;
PAIR 3 ;
SOME ;
DIG 8 ;
GET 3 ;
GET 3 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUG 2 } ;
DIG 2 ;
DUP ;
GET 7 ;
DIG 3 ;
ADD ;
UPDATE 7 ;
SWAP }
{ DROP ;
SWAP ;
DROP ;
DIG 4 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
UNIT ;
EXEC ;
DROP ;
SWAP ;
UNIT ;
SWAP ;
DUG 2 ;
PAIR ;
EXEC ;
CDR ;
NIL operation ;
DIG 2 ;
UNIT ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SWAP ;
DUP ;
GET 5 ;
CDR ;
SWAP ;
DUP ;
DUG 3 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 357 ; FAILWITH } {} ;
DUP ;
GET 4 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DUP 3 ;
GET 3 ;
GET 4 ;
CONTRACT %transfer (pair (address %from)
(pair (address %to) (nat %value))) ;
IF_NONE { PUSH int 19 ; FAILWITH } {} ;
PUSH mutez 0 ;
DUP 4 ;
GET 4 ;
DUP 6 ;
GET 3 ;
GET 3 ;
SELF_ADDRESS ;
PAIR 3 ;
TRANSFER_TOKENS ;
CONS ;
SWAP }
{} ;
DUP 3 ;
SWAP ;
GET 4 ;
DIG 3 ;
GET 7 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 373 ; FAILWITH } {} ;
UPDATE 7 ;
DUP ;
DUG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
NONE (pair timestamp (pair nat nat)) ;
DIG 7 ;
GET 3 ;
GET 3 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP } }
{ IF_LEFT
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
PUSH (option nat) (Some 0) ;
DIG 5 ;
UPDATE ;
PAIR ;
PAIR ;
PAIR }
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
NONE nat ;
DIG 5 ;
UPDATE ;
PAIR ;
PAIR ;
PAIR } ;
NIL operation } } }
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
NONE (pair address (lambda (pair nat nat) (list operation))) ;
DIG 6 ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP ;
CAR ;
CAR ;
CAR ;
PUSH nat 0 ;
SWAP ;
SENDER ;
GET ;
IF_NONE { PUSH int 46 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH int 405 ; FAILWITH } ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
PUSH (option nat) (Some 1) ;
SENDER ;
UPDATE ;
PAIR ;
PAIR ;
PAIR } ;
NIL operation }
{ IF_LEFT
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
SET_DELEGATE ;
NIL operation ;
SWAP ;
CONS }
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP 6 ;
CDR ;
SOME ;
DIG 6 ;
CAR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
NIL operation } } }
{ IF_LEFT
{ IF_LEFT
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET 6 ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH int 504 ; FAILWITH } ;
DUP ;
IF_CONS
{ SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DUP ;
CAR ;
CAR ;
SELF_ADDRESS ;
COMPARE ;
EQ ;
IF {} { PUSH int 503 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
CDR ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR }
{ DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } } ;
NIL operation }
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
GET 11 ;
SWAP ;
DUP ;
GET 12 ;
SWAP ;
DUP ;
DUG 4 ;
GET 9 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 69 ; FAILWITH } {} ;
EDIV ;
IF_NONE { PUSH int 70 ; FAILWITH } { CDR } ;
COMPARE ;
LE ;
IF {} { PUSH int 505 ; FAILWITH } ;
DUP ;
NIL operation ;
SWAP ;
ITER { DUP 4 ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ PUSH string "WrongCondition: self.data.exchanges.contains(exchange.exchange_key)" ;
FAILWITH } ;
DUP 4 ;
CAR ;
GET 3 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 79 ; FAILWITH } {} ;
CDR ;
DUP 5 ;
CAR ;
GET 3 ;
CAR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 79 ; FAILWITH } {} ;
CAR ;
DUP 3 ;
CDR ;
VIEW "get_min_out" nat ;
IF_NONE { PUSH int 80 ; FAILWITH } {} ;
DUP 3 ;
CDR ;
PAIR ;
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
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP ;
CAR ;
NOW ;
COMPARE ;
GT ;
IF {} { PUSH int 506 ; FAILWITH } ;
DUP ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
COMPARE ;
LT ;
IF {} { PUSH int 506 ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
UPDATE 8 ;
NIL operation }
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
SENDER ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
NIL operation ;
DIG 2 ;
UNIT ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SELF %internal_withdraw ;
PUSH mutez 0 ;
UNIT ;
TRANSFER_TOKENS ;
CONS } } } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR }