x
951
parameter (or
(or
(or
(pair %addLiquidity (address %owner)
(pair (nat %minLqtMinted)
(pair (nat %maxTokensDeposited)
(timestamp %deadline))))
(unit %default))
(or
(pair %removeLiquidity (address %to)
(pair (nat %lqtBurned)
(pair (mutez %minXtzWithdrawn)
(pair (nat %minTokensWithdrawn)
(timestamp %deadline)))))
(pair %tokenToToken (address %outputDexterContract)
(pair (nat %minTokensBought)
(pair (address %to)
(pair (nat %tokensSold)
(timestamp %deadline)))))))
(or
(pair %tokenToXtz (address %to)
(pair (nat %tokensSold)
(pair (mutez %minXtzBought) (timestamp %deadline))))
(pair %xtzToToken (address %to)
(pair (nat %minTokensBought) (timestamp %deadline)))));
storage (pair (nat %tokenPool)
(pair (mutez %xtzPool)
(pair (nat %lqtTotal)
(pair (address %tokenAddress) (address %lqtAddress)))));
code { DUP ;
CDR ;
SWAP ;
CAR ;
IF_LEFT
{ IF_LEFT
{ IF_LEFT
{ DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
NOW ;
COMPARE ;
GE ;
IF
{ DROP 4 ; PUSH nat 3 ; FAILWITH }
{ PUSH mutez 1 ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CAR ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
AMOUNT ;
PUSH mutez 1 ;
SWAP ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
SWAP ;
DUP ;
DUG 2 ;
DIG 6 ;
DUP ;
DUG 7 ;
CDR ;
CDR ;
CAR ;
DIG 2 ;
DUP ;
DUG 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
DIG 2 ;
DIG 6 ;
DUP ;
DUG 7 ;
CAR ;
DIG 3 ;
MUL ;
EDIV ;
IF_NONE
{ PUSH string "DIV by 0" ; FAILWITH }
{ DUP ;
CDR ;
SWAP ;
CAR ;
PUSH nat 0 ;
DIG 2 ;
COMPARE ;
EQ ;
IF {} { PUSH nat 1 ; ADD } } ;
DIG 2 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
GT ;
IF
{ DROP 5 ; PUSH nat 4 ; FAILWITH }
{ DUG 2 ;
DUP ;
DUG 3 ;
COMPARE ;
LT ;
IF
{ DROP 4 ; PUSH nat 5 ; FAILWITH }
{ DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
CDR ;
CDR ;
DIG 2 ;
DUP ;
DUG 3 ;
DIG 5 ;
DUP ;
DUG 6 ;
CDR ;
CDR ;
CAR ;
ADD ;
PAIR ;
DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CAR ;
PAIR ;
DIG 4 ;
DUP ;
DUG 5 ;
CAR ;
PAIR ;
CDR ;
SWAP ;
DUP ;
DUG 2 ;
DIG 5 ;
DUP ;
DUG 6 ;
CAR ;
ADD ;
PAIR ;
DUP ;
CDR ;
CDR ;
AMOUNT ;
DIG 6 ;
CDR ;
CAR ;
ADD ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
SWAP ;
SELF ;
ADDRESS ;
PAIR ;
SENDER ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 3 ;
CDR ;
CDR ;
CDR ;
CAR ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DIG 3 ;
PAIR ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
DIG 2 ;
INT ;
DIG 3 ;
PAIR ;
DIG 2 ;
DUP ;
DUG 3 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 2 ;
CDR ;
CDR ;
CDR ;
CDR ;
CONTRACT %mintOrBurn (pair (int %quantity)
(address %target)) ;
IF_NONE { PUSH nat 12 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 2 ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
DIG 2 ;
NIL operation ;
DIG 2 ;
CONS ;
DIG 2 ;
CONS ;
PAIR } } } }
{ DROP ;
DUP ;
CDR ;
CDR ;
AMOUNT ;
DIG 2 ;
DUP ;
DUG 3 ;
CDR ;
CAR ;
ADD ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
NIL operation ;
PAIR } }
{ IF_LEFT
{ DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
NOW ;
COMPARE ;
GE ;
IF
{ DROP 5 ; PUSH nat 3 ; FAILWITH }
{ PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
GT ;
IF
{ DROP 5 ; PUSH nat 10 ; FAILWITH }
{ DIG 4 ;
DUP ;
DUG 5 ;
CDR ;
CDR ;
CAR ;
PUSH mutez 1 ;
DIG 6 ;
DUP ;
DUG 7 ;
CDR ;
CAR ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
DIG 4 ;
DUP ;
DUG 5 ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
PUSH mutez 1 ;
SWAP ;
MUL ;
DIG 5 ;
DUP ;
DUG 6 ;
CDR ;
CDR ;
CAR ;
DIG 6 ;
DUP ;
DUG 7 ;
CAR ;
DIG 5 ;
DUP ;
DUG 6 ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
DIG 3 ;
DIG 2 ;
DUP ;
DUG 3 ;
COMPARE ;
LT ;
IF
{ DROP 6 ; PUSH nat 11 ; FAILWITH }
{ DIG 2 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LT ;
IF
{ DROP 5 ; PUSH nat 13 ; FAILWITH }
{ DIG 2 ;
DUP ;
DUG 3 ;
DIG 5 ;
DUP ;
DUG 6 ;
CDR ;
CDR ;
CAR ;
SUB ;
ISNAT ;
IF_NONE { PUSH nat 14 ; FAILWITH } {} ;
SWAP ;
DUP ;
DUG 2 ;
DIG 6 ;
DUP ;
DUG 7 ;
CAR ;
SUB ;
ISNAT ;
IF_NONE { PUSH nat 15 ; FAILWITH } {} ;
DIG 4 ;
PUSH int 0 ;
SUB ;
SENDER ;
PAIR ;
DIG 6 ;
DUP ;
DUG 7 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 2 ;
CDR ;
CDR ;
CDR ;
CDR ;
CONTRACT %mintOrBurn (pair (int %quantity)
(address %target)) ;
IF_NONE { PUSH nat 12 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 2 ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
DIG 3 ;
DIG 5 ;
DUP ;
DUG 6 ;
PAIR ;
SELF ;
ADDRESS ;
PAIR ;
DIG 6 ;
DUP ;
DUG 7 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 3 ;
CDR ;
CDR ;
CDR ;
CAR ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DIG 3 ;
PAIR ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
DIG 4 ;
DUP ;
DUG 5 ;
DIG 6 ;
CONTRACT unit ;
IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
SWAP ;
PUSH unit Unit ;
TRANSFER_TOKENS ;
DIG 6 ;
DUP ;
DUG 7 ;
CDR ;
CDR ;
DIG 6 ;
DIG 7 ;
DUP ;
DUG 8 ;
CDR ;
CAR ;
SUB ;
PAIR ;
DIG 6 ;
CAR ;
PAIR ;
DUP ;
CDR ;
CDR ;
CDR ;
DIG 6 ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
CDR ;
CAR ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
CDR ;
DIG 4 ;
PAIR ;
NIL operation ;
DIG 2 ;
CONS ;
DIG 2 ;
CONS ;
DIG 2 ;
CONS ;
PAIR } } } } }
{ DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 4 ;
CONTRACT %xtzToToken (pair (address %to)
(pair (nat %minTokensBought)
(timestamp %deadline))) ;
IF_NONE { PUSH nat 31 ; FAILWITH } {} ;
PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
GT ;
IF
{ DROP 6 ; PUSH nat 10 ; FAILWITH }
{ DIG 2 ;
DUP ;
DUG 3 ;
NOW ;
COMPARE ;
GE ;
IF
{ DROP 6 ; PUSH nat 3 ; FAILWITH }
{ PUSH nat 999 ;
DIG 2 ;
DUP ;
DUG 3 ;
MUL ;
PUSH nat 1000 ;
DIG 7 ;
DUP ;
DUG 8 ;
CAR ;
MUL ;
ADD ;
DIG 6 ;
DUP ;
DUG 7 ;
CDR ;
CAR ;
PUSH nat 999 ;
DIG 4 ;
DUP ;
DUG 5 ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
PUSH nat 1000 ;
PUSH nat 999 ;
DIG 2 ;
DUP ;
DUG 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
DIG 7 ;
DUP ;
DUG 8 ;
CDR ;
DIG 4 ;
DUP ;
DUG 5 ;
DIG 9 ;
DUP ;
DUG 10 ;
CAR ;
ADD ;
PAIR ;
DUP ;
CDR ;
CDR ;
DIG 3 ;
DUP ;
DUG 4 ;
DIG 10 ;
CDR ;
CAR ;
SUB ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
DIG 4 ;
SELF ;
ADDRESS ;
PAIR ;
SENDER ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 3 ;
CDR ;
CDR ;
CDR ;
CAR ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DIG 3 ;
PAIR ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
DIG 4 ;
DIG 3 ;
DUP ;
DUG 4 ;
DIG 6 ;
DIG 8 ;
PAIR ;
DIG 7 ;
PAIR ;
TRANSFER_TOKENS ;
DIG 3 ;
DIG 4 ;
SUB ;
PUSH address "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU" ;
CONTRACT unit ;
IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
SWAP ;
PUSH unit Unit ;
TRANSFER_TOKENS ;
DIG 3 ;
NIL operation ;
DIG 2 ;
CONS ;
DIG 2 ;
CONS ;
DIG 2 ;
CONS ;
PAIR } } } } }
{ IF_LEFT
{ DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
NOW ;
COMPARE ;
GE ;
IF
{ DROP 4 ; PUSH nat 3 ; FAILWITH }
{ PUSH mutez 0 ;
AMOUNT ;
COMPARE ;
GT ;
IF
{ DROP 4 ; PUSH nat 10 ; FAILWITH }
{ PUSH nat 999 ;
DIG 2 ;
DUP ;
DUG 3 ;
MUL ;
PUSH nat 1000 ;
DIG 5 ;
DUP ;
DUG 6 ;
CAR ;
MUL ;
ADD ;
PUSH mutez 1 ;
DIG 5 ;
DUP ;
DUG 6 ;
CDR ;
CAR ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
PUSH nat 999 ;
DIG 4 ;
DUP ;
DUG 5 ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
PUSH mutez 1 ;
SWAP ;
MUL ;
PUSH nat 1000 ;
PUSH nat 999 ;
DIG 2 ;
DUP ;
DUG 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
DIG 2 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LT ;
IF { DROP ; PUSH nat 8 ; FAILWITH } {} ;
DIG 2 ;
DUP ;
DUG 3 ;
SELF ;
ADDRESS ;
PAIR ;
SENDER ;
PAIR ;
DIG 5 ;
DUP ;
DUG 6 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 3 ;
CDR ;
CDR ;
CDR ;
CAR ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DIG 3 ;
PAIR ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
SWAP ;
DUP ;
DUG 2 ;
DIG 5 ;
CONTRACT unit ;
IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
SWAP ;
PUSH unit Unit ;
TRANSFER_TOKENS ;
DIG 5 ;
DUP ;
DUG 6 ;
CDR ;
DIG 5 ;
DIG 6 ;
DUP ;
DUG 7 ;
CAR ;
ADD ;
PAIR ;
DUP ;
CDR ;
CDR ;
DIG 5 ;
DUP ;
DUG 6 ;
DIG 7 ;
CDR ;
CAR ;
SUB ;
PAIR ;
SWAP ;
CAR ;
PAIR ;
DIG 3 ;
DIG 4 ;
SUB ;
PUSH address "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU" ;
CONTRACT unit ;
IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
SWAP ;
PUSH unit Unit ;
TRANSFER_TOKENS ;
SWAP ;
NIL operation ;
DIG 2 ;
CONS ;
DIG 2 ;
CONS ;
DIG 2 ;
CONS ;
PAIR } } }
{ DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
NOW ;
COMPARE ;
GE ;
IF
{ DROP 3 ; PUSH nat 3 ; FAILWITH }
{ PUSH mutez 1 ;
DIG 3 ;
DUP ;
DUG 4 ;
CDR ;
CAR ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
AMOUNT ;
PUSH mutez 1 ;
SWAP ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
PUSH nat 1000 ;
PUSH nat 999 ;
DIG 2 ;
DUP ;
DUG 3 ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
DUP ;
DIG 2 ;
SUB ;
ABS ;
PUSH nat 999 ;
DIG 2 ;
DUP ;
DUG 3 ;
MUL ;
PUSH nat 1000 ;
DIG 4 ;
MUL ;
ADD ;
DIG 5 ;
DUP ;
DUG 6 ;
CAR ;
PUSH nat 999 ;
DIG 4 ;
DUP ;
DUG 5 ;
MUL ;
MUL ;
EDIV ;
IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
CAR ;
DIG 3 ;
SWAP ;
DUP ;
DUG 2 ;
COMPARE ;
LT ;
IF { DROP ; PUSH nat 18 ; FAILWITH } {} ;
DUP ;
DIG 5 ;
DUP ;
DUG 6 ;
CAR ;
SUB ;
ISNAT ;
IF_NONE { PUSH nat 19 ; FAILWITH } {} ;
DIG 5 ;
DUP ;
DUG 6 ;
CDR ;
CDR ;
PUSH mutez 1 ;
DIG 5 ;
MUL ;
DIG 6 ;
DUP ;
DUG 7 ;
CDR ;
CAR ;
ADD ;
PAIR ;
DIG 5 ;
CAR ;
PAIR ;
CDR ;
SWAP ;
PAIR ;
SWAP ;
DIG 3 ;
PAIR ;
SELF ;
ADDRESS ;
PAIR ;
SWAP ;
DUP ;
DUG 2 ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
SWAP ;
DUP ;
CDR ;
SWAP ;
CAR ;
DIG 3 ;
CDR ;
CDR ;
CDR ;
CAR ;
CONTRACT %transfer (pair address (pair address nat)) ;
IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
PUSH mutez 0 ;
DIG 3 ;
DIG 3 ;
PAIR ;
DIG 3 ;
PAIR ;
TRANSFER_TOKENS ;
PUSH mutez 1 ;
DIG 3 ;
MUL ;
PUSH address "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU" ;
CONTRACT unit ;
IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
SWAP ;
PUSH unit Unit ;
TRANSFER_TOKENS ;
DIG 2 ;
NIL operation ;
DIG 2 ;
CONS ;
DIG 2 ;
CONS ;
PAIR } } } }