x
341
parameter (or (unit %deposit) (unit %withdraw));storage (pair (map %deposits address (pair (timestamp %blockTimestamp) (mutez %tezAmount))) (mutez %liquidity));code { NIL operation ; DUP ; LAMBDA bool address { DUP ; SENDER ; SWAP ; IF { DROP ; PUSH address "tz1MZ4GPjAA2gZxKTozJt8Cu5Gvu6WU2ikZ4" ; PUSH unit Unit } { PUSH unit Unit } ; DROP ; SWAP ; DROP } ; DUP ; DIP { PAIR } ; SWAP ; LAMBDA int mutez { DUP ; PUSH mutez 0 ; SWAP ; PUSH int 100 ; SWAP ; COMPARE ; GE ; IF { DROP ; PUSH mutez 1000000 ; PUSH unit Unit } { PUSH unit Unit } ; DROP ; SWAP ; DROP } ; DUP ; DIP { PAIR } ; SWAP ; LAMBDA (pair (pair (map address (pair timestamp mutez)) mutez) (pair (lambda int mutez) (pair (lambda bool address) (list operation)))) (pair (list operation) (pair (map address (pair timestamp mutez)) mutez)) { DUP ; CDR ; SWAP ; CAR ; DIP { DUP ; CDR ; SWAP ; CAR ; DIP { DUP ; CDR ; SWAP ; CAR } } ; PUSH mutez 0 ; AMOUNT ; COMPARE ; EQ ; IF { PUSH string "No tez transferred!" ; FAILWITH } { DIP { DIP { DUP } ; SWAP } ; SWAP ; PUSH bool False ; EXEC ; DIP { DUP } ; SWAP ; CAR ; DIP { DUP } ; SWAP ; DIP { DUP } ; GET ; DUP ; IF_NONE { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP ; CDR ; AMOUNT ; ADD ; DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP ; CAR } ; SWAP ; PAIR ; SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DROP } } } ; AMOUNT ; NOW ; PAIR ; DUP ; SOME ; DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SENDER ; UPDATE ; DIP { DIP { DIP { DUP } ; SWAP } ; SWAP ; DROP } ; SWAP ; DIP { SWAP ; DIP { SWAP ; DROP ; DUP } ; SWAP } ; SWAP ; DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CDR } ; PAIR ; SWAP ; DROP ; SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DROP } } } ; PUSH unit Unit } { DUP ; CAR ; NOW ; SUB ; DIP { DUP } ; SWAP ; CDR ; DIP { DUP ; DIP { DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; EXEC } ; ADD ; AMOUNT ; ADD ; DIP { DIP { DUP } ; SWAP ; CAR } ; SWAP ; PAIR ; SWAP ; DIP { SWAP ; DROP ; DUP } ; SWAP ; CDR ; NOW ; PAIR ; SWAP ; DIP { DIP { DROP ; DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; DIP { DIP { DUP } ; SWAP ; SOME ; DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } } ; UPDATE ; DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP ; DROP } ; SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DROP ; DUP } ; SWAP } ; SWAP } ; SWAP ; DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CDR } ; PAIR ; SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DROP ; DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CDR ; AMOUNT ; ADD ; DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CAR } ; SWAP ; PAIR ; SWAP ; DROP ; SWAP ; DROP ; { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DROP } } } } ; PUSH unit Unit } ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } ; DROP ; DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP ; DIP { DUP } ; PAIR ; DIP { DROP ; DROP ; DROP ; DROP } } ; PAIR ; DIP { DIP { DUP } ; DUP ; DIP { PAIR } ; SWAP } ; SWAP ; LAMBDA (pair (pair (map address (pair timestamp mutez)) mutez) (pair (lambda int mutez) (lambda bool address))) (pair (list operation) (pair (map address (pair timestamp mutez)) mutez)) { DUP ; CDR ; SWAP ; CAR ; DIP { DUP ; CDR ; SWAP ; CAR ; DIP { DUP } ; SWAP } ; SWAP ; PUSH bool False ; EXEC ; DUP ; NIL operation ; SWAP ; DIP { DIP { DIP { DUP } ; SWAP } ; SWAP ; CAR } ; GET ; IF_NONE { PUSH string "GET_FORCE" ; FAILWITH } {} ; DUP ; CAR ; NOW ; SUB ; DIP { DUP } ; SWAP ; CDR ; DIP { DUP ; DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; EXEC } ; ADD ; DUP ; DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CDR } ; COMPARE ; GT ; IF { PUSH string "No tez to withdraw!" ; FAILWITH } { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CAR ; DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; DIP { DUP ; NONE (pair timestamp mutez) } ; UPDATE ; SWAP ; DROP ; DUP ; DIP { DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CDR } ; PAIR ; SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DROP ; DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CDR ; DIP { DIP { DUP } ; SWAP } ; SUB_MUTEZ ; { IF_NONE { { UNIT ; FAILWITH } } {} } ; DIP { DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CAR } ; SWAP ; PAIR ; SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DROP } ; DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CONTRACT unit ; IF_NONE { PUSH string "bad address for get_contract" ; FAILWITH } {} ; DIP { DIP { DUP } ; SWAP } ; SWAP ; DIP { DUP } ; UNIT ; TRANSFER_TOKENS ; DUP ; NIL operation ; SWAP ; CONS ; DIP { DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; DROP } ; SWAP ; DROP ; SWAP ; DROP ; { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DIP { SWAP ; DROP } } } } } ; DROP ; PUSH unit Unit } ; DROP ; DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP ; DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; PAIR ; DIP { DROP ; DROP ; DROP ; DROP ; DROP ; DROP ; DROP ; DROP } } ; PAIR ; DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CAR ; DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; CDR ; DIP { DUP } ; SWAP ; IF_LEFT { DUP ; DIP { DIP { DUP } ; SWAP } ; SWAP ; DIP { DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; DUP ; CDR ; SWAP ; CAR ; SWAP } ; PAIR ; EXEC ; SWAP ; DROP ; SWAP ; DROP } { DUP ; DIP { DIP { DUP } ; SWAP } ; SWAP ; DIP { DIP { DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP } ; SWAP ; DUP ; CDR ; SWAP ; CAR ; SWAP } ; PAIR ; EXEC ; SWAP ; DROP ; SWAP ; DROP } ; DIP { DROP ; DROP ; DROP ; DROP ; DROP ; DROP ; DROP ; DROP } }