x
711
parameter (or (or (or (pair %addLiquidity (address %owner) (pair (nat %minLqtMinted) (pair (nat %maxTokensDeposited) (timestamp %deadline)))) (pair %cashToToken (address %to) (pair (nat %minTokensBought) (timestamp %deadline)))) (or (pair %removeLiquidity (address %to) (pair (nat %lqtBurned) (pair (nat %minCashWithdrawn) (pair (nat %minTokensWithdrawn) (timestamp %deadline))))) (address %setLqtAddress))) (or (or (pair %tokenToCash (address %to) (pair (nat %tokensSold) (pair (nat %minCashBought) (timestamp %deadline)))) (pair %tokenToToken (address %outputCfmmContract) (pair (nat %minTokensBought) (pair (address %to) (pair (nat %tokensSold) (timestamp %deadline)))))) (or (unit %updatePools) (nat %updateTokenPoolInternal))));storage (pair (nat %tokenPool) (pair (nat %cashPool) (pair (nat %lqtTotal) (pair (nat %pendingPoolUpdates) (pair (address %tokenAddress) (pair (address %lqtAddress) (pair (timestamp %lastOracleUpdate) (pair (address %consumerEntrypoint) (big_map %metadata string bytes)))))))));code { LAMBDA (pair (list operation) (pair nat (pair nat (pair nat (pair nat (pair address (pair address (pair timestamp (pair address (big_map string bytes)))))))))) (pair (list operation) (pair nat (pair nat (pair nat (pair nat (pair address (pair address (pair timestamp (pair address (big_map string bytes)))))))))) { UNPAIR ; NOW ; DUP 3 ; GET 13 ; COMPARE ; EQ ; IF { PAIR } { SWAP ; DUP ; DUG 2 ; GET 15 ; CONTRACT (pair nat nat) ; IF_NONE { PUSH nat 35 ; FAILWITH } {} ; DUP 3 ; NOW ; UPDATE 13 ; DUG 2 ; PUSH mutez 0 ; DUP 5 ; CAR ; DIG 5 ; GET 3 ; PAIR ; TRANSFER_TOKENS ; CONS ; PAIR } } ; SWAP ; UNPAIR ; IF_LEFT { IF_LEFT { IF_LEFT { DIG 2 ; DROP ; UNPAIR 4 ; AMOUNT ; PUSH mutez 1 ; SWAP ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; PUSH nat 0 ; DUP 7 ; GET 7 ; COMPARE ; GT ; IF { DROP 6 ; PUSH nat 2 ; FAILWITH } { DIG 4 ; NOW ; COMPARE ; GE ; IF { DROP 5 ; PUSH nat 3 ; FAILWITH } { DUP 5 ; GET 3 ; DUP ; DUP 7 ; GET 5 ; DUP 4 ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 7 ; CAR ; DUP 4 ; MUL ; DIG 2 ; INT ; SWAP ; NEG ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; ABS ; DIG 5 ; SWAP ; DUP ; DUG 2 ; COMPARE ; GT ; IF { DROP 6 ; PUSH nat 4 ; FAILWITH } { DIG 4 ; DUP 3 ; COMPARE ; LT ; IF { DROP 5 ; PUSH nat 5 ; FAILWITH } { DUP 5 ; DUP 3 ; DUP 7 ; GET 5 ; ADD ; UPDATE 5 ; SWAP ; DUP ; DUG 2 ; DUP 7 ; CAR ; ADD ; UPDATE 1 ; DIG 3 ; DIG 5 ; GET 3 ; ADD ; UPDATE 3 ; DUP ; SENDER ; SELF_ADDRESS ; DIG 4 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; UNPAIR 4 ; GET 9 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH nat 0 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; DIG 4 ; PAIR ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; SWAP ; DUP ; DUG 2 ; GET 11 ; CONTRACT %mintOrBurn (pair (int %quantity) (address %target)) ; IF_NONE { PUSH nat 12 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; INT ; DIG 5 ; SWAP ; PAIR ; TRANSFER_TOKENS ; DIG 2 ; NIL operation ; DIG 2 ; CONS ; DIG 2 ; CONS ; PAIR } } } } } { UNPAIR 3 ; AMOUNT ; PUSH mutez 1 ; SWAP ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; PUSH nat 0 ; DUP 6 ; GET 7 ; COMPARE ; GT ; IF { DROP 5 ; PUSH nat 2 ; FAILWITH } { DIG 3 ; NOW ; COMPARE ; GE ; IF { DROP 4 ; PUSH nat 3 ; FAILWITH } { PUSH nat 9995 ; SWAP ; DUP ; DUG 2 ; MUL ; PUSH nat 10000 ; DUP 6 ; GET 3 ; MUL ; ADD ; DUP 5 ; CAR ; PUSH nat 9995 ; DUP 4 ; 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 ; DUP 5 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH nat 19 ; FAILWITH } {} ; DUP 5 ; DIG 3 ; DIG 5 ; GET 3 ; ADD ; UPDATE 3 ; SWAP ; UPDATE 1 ; DUP ; SELF_ADDRESS ; DIG 4 ; DIG 4 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; UNPAIR 4 ; GET 9 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH nat 0 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; DIG 4 ; PAIR ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; SWAP ; NIL operation ; DIG 2 ; CONS ; PAIR } } ; EXEC } } { DIG 2 ; DROP ; IF_LEFT { UNPAIR 5 ; PUSH nat 0 ; DUP 7 ; GET 7 ; COMPARE ; GT ; IF { DROP 6 ; PUSH nat 2 ; FAILWITH } { DIG 4 ; NOW ; COMPARE ; GE ; IF { DROP 5 ; PUSH nat 3 ; FAILWITH } { PUSH mutez 0 ; AMOUNT ; COMPARE ; GT ; IF { DROP 5 ; PUSH nat 10 ; FAILWITH } { DUP 5 ; GET 5 ; DUP 6 ; GET 3 ; DUP 4 ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP 6 ; GET 5 ; DUP 7 ; CAR ; DUP 5 ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DIG 4 ; DUP 3 ; COMPARE ; LT ; IF { DROP 6 ; PUSH nat 11 ; FAILWITH } { DIG 4 ; SWAP ; DUP ; DUG 2 ; COMPARE ; LT ; IF { DROP 5 ; PUSH nat 13 ; FAILWITH } { DUP 4 ; DUP 6 ; GET 5 ; SUB ; ISNAT ; IF_NONE { PUSH nat 14 ; FAILWITH } {} ; SWAP ; DUP ; DUG 2 ; DUP 7 ; CAR ; SUB ; ISNAT ; IF_NONE { PUSH nat 15 ; FAILWITH } {} ; DUP 4 ; DUP 8 ; GET 3 ; SUB ; ISNAT ; IF_NONE { PUSH nat 16 ; FAILWITH } {} ; DUP 8 ; SENDER ; DIG 8 ; PUSH int 0 ; SUB ; SWAP ; PAIR ; SWAP ; PAIR ; UNPAIR 3 ; GET 11 ; CONTRACT %mintOrBurn (pair (int %quantity) (address %target)) ; IF_NONE { PUSH nat 12 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 3 ; DIG 3 ; SWAP ; PAIR ; TRANSFER_TOKENS ; DUP 8 ; SELF_ADDRESS ; SENDER ; DIG 7 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; UNPAIR 4 ; GET 9 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH nat 0 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; DIG 4 ; PAIR ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; DIG 6 ; CONTRACT unit ; IF_NONE { PUSH nat 9 ; FAILWITH } {} ; PUSH mutez 1 ; DIG 7 ; MUL ; PUSH unit Unit ; TRANSFER_TOKENS ; DIG 6 ; DIG 4 ; UPDATE 3 ; DIG 5 ; UPDATE 5 ; DIG 4 ; UPDATE 1 ; NIL operation ; DIG 2 ; CONS ; DIG 2 ; CONS ; DIG 2 ; CONS ; PAIR } } } } } } { PUSH nat 0 ; DUP 3 ; GET 7 ; COMPARE ; GT ; IF { DROP 2 ; PUSH nat 2 ; FAILWITH } { PUSH mutez 0 ; AMOUNT ; COMPARE ; GT ; IF { DROP 2 ; PUSH nat 10 ; FAILWITH } { PUSH address "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU" ; DUP 3 ; GET 11 ; COMPARE ; NEQ ; IF { DROP 2 ; PUSH nat 24 ; FAILWITH } { UPDATE 11 ; NIL operation ; PAIR } } } } } } { IF_LEFT { IF_LEFT { UNPAIR 4 ; PUSH nat 0 ; DUP 6 ; GET 7 ; COMPARE ; GT ; IF { DROP 5 ; PUSH nat 2 ; FAILWITH } { DIG 3 ; 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 9995 ; DUP 3 ; MUL ; PUSH nat 10000 ; DUP 6 ; CAR ; MUL ; ADD ; DUP 5 ; GET 3 ; PUSH nat 9995 ; DUP 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 8 ; FAILWITH } {} ; DUP 4 ; SENDER ; SELF_ADDRESS ; DUP 6 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; UNPAIR 4 ; GET 9 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH nat 0 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; DIG 4 ; PAIR ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; DIG 2 ; CONTRACT unit ; IF_NONE { PUSH nat 9 ; FAILWITH } {} ; PUSH mutez 1 ; DUP 4 ; MUL ; PUSH unit Unit ; TRANSFER_TOKENS ; DIG 2 ; DUP 5 ; GET 3 ; SUB ; ISNAT ; IF_NONE { PUSH nat 1 ; FAILWITH } {} ; DUP 5 ; DIG 4 ; DIG 5 ; CAR ; ADD ; UPDATE 1 ; SWAP ; UPDATE 3 ; NIL operation ; DIG 2 ; CONS ; DIG 2 ; CONS ; PAIR } } } ; EXEC } { UNPAIR 5 ; CONTRACT %cashToToken (pair (address %to) (pair (nat %minTokensBought) (timestamp %deadline))) ; IF_NONE { PUSH nat 31 ; FAILWITH } {} ; PUSH nat 0 ; DUP 7 ; GET 7 ; COMPARE ; GT ; IF { DROP 6 ; PUSH nat 2 ; FAILWITH } { PUSH mutez 0 ; AMOUNT ; COMPARE ; GT ; IF { DROP 6 ; PUSH nat 10 ; FAILWITH } { DUP 5 ; NOW ; COMPARE ; GE ; IF { DROP 6 ; PUSH nat 3 ; FAILWITH } { PUSH nat 9995 ; DUP 5 ; MUL ; PUSH nat 10000 ; DUP 8 ; CAR ; MUL ; ADD ; DUP 7 ; GET 3 ; PUSH nat 9995 ; DUP 7 ; MUL ; MUL ; EDIV ; IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ; CAR ; DUP ; DUP 8 ; GET 3 ; SUB ; ISNAT ; IF_NONE { PUSH nat 17 ; FAILWITH } {} ; DUP 8 ; DUP 7 ; DIG 9 ; CAR ; ADD ; UPDATE 1 ; SWAP ; UPDATE 3 ; DIG 2 ; PUSH mutez 1 ; DIG 3 ; MUL ; DIG 4 ; DIG 4 ; DIG 6 ; SWAP ; PAIR ; SWAP ; PAIR ; TRANSFER_TOKENS ; SWAP ; DUP ; DUG 2 ; SENDER ; SELF_ADDRESS ; DIG 5 ; SWAP ; PAIR ; SWAP ; PAIR ; SWAP ; PAIR ; UNPAIR 4 ; GET 9 ; CONTRACT %transfer (pair address (pair address nat)) ; IF_NONE { PUSH nat 0 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 4 ; DIG 4 ; PAIR ; DIG 3 ; PAIR ; TRANSFER_TOKENS ; DIG 2 ; NIL operation ; DIG 2 ; CONS ; DIG 2 ; CONS ; PAIR } } } ; EXEC } } { DIG 2 ; DROP ; IF_LEFT { DROP ; SOURCE ; SENDER ; COMPARE ; NEQ ; IF { DROP ; PUSH nat 25 ; FAILWITH } { PUSH mutez 0 ; AMOUNT ; COMPARE ; GT ; IF { DROP ; PUSH nat 10 ; FAILWITH } { SELF %updateTokenPoolInternal ; SWAP ; DUP ; DUG 2 ; GET 9 ; CONTRACT %getBalance (pair address (contract nat)) ; IF_NONE { PUSH nat 28 ; FAILWITH } {} ; PUSH mutez 0 ; DIG 2 ; SELF_ADDRESS ; PAIR ; TRANSFER_TOKENS ; SWAP ; PUSH nat 1 ; UPDATE 7 ; NIL operation ; DIG 2 ; CONS ; PAIR } } } { SWAP ; DUP ; DUG 2 ; GET 9 ; SENDER ; COMPARE ; NEQ ; PUSH nat 0 ; DUP 4 ; GET 7 ; COMPARE ; EQ ; OR ; IF { DROP 2 ; PUSH nat 29 ; FAILWITH } { PUSH nat 1 ; DUP 3 ; GET 7 ; SUB ; ABS ; DUG 2 ; UPDATE 1 ; SWAP ; UPDATE 7 ; NIL operation ; PAIR } } } } }