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 } }