x
858
1734
{ parameter (or
(or
(or
(or
(pair %balance_of
(list %requests (pair (address %owner) (nat %token_id)))
(contract %callback (list (pair
(pair %request (address %owner)
(nat %token_id))
(nat %balance)))))
(pair %deposit (nat %stake_id) (nat %token_amount)))
(or (pair %internal_deposit (nat %stake_id) (nat %token_amount))
(pair %internal_withdraw (nat %ratio_denominator)
(pair (nat %ratio_numerator)
(nat %stake_id)))))
(or
(or (address %propose_administrator) (address %remove_administrator))
(or
(pair %remove_exchange (nat %src_token_id)
(pair (address %src_token_address)
(pair (nat %dst_token_id)
(address %dst_token_address))))
(or (unit %set_administrator)
(list %set_balance (pair
(pair %request (address %owner)
(nat %token_id))
(nat %balance)))))))
(or
(or
(or
(pair %set_exchange
(pair %exchange_key (nat %src_token_id)
(pair (address %src_token_address)
(pair (nat %dst_token_id)
(address %dst_token_address))))
(pair %exchange_value (address %oracle_address)
(lambda %execution_lambda (pair nat nat)
(list operation))))
(list %swap (pair
(pair %exchange_key (nat %src_token_id)
(pair (address %src_token_address)
(pair (nat %dst_token_id)
(address %dst_token_address))))
(nat %token_amount))))
(or
(list %transfer (pair (address %from_)
(list %txs (pair (address %to_)
(pair (nat %token_id)
(nat %amount))))))
(pair %update_deposit_fee (nat %numerator) (nat %denominator))))
(or
(or (address %update_fee_recipient) (nat %update_max_release_period))
(or
(list %update_operators (or
(pair %add_operator (address %owner)
(pair
(address %operator)
(nat %token_id)))
(pair %remove_operator (address %owner)
(pair
(address %operator)
(nat %token_id)))))
(or
(pair %update_trading_window (timestamp %initial_shift)
(pair (nat %duration_in_seconds)
(nat %recurrence_in_seconds)))
(pair %withdraw (nat %ratio_denominator)
(pair (nat %ratio_numerator) (nat %stake_id)))))))) ;
storage (pair
(pair
(pair
(pair (big_map %administrators address int) (nat %current_token_balance))
(pair (pair %deposit_fee (nat %numerator) (nat %denominator))
(nat %disc_factor)))
(pair
(pair
(big_map %exchanges
(pair (nat %src_token_id)
(pair (address %src_token_address)
(pair (nat %dst_token_id) (address %dst_token_address))))
(pair (address %oracle_address)
(lambda %execution_lambda (pair nat nat) (list operation))))
(address %fee_recipient))
(pair (nat %last_stake_id) (nat %last_token_balance))))
(pair
(pair
(pair (nat %max_release_period)
(big_map %operators
(pair (address %owner)
(pair (address %operator) (nat %token_id)))
unit))
(pair (address %sender)
(big_map %stakes nat
(pair (nat %token_amount)
(pair (nat %stake)
(timestamp %age_timestamp))))))
(pair
(pair (big_map %stakes_owner_lookup address (set nat))
(address %token_address))
(pair (nat %token_id)
(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 (pair (big_map address int) nat)
(pair (pair nat nat) nat))
(pair
(pair
(big_map (pair nat (pair address (pair nat address)))
(pair address
(lambda (pair nat nat) (list operation))))
address)
(pair nat nat)))
(pair
(pair
(pair nat (big_map (pair address (pair address nat)) unit))
(pair address (big_map nat (pair nat (pair nat timestamp)))))
(pair (pair (big_map address (set nat)) address)
(pair nat (pair nat (pair timestamp (pair nat nat)))))))))
(pair unit
(pair (list operation)
(pair
(pair
(pair (pair (big_map address int) nat)
(pair (pair nat nat) nat))
(pair
(pair
(big_map (pair nat (pair address (pair nat address)))
(pair address
(lambda (pair nat nat) (list operation))))
address)
(pair nat nat)))
(pair
(pair
(pair nat (big_map (pair address (pair address nat)) unit))
(pair address (big_map nat (pair nat (pair nat timestamp)))))
(pair (pair (big_map address (set nat)) address)
(pair nat (pair nat (pair timestamp (pair nat nat)))))))))
{ CDR ;
UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CDR ;
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_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 7 ;
SELF_ADDRESS ;
PAIR ;
CONS ;
PAIR ;
TRANSFER_TOKENS ;
CONS ;
UNIT ;
PAIR 3 } ;
SWAP ;
LAMBDA
(pair unit
(pair
(pair
(pair (pair (big_map address int) nat) (pair (pair nat nat) nat))
(pair
(pair
(big_map (pair nat (pair address (pair nat address)))
(pair address (lambda (pair nat nat) (list operation))))
address)
(pair nat nat)))
(pair
(pair (pair nat (big_map (pair address (pair address nat)) unit))
(pair address (big_map nat (pair nat (pair nat timestamp)))))
(pair (pair (big_map address (set nat)) address)
(pair nat (pair nat (pair timestamp (pair nat nat))))))))
(pair unit
(pair
(pair
(pair (pair (big_map address int) nat) (pair (pair nat nat) nat))
(pair
(pair
(big_map (pair nat (pair address (pair nat address)))
(pair address (lambda (pair nat nat) (list operation))))
address)
(pair nat nat)))
(pair
(pair (pair nat (big_map (pair address (pair address nat)) unit))
(pair address (big_map nat (pair nat (pair nat timestamp)))))
(pair (pair (big_map address (set nat)) address)
(pair nat (pair nat (pair timestamp (pair nat nat))))))))
{ CDR ;
DUP ;
GET 9 ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DUP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 6 ;
GET 9 ;
PUSH nat 1000000000000 ;
DIG 7 ;
DUP ;
CAR ;
GET 6 ;
SWAP ;
CAR ;
CAR ;
CAR ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 93 ; FAILWITH } {} ;
MUL ;
EDIV ;
IF_NONE { PUSH int 97 ; FAILWITH } { CAR } ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
DUP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
DIG 4 ;
CAR ;
CAR ;
CAR ;
CDR ;
SWAP ;
PAIR ;
SWAP ;
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 (pair (big_map address int) nat) (pair (pair nat nat) nat))
(pair
(pair
(big_map (pair nat (pair address (pair nat address)))
(pair address (lambda (pair nat nat) (list operation))))
address)
(pair nat nat)))
(pair
(pair (pair nat (big_map (pair address (pair address nat)) unit))
(pair address (big_map nat (pair nat (pair nat timestamp)))))
(pair (pair (big_map address (set nat)) address)
(pair nat (pair nat (pair timestamp (pair nat nat))))))))
(pair unit
(pair
(pair
(pair (pair (big_map address int) nat) (pair (pair nat nat) nat))
(pair
(pair
(big_map (pair nat (pair address (pair nat address)))
(pair address (lambda (pair nat nat) (list operation))))
address)
(pair nat nat)))
(pair
(pair (pair nat (big_map (pair address (pair address nat)) unit))
(pair address (big_map nat (pair nat (pair nat timestamp)))))
(pair (pair (big_map address (set nat)) address)
(pair nat (pair nat (pair timestamp (pair nat nat))))))))
{ CDR ;
DUP ;
CAR ;
CAR ;
CAR ;
CAR ;
PUSH int 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
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
NIL (pair (pair address nat) nat) ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
ITER { DUP 4 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP 4 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
GET ;
IF_NONE { PUSH int 389 ; FAILWITH } { DROP } ;
DUP 4 ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ DUP 4 ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 392 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF
{ SWAP ; PUSH nat 1 ; DIG 2 ; PAIR ; CONS }
{ DROP } }
{ SWAP ; PUSH nat 0 ; DIG 2 ; PAIR ; CONS } } ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
NIL operation ;
DIG 2 ;
CDR ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS }
{ 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 } }
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP 4 ;
UNIT ;
EXEC ;
DUP 6 ;
UNIT ;
SWAP ;
DIG 4 ;
DIG 2 ;
PAIR ;
EXEC ;
UNPAIR ;
DIG 7 ;
DIG 7 ;
DIG 7 ;
DIG 7 ;
DIG 5 ;
DIG 7 ;
DIG 7 ;
DIG 7 ;
DIG 3 ;
DUP ;
CAR ;
CAR ;
GET 3 ;
CDR ;
SWAP ;
DUP ;
DUG 5 ;
CAR ;
CAR ;
GET 3 ;
CAR ;
DUP 5 ;
CDR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 152 ; FAILWITH } { CAR } ;
DUP ;
DUP 5 ;
CDR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 153 ; FAILWITH } {} ;
NIL operation ;
DUP 7 ;
GET 5 ;
CDR ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair (address %to_)
(pair
(nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 54 ; FAILWITH } {} ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
DUP 7 ;
DIG 11 ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
DUG 13 ;
CAR ;
GET 3 ;
CDR ;
PAIR 3 ;
CONS ;
DUP 6 ;
DUP 12 ;
GET 7 ;
SELF_ADDRESS ;
PAIR 3 ;
CONS ;
DUP 11 ;
GET 3 ;
GET 3 ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
DIG 6 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP 7 ;
ADD ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 7 ;
CAR ;
CAR ;
GET 4 ;
PUSH nat 1000000000000 ;
DUP 4 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 169 ; FAILWITH } { CAR } ;
DUP 7 ;
CAR ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 4 ;
DUP ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 6 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 175 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF {} { PUSH int 404 ; FAILWITH } }
{ DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 3 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
PUSH nat 1 ;
ADD ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 4 ;
CAR ;
GET 5 } ;
DUP 5 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{ DUP 5 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 185 ; FAILWITH } {} ;
DUP 3 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
ADD ;
DUP ;
DUP 8 ;
GET 3 ;
CAR ;
CAR ;
DUP 4 ;
GET 4 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 187 ; FAILWITH } {} ;
DUP ;
DUP 3 ;
COMPARE ;
LE ;
IF { DROP } { SWAP ; DROP } ;
DUP 4 ;
GET 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 196 ; FAILWITH } { CAR } ;
INT ;
PUSH int -1 ;
MUL ;
NOW ;
ADD ;
DUG 2 ;
UPDATE 3 ;
DUP ;
CAR ;
DIG 6 ;
ADD ;
UPDATE 1 ;
SWAP ;
UPDATE 4 ;
DIG 4 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DIG 5 ;
SOME ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 2 }
{ DIG 4 ;
DUP ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 6 ;
GET 3 ;
GET 3 ;
MEM ;
IF
{}
{ DUP 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option (set nat)) (Some {}) ;
DIG 10 ;
GET 3 ;
GET 3 ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUG 4 } ;
DUP 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP ;
DIG 10 ;
GET 3 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 206 ; FAILWITH } {} ;
PUSH bool True ;
DUP 9 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
NOW ;
DUP 8 ;
DIG 10 ;
PAIR 3 ;
SOME ;
DIG 6 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUG 2 } ;
DIG 2 ;
DUP ;
GET 9 ;
DIG 2 ;
ADD ;
UPDATE 9 ;
SWAP }
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP 4 ;
UNIT ;
EXEC ;
DUP 6 ;
UNIT ;
SWAP ;
DIG 4 ;
DIG 2 ;
PAIR ;
EXEC ;
UNPAIR ;
DIG 7 ;
DIG 7 ;
DIG 7 ;
DIG 7 ;
DIG 5 ;
DIG 7 ;
DIG 7 ;
DIG 7 ;
DUP 4 ;
GET 3 ;
GET 4 ;
DUP 4 ;
GET 4 ;
GET ;
IF_NONE { PUSH int 244 ; FAILWITH } {} ;
DIG 4 ;
DUP ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 6 ;
GET 3 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 247 ; FAILWITH } {} ;
DUP 5 ;
GET 4 ;
MEM ;
IF {} { PUSH int 404 ; FAILWITH } ;
DIG 3 ;
DUP ;
CAR ;
SWAP ;
DUP ;
DUG 5 ;
GET 3 ;
COMPARE ;
LE ;
IF {} { PUSH int 603 ; FAILWITH } ;
DIG 3 ;
DUP ;
CAR ;
SWAP ;
DUP ;
DUG 5 ;
GET 3 ;
DUP 3 ;
CAR ;
MUL ;
EDIV ;
IF_NONE { PUSH int 263 ; FAILWITH } { CAR } ;
DIG 4 ;
DUP ;
CAR ;
SWAP ;
DUP ;
DUG 6 ;
GET 3 ;
DUP 4 ;
GET 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 269 ; FAILWITH } { CAR } ;
PUSH nat 1000000000000 ;
DUP 8 ;
CAR ;
CAR ;
GET 4 ;
DUP 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 275 ; FAILWITH } { CAR } ;
PUSH nat 0 ;
DUP 4 ;
DUP 3 ;
COMPARE ;
GT ;
IF
{ DROP ;
DUP 3 ;
SWAP ;
DUP ;
DUG 2 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 281 ; FAILWITH } {} }
{} ;
DIG 8 ;
DUP ;
GET 3 ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 10 ;
GET 3 ;
CAR ;
CAR ;
DUP 7 ;
GET 4 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 258 ; FAILWITH } {} ;
DUP ;
DUP 3 ;
COMPARE ;
LE ;
IF { DROP } { SWAP ; DROP } ;
DUP 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 287 ; FAILWITH } { CAR } ;
DUP 5 ;
ADD ;
DUP ;
PUSH nat 0 ;
COMPARE ;
LT ;
IF
{ SWAP ;
DROP ;
NIL operation ;
DUP 10 ;
GET 5 ;
CDR ;
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 13 ;
DUP ;
GET 7 ;
SWAP ;
DUP ;
DUG 15 ;
GET 3 ;
GET 3 ;
PAIR 3 ;
CONS ;
SELF_ADDRESS ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS }
{ DROP 2 ; NIL operation } ;
DUP 9 ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
CAR ;
DIG 5 ;
DIG 12 ;
CAR ;
GET 6 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 298 ; FAILWITH } {} ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
DUP ;
DUG 8 ;
DUP 3 ;
DIG 9 ;
GET 9 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 301 ; FAILWITH } {} ;
UPDATE 9 ;
DUG 7 ;
PUSH nat 0 ;
DUP 3 ;
DUP 6 ;
GET 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 308 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF
{ SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
NONE (pair nat (pair nat timestamp)) ;
DUP 8 ;
GET 4 ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
DUP ;
DUG 3 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP ;
DIG 8 ;
GET 3 ;
GET 3 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 312 ; FAILWITH } {} ;
PUSH bool False ;
DIG 9 ;
GET 4 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
SWAP }
{ DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 6 ;
DROP ;
DIG 5 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
DUP ;
DUP 11 ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 316 ; FAILWITH } {} ;
DIG 9 ;
DUP 11 ;
CAR ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 305 ; FAILWITH } {} ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
DUP ;
DIG 9 ;
GET 4 ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 319 ; FAILWITH } {} ;
DIG 8 ;
DIG 9 ;
GET 3 ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 308 ; FAILWITH } {} ;
UPDATE 3 ;
SOME ;
SWAP ;
UPDATE ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP } } } }
{ IF_LEFT
{ IF_LEFT
{ 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 ;
UNPAIR ;
PUSH (option int) (Some 0) ;
DIG 6 ;
UPDATE ;
PAIR ;
PAIR ;
PAIR ;
PAIR }
{ 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 ;
UNPAIR ;
NONE int ;
DIG 6 ;
UPDATE ;
PAIR ;
PAIR ;
PAIR ;
PAIR } }
{ IF_LEFT
{ 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 }
{ IF_LEFT
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP ;
CAR ;
CAR ;
CAR ;
CAR ;
PUSH int 0 ;
SWAP ;
SENDER ;
GET ;
IF_NONE { PUSH int 46 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF {} { PUSH int 405 ; FAILWITH } ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
PUSH (option int) (Some 1) ;
SENDER ;
UPDATE ;
PAIR ;
PAIR ;
PAIR ;
PAIR }
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CDR ;
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 ;
DUP ;
CAR ;
CAR ;
SELF_ADDRESS ;
COMPARE ;
EQ ;
IF {} { PUSH int 503 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
CAR ;
DIG 4 ;
CDR ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
PAIR }
{ DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } } } } ;
NIL operation } }
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ 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 }
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
SWAP ;
DUP ;
GET 13 ;
SWAP ;
DUP ;
GET 14 ;
SWAP ;
DUP ;
DUG 4 ;
GET 11 ;
NOW ;
SUB ;
ISNAT ;
IF_NONE { PUSH int 407 ; FAILWITH } {} ;
EDIV ;
IF_NONE { PUSH int 408 ; 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 417 ; FAILWITH } {} ;
CDR ;
DUP 5 ;
CAR ;
GET 3 ;
CAR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 417 ; FAILWITH } {} ;
CAR ;
DUP 3 ;
CDR ;
VIEW "get_min_out" nat ;
IF_NONE { PUSH int 418 ; 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 } }
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP ;
ITER { DUP ;
CDR ;
ITER { DUP 4 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM ;
IF
{}
{ PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
DUP 4 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET ;
IF_NONE { PUSH int 353 ; FAILWITH } { DROP } ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF
{ PUSH bool True }
{ DUP 4 ;
GET 3 ;
CAR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
SENDER ;
DUP 5 ;
CAR ;
PAIR 3 ;
MEM } ;
IF
{}
{ PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ;
DUP ;
GET 4 ;
PUSH nat 1 ;
COMPARE ;
EQ ;
IF
{ DUP 4 ;
GET 5 ;
CAR ;
DUP 3 ;
CAR ;
GET ;
IF_NONE { PUSH int 363 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
MEM }
{ PUSH bool False } ;
IF
{ DUP 4 ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{}
{ DIG 3 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
PUSH (option (set nat)) (Some {}) ;
DUP 7 ;
CAR ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUG 3 } ;
DIG 3 ;
UNPAIR ;
SWAP ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
DUP ;
DUP 8 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 369 ; FAILWITH } {} ;
PUSH bool False ;
DUP 9 ;
GET 3 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
DUP ;
DUP 7 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 370 ; FAILWITH } {} ;
PUSH bool True ;
DIG 8 ;
GET 3 ;
UPDATE ;
SOME ;
SWAP ;
UPDATE ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP ;
PAIR ;
DUG 2 }
{ DROP } } ;
DROP } ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
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 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
COMPARE ;
LE ;
IF {} { PUSH int 603 ; FAILWITH } ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
CDR ;
DIG 4 ;
PAIR ;
SWAP ;
PAIR ;
PAIR ;
PAIR } ;
NIL operation } }
{ IF_LEFT
{ IF_LEFT
{ 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 ;
CAR ;
DIG 4 ;
SWAP ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
PAIR }
{ 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 ;
SWAP ;
UNPAIR ;
UNPAIR ;
CDR ;
DIG 4 ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR } ;
NIL operation }
{ IF_LEFT
{ AMOUNT ;
PUSH mutez 0 ;
COMPARE ;
EQ ;
IF {} { AMOUNT ; FAILWITH } ;
DUP ;
ITER { IF_LEFT
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ;
DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
PUSH (option unit) (Some Unit) ;
DIG 6 ;
DUP ;
GET 4 ;
SWAP ;
DUP ;
GET 3 ;
SWAP ;
CAR ;
PAIR 3 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP }
{ DUP ;
CAR ;
SENDER ;
COMPARE ;
EQ ;
IF {} { PUSH string "FA2_NOT_OWNER" ; FAILWITH } ;
DIG 2 ;
UNPAIR ;
SWAP ;
UNPAIR ;
UNPAIR ;
UNPAIR ;
SWAP ;
NONE unit ;
DIG 6 ;
DUP ;
GET 4 ;
SWAP ;
DUP ;
GET 3 ;
SWAP ;
CAR ;
PAIR 3 ;
UPDATE ;
SWAP ;
PAIR ;
PAIR ;
PAIR ;
SWAP ;
PAIR ;
SWAP } } ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
NIL operation }
{ IF_LEFT
{ 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 10 ;
NIL operation }
{ 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_withdraw ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS } } } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR } ;
view "view_administrator_state" address int
{ UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
CAR ;
CAR ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{ SWAP ; CAR ; CAR ; CAR ; CAR ; SWAP ; GET ; IF_NONE { PUSH int 537 ; FAILWITH } {} }
{ DROP 2 ; PUSH int -1 } } ;
view "view_balance" (pair (address %address) (nat %token_id)) int
{ UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
MEM ;
IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
MEM ;
IF
{ SWAP ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 491 ; FAILWITH } {} ;
SWAP ;
CDR ;
MEM }
{ DROP 2 ; PUSH bool False } ;
IF { PUSH int 1 } { PUSH int 0 } } ;
view "view_deposit_fee" unit (pair (nat %numerator) (nat %denominator))
{ CDR ; CAR ; CAR ; GET 3 } ;
view "view_disc_factor" unit nat { CDR ; CAR ; CAR ; GET 4 } ;
view "view_fee_recipient" unit address { CDR ; CAR ; GET 3 ; CDR } ;
view "view_is_operator"
(pair (address %owner) (pair (address %operator) (nat %token_id)))
bool
{ UNPAIR ; SWAP ; GET 3 ; CAR ; CDR ; SWAP ; DUP ; GET 4 ; SWAP ; DUP ; GET 3 ; SWAP ; CAR ; PAIR 3 ; MEM } ;
view "view_last_stake_id" unit nat { CDR ; CAR ; GET 5 } ;
view "view_max_release_period" unit nat { CDR ; GET 3 ; CAR ; CAR } ;
view "view_owner_stakes" address (set nat)
{ UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
GET 5 ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{ SWAP ; GET 5 ; CAR ; SWAP ; GET ; IF_NONE { PUSH int 514 ; FAILWITH } {} }
{ DROP 2 ; EMPTY_SET nat } } ;
view "view_stake" nat
(pair (nat %token_amount) (pair (nat %stake) (timestamp %age_timestamp)))
{ UNPAIR ;
SWAP ;
DUP ;
DUG 2 ;
GET 3 ;
GET 4 ;
SWAP ;
DUP ;
DUG 2 ;
MEM ;
IF
{ SWAP ; GET 3 ; GET 4 ; SWAP ; GET ; IF_NONE { PUSH int 528 ; FAILWITH } {} }
{ DROP 2 ; PUSH timestamp "1970-01-01T00:00:00Z" ; PUSH nat 0 ; DUP ; PAIR 3 } } ;
view "view_total_stake" unit nat { CDR ; GET 9 } }