x
445
1823
{ parameter (or
(or
(or (or (unit %cancel_deposit) (unit %cancel_request_withdrawal))
(or (nat %claim) (or (address %claim_outstanding) (unit %default))))
(or
(or (address %deposit)
(or (lambda %execute unit (list operation))
(unit %finalize_withdrawal)))
(or (nat %pending_withdrawal)
(or (address %propose_administrator)
(address %remove_administrator)))))
(or
(or
(or (address %remove_manager)
(or (nat %request_withdrawal) (unit %set_administrator)))
(or
(pair %set_blocks_per_cycle (nat %blocks_per_cycle)
(nat %blocks_offset))
(or (option %set_delegate key_hash) (nat %set_finalize_balance))))
(or
(or
(pair %set_manager (key %consensus_key)
(pair (bool %isActive) (address %manager)))
(or (nat %set_max_queue_size) (int %set_min_amount)))
(or (pair %set_pool_fee (nat %denominator) (nat %numerator))
(or (address %set_reward_recipient) (nat %update_balance)))))) ;
storage (pair (big_map %administrators address int)
(pair (nat %blocks_offset)
(pair (nat %blocks_per_cycle)
(pair
(list %deposit_queue (pair (address %owner) (nat %amount)))
(pair (nat %finalize_outstanding_balance)
(pair (nat %global_balance)
(pair
(big_map %managers address
(pair (nat %balance)
(pair
(bool %isActive)
(key %consensus_key))))
(pair (nat %max_queue_size)
(pair (big_map %metadata string bytes)
(pair (nat %min_amount)
(pair
(big_map %outstanding_balances
address
(pair
(nat %xtz_amount)
(pair
(nat %stxtz_amount)
(nat %price))))
(pair
(list %pending_queue (pair
(address %recipient)
(pair
(nat %xtz_amount)
(pair
(nat %stxtz_amount)
(pair
(nat %price)
(nat %block_level))))))
(pair
(pair %pool_fee
(nat %numerator)
(nat %denominator))
(pair
(nat %precision_factor)
(pair
(address %reward_recipient)
(pair
(address %token_address)
(pair
(nat %token_id)
(list %withdrawal_queue (pair
(address %recipient)
(pair
(nat %xtz_amount)
(pair
(nat %stxtz_amount)
(pair
(nat %price)
(nat %block_level))))))))))))))))))))))) ;
code { LAMBDA
(pair (pair nat (map address nat))
(pair (list operation)
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool
key)))
(pair nat
(pair
(big_map string
bytes)
(pair nat
(pair
(big_map
address
(pair nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair
nat
nat)
(pair
nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat))))))))))))))))))))))))
(pair unit
(pair (list operation)
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool
key)))
(pair nat
(pair
(big_map string
bytes)
(pair nat
(pair
(big_map
address
(pair nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair
nat
nat)
(pair
nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat))))))))))))))))))))))))
{ UNPAIR 3 ;
SWAP ;
DUP 3 ;
GET 31 ;
CONTRACT %bulk_mint (pair (nat %token_id) (map %operations address nat)) ;
IF_NONE { PUSH int 196 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS ;
UNIT ;
PAIR 3 } ;
SWAP ;
LAMBDA
(pair (pair address nat)
(pair (list operation)
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool
key)))
(pair nat
(pair
(big_map string
bytes)
(pair nat
(pair
(big_map
address
(pair nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair
nat
nat)
(pair
nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat))))))))))))))))))))))))
(pair unit
(pair (list operation)
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool
key)))
(pair nat
(pair
(big_map string
bytes)
(pair nat
(pair
(big_map
address
(pair nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair
nat
nat)
(pair
nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat))))))))))))))))))))))))
{ UNPAIR 3 ;
UNPAIR ;
DUP 4 ;
GET 31 ;
CONTRACT %burn (pair (address %owner)
(pair (nat %token_id) (nat %token_amount))) ;
IF_NONE { PUSH int 205 ; FAILWITH } {} ;
DIG 2 ;
DUP 5 ;
GET 33 ;
DIG 3 ;
PAIR 3 ;
DUG 2 ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS ;
UNIT ;
PAIR 3 } ;
SWAP ;
LAMBDA
(pair (pair address nat)
(pair (list operation)
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool
key)))
(pair nat
(pair
(big_map string
bytes)
(pair nat
(pair
(big_map
address
(pair nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair
nat
nat)
(pair
nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat))))))))))))))))))))))))
(pair unit
(pair (list operation)
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool
key)))
(pair nat
(pair
(big_map string
bytes)
(pair nat
(pair
(big_map
address
(pair nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair
nat
nat)
(pair
nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat))))))))))))))))))))))))
{ UNPAIR 3 ;
UNPAIR ;
DUP 4 ;
GET 31 ;
CONTRACT %mint (pair (address %owner)
(pair (nat %token_id) (nat %token_amount))) ;
IF_NONE { PUSH int 159 ; FAILWITH } {} ;
DIG 2 ;
DUP 5 ;
GET 33 ;
DIG 3 ;
PAIR 3 ;
DUG 2 ;
PUSH mutez 0 ;
DIG 3 ;
TRANSFER_TOKENS ;
CONS ;
UNIT ;
PAIR 3 } ;
SWAP ;
LAMBDA
(pair (pair address (pair address nat))
(pair (list operation)
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool
key)))
(pair nat
(pair
(big_map string
bytes)
(pair nat
(pair
(big_map
address
(pair nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair
nat
nat)
(pair
nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat))))))))))))))))))))))))
(pair unit
(pair (list operation)
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool
key)))
(pair nat
(pair
(big_map string
bytes)
(pair nat
(pair
(big_map
address
(pair nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair
nat
nat)
(pair
nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat))))))))))))))))))))))))
{ UNPAIR 3 ;
UNPAIR 3 ;
DUP 5 ;
GET 31 ;
CONTRACT %transfer (list (pair (address %from_)
(list %txs (pair (address %to_)
(pair (nat %token_id)
(nat %amount)))))) ;
IF_NONE { PUSH int 171 ; FAILWITH } {} ;
DIG 4 ;
SWAP ;
PUSH mutez 0 ;
NIL (pair address (list (pair address (pair nat nat)))) ;
NIL (pair address (pair nat nat)) ;
DIG 7 ;
DUP 9 ;
GET 33 ;
DIG 8 ;
PAIR 3 ;
CONS ;
DIG 5 ;
PAIR ;
CONS ;
TRANSFER_TOKENS ;
CONS ;
UNIT ;
PAIR 3 } ;
SWAP ;
LAMBDA
(pair unit
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool key)))
(pair nat
(pair
(big_map string bytes)
(pair nat
(pair
(big_map address
(pair
nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair nat nat)
(pair nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))))))))))))))))))))
(pair unit
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool key)))
(pair nat
(pair
(big_map string bytes)
(pair nat
(pair
(big_map address
(pair
nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair nat nat)
(pair nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))))))))))))))))))))
{ CDR ;
DUP ;
CAR ;
SENDER ;
MEM ;
IF {} { PUSH string "Unauthorized" ; FAILWITH } ;
PUSH int 1 ;
DUP 2 ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 19 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Unauthorized. Proposal is still pending." ; FAILWITH } ;
UNIT ;
PAIR } ;
SWAP ;
LAMBDA
(pair unit
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool key)))
(pair nat
(pair
(big_map string bytes)
(pair nat
(pair
(big_map address
(pair
nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair nat nat)
(pair nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))))))))))))))))))))
(pair unit
(pair (big_map address int)
(pair nat
(pair nat
(pair (list (pair address nat))
(pair nat
(pair nat
(pair
(big_map address
(pair nat
(pair bool key)))
(pair nat
(pair
(big_map string bytes)
(pair nat
(pair
(big_map address
(pair
nat
(pair
nat
nat)))
(pair
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))
(pair
(pair nat nat)
(pair nat
(pair
address
(pair
address
(pair
nat
(list (pair
address
(pair
nat
(pair
nat
(pair
nat
nat)))))))))))))))))))))))
{ CDR ;
DUP ;
GET 13 ;
SENDER ;
MEM ;
IF {} { PUSH string "Unauthorized" ; FAILWITH } ;
UNIT ;
PAIR } ;
SWAP ;
UNPAIR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "[pool.update_balance]: No tez accepted." ;
FAILWITH } ;
DUP ;
GET 7 ;
NIL (pair address nat) ;
SWAP ;
ITER { CONS } ;
NIL (pair address nat) ;
PUSH nat 0 ;
DIG 2 ;
ITER { SENDER ;
DUP 2 ;
CAR ;
COMPARE ;
EQ ;
IF { CDR ; ADD } { DIG 2 ; SWAP ; CONS ; SWAP } } ;
DUP ;
INT ;
GT ;
IF
{}
{ PUSH string "[pool.cancel_deposit]: No request found." ;
FAILWITH } ;
DUG 2 ;
UPDATE 7 ;
SWAP ;
NIL operation ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 150 ; FAILWITH } {} ;
LAMBDA nat mutez { PUSH mutez 1 ; SWAP ; MUL } ;
DIG 3 ;
EXEC ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DUP ;
GET 34 ;
NIL (pair address (pair nat (pair nat (pair nat nat)))) ;
SWAP ;
ITER { CONS } ;
NIL (pair address (pair nat (pair nat (pair nat nat)))) ;
PUSH nat 0 ;
DIG 2 ;
ITER { SENDER ;
DUP 2 ;
CAR ;
COMPARE ;
EQ ;
IF { GET 5 ; ADD } { DIG 2 ; SWAP ; CONS ; SWAP } } ;
DUP ;
INT ;
GT ;
IF
{}
{ PUSH string "[pool.cancel_request_withdrawal]: No request found." ;
FAILWITH } ;
DUG 2 ;
UPDATE 34 ;
SWAP ;
NIL operation ;
DIG 3 ;
DIG 2 ;
SENDER ;
SELF_ADDRESS ;
PAIR 3 ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR } }
{ IF_LEFT
{ DUP 3 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUG 7 ;
DUG 7 ;
DIG 6 ;
DIG 7 ;
DUP 2 ;
GET 19 ;
DUP 2 ;
COMPARE ;
GE ;
IF
{}
{ PUSH string "[pool.claim]: Invalid amount requested." ;
FAILWITH } ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "[pool.claim]: No tez accepted." ; FAILWITH } ;
DUP ;
EMPTY_MAP address nat ;
NIL (pair address nat) ;
SELF_ADDRESS ;
UNIT ;
VIEW "fetch_price" nat ;
IF_NONE { PUSH int 277 ; FAILWITH } {} ;
DUP 6 ;
GET 7 ;
NIL (pair address nat) ;
SWAP ;
ITER { CONS } ;
DUP ;
ITER { DUP 6 ;
INT ;
GT ;
IF
{ DUP ;
CDR ;
DUP 7 ;
COMPARE ;
LT ;
IF
{ LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ;
ISNAT ;
IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DUP 7 ;
DUP 3 ;
CDR ;
SUB ;
EXEC ;
DUP 2 ;
CAR ;
PAIR ;
DIG 4 ;
SWAP ;
CONS ;
DUG 3 ;
DIG 5 ;
PUSH nat 0 ;
DUG 6 }
{ LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ;
ISNAT ;
IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DUP 2 ;
CDR ;
DIG 7 ;
SUB ;
EXEC ;
DUG 5 ;
DUP ;
CDR } ;
DUP 4 ;
DUP 10 ;
GET 27 ;
DIG 2 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 301 ; FAILWITH } { CAR } ;
DUP 6 ;
DUP 3 ;
CAR ;
MEM ;
IF
{ DIG 5 ;
DUP ;
DIG 3 ;
CAR ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 306 ; FAILWITH } {} ;
DIG 3 ;
ADD ;
SOME ;
SWAP ;
UPDATE ;
DUG 3 }
{ DIG 5 ; SWAP ; SOME ; DIG 2 ; CAR ; UPDATE ; DUG 3 } }
{ DIG 3 ; SWAP ; CONS ; DUG 2 } } ;
DROP 2 ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 2 ;
INT ;
EQ ;
IF
{}
{ PUSH string "[pool.claim]: The requested amount is too large." ;
FAILWITH } ;
NIL operation ;
DIG 5 ;
DIG 3 ;
DUP 6 ;
GET 33 ;
PAIR ;
SWAP ;
DIG 5 ;
DIG 3 ;
DIG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR ;
SWAP ;
DIG 2 ;
UPDATE 7 ;
DUG 2 ;
DUP 2 ;
DUP 4 ;
GET 13 ;
SENDER ;
GET ;
IF_NONE { PUSH int 322 ; FAILWITH } {} ;
CAR ;
ADD ;
DUP 4 ;
DUP ;
GET 13 ;
DUP 6 ;
GET 13 ;
SENDER ;
GET ;
IF_NONE { PUSH int 326 ; FAILWITH } {} ;
GET 4 ;
DIG 6 ;
GET 13 ;
SENDER ;
GET ;
IF_NONE { PUSH int 325 ; FAILWITH } {} ;
GET 3 ;
DIG 4 ;
PAIR 3 ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 13 ;
DUP ;
GET 11 ;
DUP 4 ;
ADD ;
UPDATE 11 ;
DUG 2 ;
SENDER ;
CONTRACT unit ;
IF_NONE { PUSH int 329 ; FAILWITH } {} ;
LAMBDA nat mutez { PUSH mutez 1 ; SWAP ; MUL } ;
DIG 3 ;
EXEC ;
UNIT ;
TRANSFER_TOKENS ;
CONS }
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
IF_LEFT
{ PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "[pool.claim_outstanding]: No tez accepted." ;
FAILWITH } ;
DUP 2 ;
GET 21 ;
SENDER ;
MEM ;
IF
{}
{ PUSH string "[pool.claim_outstanding]: Nothing to withdraw." ;
FAILWITH } ;
DUP 2 ;
GET 21 ;
SENDER ;
GET ;
IF_NONE { PUSH int 566 ; FAILWITH } {} ;
SELF_ADDRESS ;
UNIT ;
VIEW "fetch_price" nat ;
IF_NONE { PUSH int 568 ; FAILWITH } {} ;
DUP 4 ;
GET 21 ;
SENDER ;
GET ;
IF_NONE { PUSH int 575 ; FAILWITH } {} ;
CAR ;
DUP 2 ;
DUP 4 ;
GET 4 ;
COMPARE ;
GT ;
IF
{ DROP ;
DIG 4 ;
DROP ;
DUP 4 ;
GET 27 ;
SWAP ;
DIG 2 ;
GET 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 579 ; FAILWITH } { CAR } }
{ SWAP ; DROP ; SWAP ; DROP ; DIG 3 ; DROP } ;
DUP ;
LAMBDA
mutez
nat
{ PUSH mutez 1 ;
SWAP ;
EDIV ;
IF_NONE { PUSH int 34 ; FAILWITH } {} ;
CAR } ;
BALANCE ;
EXEC ;
COMPARE ;
GE ;
IF
{}
{ PUSH string "[pool.claim_outstanding]: The requested amount is to large." ;
FAILWITH } ;
NIL operation ;
DIG 2 ;
CONTRACT unit ;
IF_NONE { PUSH int 585 ; FAILWITH } {} ;
LAMBDA nat mutez { PUSH mutez 1 ; SWAP ; MUL } ;
DIG 3 ;
EXEC ;
UNIT ;
TRANSFER_TOKENS ;
CONS ;
SWAP ;
DUP ;
GET 21 ;
NONE (pair nat (pair nat nat)) ;
SENDER ;
UPDATE ;
UPDATE 21 ;
SWAP }
{ DROP ;
SWAP ;
DROP ;
NIL operation ;
DUP 2 ;
GET 29 ;
CONTRACT unit ;
IF_NONE { PUSH int 717 ; FAILWITH } {} ;
AMOUNT ;
UNIT ;
TRANSFER_TOKENS ;
CONS } } } }
{ IF_LEFT
{ IF_LEFT
{ LAMBDA nat mutez { PUSH mutez 1 ; SWAP ; MUL } ;
DUP 3 ;
GET 19 ;
EXEC ;
AMOUNT ;
COMPARE ;
GE ;
IF
{}
{ PUSH string "[pool.deposit]: Invalid amount." ; FAILWITH } ;
DUP 2 ;
GET 15 ;
DUP 3 ;
GET 7 ;
SIZE ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "[pool.deposit]: The queue is full." ; FAILWITH } ;
LAMBDA
mutez
nat
{ PUSH mutez 1 ;
SWAP ;
EDIV ;
IF_NONE { PUSH int 34 ; FAILWITH } {} ;
CAR } ;
AMOUNT ;
EXEC ;
PUSH int 1 ;
DUP 4 ;
GET 7 ;
ITER { DUP 4 ; SWAP ; CAR ; COMPARE ; EQ ; IF { PUSH int -1 ; ADD } {} } ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
PUSH int 0 ;
COMPARE ;
LT ;
IF
{}
{ PUSH string "[pool.deposit]: Too many requests." ; FAILWITH } ;
DUP 3 ;
GET 7 ;
SWAP ;
DIG 2 ;
PAIR ;
CONS ;
UPDATE 7 ;
NIL operation }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
UNIT ;
EXEC ;
NIL operation ;
SWAP ;
ITER { CONS } ;
NIL operation ;
SWAP ;
ITER { CONS } }
{ DUP 3 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUG 7 ;
DUG 7 ;
DIG 6 ;
DIG 7 ;
DUP 2 ;
GET 9 ;
LAMBDA
mutez
nat
{ PUSH mutez 1 ;
SWAP ;
EDIV ;
IF_NONE { PUSH int 34 ; FAILWITH } {} ;
CAR } ;
AMOUNT ;
EXEC ;
ADD ;
NIL (pair address (pair nat (pair nat (pair nat nat)))) ;
DUP 4 ;
GET 5 ;
LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ; ISNAT ; IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DUP 6 ;
GET 3 ;
LEVEL ;
SUB ;
EXEC ;
EDIV ;
IF_NONE { PUSH int 512 ; FAILWITH } { CAR } ;
DUP 5 ;
GET 23 ;
NIL (pair address (pair nat (pair nat (pair nat nat)))) ;
SWAP ;
ITER { CONS } ;
DUP ;
ITER { DUP 7 ;
GET 5 ;
LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ;
ISNAT ;
IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DUP 9 ;
GET 3 ;
DUP 4 ;
GET 8 ;
SUB ;
EXEC ;
EDIV ;
IF_NONE { PUSH int 517 ; FAILWITH } { CAR } ;
DUP 6 ;
INT ;
GT ;
IF
{ PUSH nat 4 ; ADD ; DUP 4 ; COMPARE ; GT }
{ DROP ; PUSH bool False } ;
IF
{ DUP 5 ; DUP 2 ; GET 3 ; COMPARE ; LE }
{ PUSH bool False } ;
IF
{ LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ;
ISNAT ;
IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DUP 2 ;
GET 3 ;
DIG 6 ;
SUB ;
EXEC ;
DUG 4 ;
DUP 7 ;
GET 21 ;
DUP 2 ;
CAR ;
MEM ;
IF
{ DUP 7 ;
GET 21 ;
DUP 2 ;
CAR ;
GET ;
IF_NONE { PUSH int 529 ; FAILWITH } {} ;
DIG 7 ;
DUP ;
GET 21 ;
DUP 4 ;
GET 7 ;
DUP 5 ;
GET 5 ;
DUP 5 ;
GET 3 ;
ADD ;
DUP 6 ;
GET 3 ;
DIG 5 ;
CAR ;
ADD ;
PAIR 3 ;
SOME ;
DIG 3 ;
CAR ;
UPDATE ;
UPDATE 21 ;
DUG 5 }
{ DIG 6 ;
DUP ;
GET 21 ;
DUP 3 ;
GET 7 ;
DUP 4 ;
GET 5 ;
DUP 5 ;
GET 3 ;
PAIR 3 ;
SOME ;
DIG 3 ;
CAR ;
UPDATE ;
UPDATE 21 ;
DUG 5 } }
{ DIG 3 ; SWAP ; CONS ; DUG 2 } } ;
DROP 2 ;
DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DUG 2 ;
UPDATE 9 ;
SWAP ;
UPDATE 23 ;
NIL operation } } }
{ IF_LEFT
{ DUP 3 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUG 7 ;
DUG 7 ;
DIG 6 ;
DIG 7 ;
DUP 2 ;
GET 19 ;
DUP 2 ;
COMPARE ;
GE ;
IF
{}
{ PUSH string "[pool.pending_withdrawal]: Invalid amount requested." ;
FAILWITH } ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "[pool.pending_withdrawal]: No tez accepted." ;
FAILWITH } ;
DUP ;
PUSH nat 0 ;
NIL (pair address (pair nat (pair nat (pair nat nat)))) ;
DUP 5 ;
GET 34 ;
NIL (pair address (pair nat (pair nat (pair nat nat)))) ;
SWAP ;
ITER { CONS } ;
DUP ;
ITER { DUP 7 ;
GET 15 ;
DUP 8 ;
GET 23 ;
SIZE ;
COMPARE ;
LE ;
IF { DUP 5 ; INT ; GT } { PUSH bool False } ;
IF
{ DUP 5 ; DUP 2 ; GET 3 ; COMPARE ; LE }
{ PUSH bool False } ;
IF
{ LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ;
ISNAT ;
IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DUP 2 ;
GET 3 ;
DIG 6 ;
SUB ;
EXEC ;
DUG 4 ;
DUP 7 ;
GET 23 ;
LEVEL ;
DUP 3 ;
GET 7 ;
DUP 4 ;
GET 5 ;
DUP 5 ;
GET 3 ;
DUP 6 ;
CAR ;
PAIR 5 ;
CONS ;
DIG 7 ;
SWAP ;
UPDATE 23 ;
DUG 6 ;
DIG 3 ;
SWAP ;
GET 5 ;
ADD ;
DUG 2 }
{ DIG 2 ; SWAP ; CONS ; SWAP } } ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 6 ;
DROP ;
DIG 2 ;
INT ;
EQ ;
IF
{}
{ PUSH string "[pool.pending_withdrawal]: Invalid amount requested." ;
FAILWITH } ;
DIG 3 ;
SWAP ;
UPDATE 34 ;
DUG 2 ;
LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ; ISNAT ; IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DUP 3 ;
DUP 5 ;
GET 11 ;
SUB ;
EXEC ;
DIG 3 ;
SWAP ;
UPDATE 11 ;
DUG 2 ;
SWAP ;
DUP 3 ;
GET 13 ;
SENDER ;
GET ;
IF_NONE { PUSH int 478 ; FAILWITH } {} ;
CAR ;
SUB ;
DUP ;
GE ;
IF
{}
{ PUSH string "[pool.update_balance]: The manager balance is negative." ;
FAILWITH } ;
DUP 3 ;
DUP ;
GET 13 ;
DUP 5 ;
GET 13 ;
SENDER ;
GET ;
IF_NONE { PUSH int 487 ; FAILWITH } {} ;
GET 4 ;
DIG 5 ;
GET 13 ;
SENDER ;
GET ;
IF_NONE { PUSH int 486 ; FAILWITH } {} ;
GET 3 ;
LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ; ISNAT ; IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DIG 5 ;
EXEC ;
PAIR 3 ;
SOME ;
SENDER ;
UPDATE ;
UPDATE 13 ;
SWAP ;
NIL operation ;
DIG 3 ;
DIG 2 ;
SELF_ADDRESS ;
PAIR ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUP ;
CAR ;
PUSH (option int) (Some 0) ;
DIG 3 ;
UPDATE ;
UPDATE 1 }
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUP ;
CAR ;
NONE int ;
DIG 3 ;
UPDATE ;
UPDATE 1 } ;
NIL operation } } } }
{ IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
DUP 2 ;
GET 13 ;
DUP 2 ;
MEM ;
IF {} { PUSH string "Manager not found." ; FAILWITH } ;
PUSH nat 0 ;
DUP 3 ;
GET 13 ;
DUP 3 ;
GET ;
IF_NONE { PUSH int 56 ; FAILWITH } {} ;
CAR ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "The manager still has a balance." ; FAILWITH } ;
SWAP ;
DUP ;
GET 13 ;
NONE (pair nat (pair bool key)) ;
DIG 3 ;
UPDATE ;
UPDATE 13 ;
NIL operation }
{ IF_LEFT
{ DUP 2 ;
GET 19 ;
DUP 2 ;
COMPARE ;
GE ;
IF
{}
{ PUSH string "[pool.request_withdrawal]: Invalid amount requested." ;
FAILWITH } ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "[pool.request_withdrawal]: No tez accepted." ;
FAILWITH } ;
DUP 2 ;
GET 15 ;
DUP 3 ;
GET 34 ;
SIZE ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "[pool.deposit]: Too many requests." ;
FAILWITH } ;
DUP 2 ;
GET 31 ;
DUP 3 ;
GET 33 ;
SENDER ;
PAIR ;
VIEW "get_balance" nat ;
IF_NONE { PUSH int 350 ; FAILWITH } {} ;
DUP ;
INT ;
GT ;
IF
{}
{ PUSH string "[pool.request_withdrawal]: Nothing staked." ;
FAILWITH } ;
DUP ;
DUP 3 ;
COMPARE ;
LE ;
IF
{}
{ PUSH string "[pool.request_withdrawal]: The requested amount is greater than the amount staked." ;
FAILWITH } ;
DUP ;
INT ;
PUSH int 1 ;
DUP 5 ;
GET 34 ;
ITER { CAR ; SENDER ; COMPARE ; EQ ; IF { PUSH int -1 ; ADD } {} } ;
DUP ;
GT ;
IF
{}
{ PUSH string "[pool.request_withdrawal]: You have sent too many requests." ;
FAILWITH } ;
SWAP ;
DUP 4 ;
INT ;
SWAP ;
SUB ;
SWAP ;
DUP 2 ;
GE ;
IF
{}
{ PUSH string "[pool.request_withdrawal]: You are requesting too much." ;
FAILWITH } ;
SELF_ADDRESS ;
UNIT ;
VIEW "fetch_price" nat ;
IF_NONE { PUSH int 383 ; FAILWITH } {} ;
DUP 6 ;
GET 27 ;
DUP 2 ;
DUP 7 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 390 ; FAILWITH } { CAR } ;
DUP 7 ;
GET 34 ;
LEVEL ;
DUP 4 ;
DUP 9 ;
DUP 5 ;
SENDER ;
PAIR 5 ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 2 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
DIG 5 ;
DROP ;
CONS ;
DIG 2 ;
SWAP ;
UPDATE 34 ;
SWAP ;
NIL operation ;
DIG 3 ;
DIG 2 ;
SELF_ADDRESS ;
SENDER ;
PAIR 3 ;
SWAP ;
DUG 3 ;
PAIR 3 ;
EXEC ;
CDR ;
UNPAIR }
{ DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
SWAP ;
DROP ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
DUP ;
CAR ;
SENDER ;
MEM ;
IF {} { PUSH string "Unauthorized" ; FAILWITH } ;
PUSH int 0 ;
DUP 2 ;
CAR ;
SENDER ;
GET ;
IF_NONE { PUSH int 42 ; FAILWITH } {} ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "Not a proposed administrator" ; FAILWITH } ;
DUP ;
CAR ;
PUSH (option int) (Some 1) ;
SENDER ;
UPDATE ;
UPDATE 1 ;
NIL operation } } }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUP 2 ;
CAR ;
UPDATE 5 ;
SWAP ;
CDR ;
UPDATE 3 ;
NIL operation }
{ IF_LEFT
{ DIG 2 ;
DROP ;
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 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
UPDATE 9 ;
NIL operation } } } }
{ IF_LEFT
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF {} { PUSH string "No tez accepted" ; FAILWITH } ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
DUP 2 ;
GET 13 ;
DUP 2 ;
GET 4 ;
MEM ;
IF
{ DUP 2 ;
GET 13 ;
DUP 2 ;
GET 4 ;
GET ;
IF_NONE { PUSH int 40 ; FAILWITH } {} ;
DIG 2 ;
DUP ;
GET 13 ;
DUP 4 ;
CAR ;
DUP 5 ;
GET 3 ;
DIG 4 ;
CAR ;
PAIR 3 ;
SOME ;
DIG 3 ;
GET 4 ;
UPDATE ;
UPDATE 13 }
{ SWAP ;
DUP ;
GET 13 ;
DUP 3 ;
CAR ;
DUP 4 ;
GET 3 ;
PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 37 ; FAILWITH } {} ;
PAIR 3 ;
SOME ;
DIG 3 ;
GET 4 ;
UPDATE ;
UPDATE 13 } }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
UPDATE 15 }
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
DUP ;
GT ;
IF
{}
{ PUSH string "[pool.min_allowed_mutez]: The requested minimum cannot be negatve." ;
FAILWITH } ;
SWAP ;
LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ; ISNAT ; IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DIG 2 ;
EXEC ;
UPDATE 19 } } ;
NIL operation }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
PUSH nat 0 ;
DUP 2 ;
CDR ;
COMPARE ;
GT ;
IF
{}
{ PUSH string "The fee cannot be negative." ; FAILWITH } ;
PUSH nat 0 ;
DUP 2 ;
CAR ;
COMPARE ;
GT ;
IF
{}
{ PUSH string "The denominator must be greater than 0." ;
FAILWITH } ;
UNPAIR ;
SWAP ;
PAIR ;
UPDATE 25 ;
NIL operation }
{ IF_LEFT
{ DIG 2 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 2 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
SWAP ;
UPDATE 29 ;
NIL operation }
{ DUP 3 ;
UNIT ;
SWAP ;
DIG 3 ;
DIG 2 ;
PAIR ;
EXEC ;
CDR ;
DUG 7 ;
DUG 7 ;
DIG 6 ;
DIG 7 ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
EQ ;
IF
{}
{ PUSH string "[pool.update_balance]: No tez accepted." ;
FAILWITH } ;
SELF_ADDRESS ;
UNIT ;
VIEW "fetch_price" nat ;
IF_NONE { PUSH int 225 ; FAILWITH } {} ;
DUP 3 ;
GET 13 ;
SENDER ;
GET ;
IF_NONE { PUSH int 232 ; FAILWITH } {} ;
CAR ;
DUP 3 ;
SUB ;
DIG 3 ;
DUP ;
GET 13 ;
DUP ;
SENDER ;
DUP ;
DUG 2 ;
GET ;
IF_NONE { PUSH int 233 ; FAILWITH } {} ;
DIG 6 ;
UPDATE 1 ;
SOME ;
SWAP ;
UPDATE ;
UPDATE 13 ;
DUG 2 ;
DUP ;
GT ;
IF
{ DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 3 ;
DROP ;
DIG 4 ;
DROP ;
DIG 4 ;
DROP ;
LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ;
ISNAT ;
IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DUP 2 ;
EXEC ;
DUP 4 ;
GET 25 ;
CDR ;
DUP 5 ;
GET 25 ;
CAR ;
DIG 2 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 238 ; FAILWITH } { CAR } ;
DIG 2 ;
DUP 4 ;
GET 27 ;
DIG 2 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 242 ; FAILWITH } { CAR } ;
NIL operation ;
DIG 4 ;
DIG 2 ;
DUP 5 ;
GET 29 ;
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 2 ;
DROP ;
NIL operation } ;
LAMBDA
int
nat
{ PUSH int 0 ;
ISNAT ;
IF_NONE { PUSH int 62 ; FAILWITH } {} ;
DUP 2 ;
GT ;
IF
{ DROP ; ISNAT ; IF_NONE { PUSH int 65 ; FAILWITH } {} }
{ SWAP ; DROP } } ;
DIG 2 ;
DUP 4 ;
GET 11 ;
INT ;
ADD ;
EXEC ;
DIG 2 ;
SWAP ;
UPDATE 11 ;
SWAP } } } } } ;
NIL operation ;
SWAP ;
ITER { CONS } ;
PAIR } ;
view "fetch_price" unit nat
{ UNPAIR ;
DUP 2 ;
GET 31 ;
DUP 3 ;
GET 33 ;
VIEW "get_total_supply" nat ;
IF_NONE { PUSH int 697 ; FAILWITH } {} ;
DUP 3 ;
GET 27 ;
DUP 2 ;
INT ;
NEQ ;
IF
{ DROP ;
SWAP ;
DROP ;
DUP 2 ;
GET 27 ;
DIG 2 ;
GET 11 ;
MUL ;
EDIV ;
IF_NONE { PUSH int 707 ; FAILWITH } { CAR } }
{ SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } } }