CryptoGnome / LimitSwap

LimitSwap is fully functional DeFi Trading Bot. No fees. You just need to hold LIMIT Utility token in your wallet to use.
https://www.limitswap.com/
277 stars 148 forks source link

SELLAMOUNT and MOONBAG, TOKENS WITH FEES CAN CAUSE NONSTOP SELL TO TRY TO REACH MOONBAG BUT FEES MAKE IT IMPOSSIBLE #186

Open DizzzyDnl opened 3 years ago

DizzzyDnl commented 3 years ago

image

When using bot_v3 with settings pancakeswap_v3 the bot closes (exception) when the selling price is reached when using a Moonbag and a Sellamount together. In the picture right up the tokens I hold can be seen, right under the tokens.json file is shown. On the left side both the error log and the exception.log are shown.

DizzzyDnl commented 3 years ago

WHen using ALL in SELLAMOUNT the transaction is succesfull, but Safetesla is a token that shares the TAX with the holders. So the bot will keep selling a small amount of tokens after the 1st succesfull sell.

CryptoGnome commented 3 years ago

WHen using ALL in SELLAMOUNT the transaction is succesfull, but Safetesla is a token that shares the TAX with the holders. So the bot will keep selling a small amount of tokens after the 1st succesfull sell.

It wont sell forever, we have a mech in the bot that will sell down to a few decimals then stop

DizzzyDnl commented 3 years ago

It did 2 times 4 sells (with the ALL setting and Moonbag) and then I closed the bot myself. Taxes on a small coin like this is going very fast.

https://www.bscscan.com/token/0xA1efCe38CB265Af369e891bC3026d0285545D4E5?a=0xfd917a0bbd0b8388fa4466401a043a6c75032792

CryptoGnome commented 3 years ago

OK I see now, I am not sure how to combat this, will need to think about it.

DizzzyDnl commented 3 years ago

Hereby the tokens.json file as requested in telegram, when the bot will close itself, when the selling price is reached.

[ { "SYMBOL": "Safetesla", "ADDRESS": "0xA1efCe38CB265Af369e891bC3026d0285545D4E5", "BASESYMBOL": "WBNB", "BASEADDRESS": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",

"BUYAMOUNTINBASE": "0.01", "BUYPRICEINBASE": "0", "MAXTOKENS": "1",

"SELLAMOUNTINTOKENS": "1000000", "SELLPRICEINBASE": "0.000000000013992", "MOONBAG": "1080000001",

"SLIPPAGE": "11", "HASFEES": "true", "GAS": "5", "BOOSTPERCENT": "0", "GASLIMIT": "300000", "LIQUIDITYCHECK": "false", "LIQUIDITYAMOUNT": "10" }

]

DizzzyDnl commented 3 years ago

errors.log


INFO: 2021-05-02 18:16:59,818 INFO: 2021-05-02 18:16:59,818 For Help & To Learn More About how the bot works please visit our wiki here: INFO: 2021-05-02 18:16:59,818 https://limitswap-1.gitbook.io/limitswap/ INFO: 2021-05-02 18:16:59,818 INFO: 2021-05-02 18:17:01,204 Current Tokens Staked = 31.917580071721353 INFO: 2021-05-02 18:19:43,588 Sell Signal Found @0.000000000013992080 ERROR: 2021-05-02 18:19:43,791 Could not identify the intended function with name getAmountsOut, positional argument(s) of type (<class 'int'>, <class 'list'>) and keyword argument(s) of type {}. Found 1 function(s) with the name getAmountsOut: ['getAmountsOut(uint256,address[])'] Function invocation failed due to no matching argument types. Traceback (most recent call last): File "LimitSwap.py", line 661, in run File "LimitSwap.py", line 510, in sell File "web3\contract.py", line 875, in call File "web3\contract.py", line 880, in _set_function_info File "web3_utils\contracts.py", line 163, in find_matching_fn_abi web3.exceptions.ValidationError: Could not identify the intended function with name getAmountsOut, positional argument(s) of type (<class 'int'>, <class 'list'>) and keyword argument(s) of type {}. Found 1 function(s) with the name getAmountsOut: ['getAmountsOut(uint256,address[])'] Function invocation failed due to no matching argument types. ERROR: 2021-05-02 18:19:43,792 Could not identify the intended function with name getAmountsOut, positional argument(s) of type (<class 'int'>, <class 'list'>) and keyword argument(s) of type {}. Found 1 function(s) with the name getAmountsOut: ['getAmountsOut(uint256,address[])'] Function invocation failed due to no matching argument types. Traceback (most recent call last): File "LimitSwap.py", line 661, in run File "LimitSwap.py", line 510, in sell File "web3\contract.py", line 875, in call File "web3\contract.py", line 880, in _set_function_info File "web3_utils\contracts.py", line 163, in find_matching_fn_abi web3.exceptions.ValidationError: Could not identify the intended function with name getAmountsOut, positional argument(s) of type (<class 'int'>, <class 'list'>) and keyword argument(s) of type {}. Found 1 function(s) with the name getAmountsOut: ['getAmountsOut(uint256,address[])'] Function invocation failed due to no matching argument types.


exceptions.log


Could not identify the intended function with name getAmountsOut, positional argument(s) of type (<class 'int'>, <class 'list'>) and keyword argument(s) of type {}. Found 1 function(s) with the name getAmountsOut: ['getAmountsOut(uint256,address[])'] Function invocation failed due to no matching argument types. Traceback (most recent call last): File "LimitSwap.py", line 661, in run File "LimitSwap.py", line 510, in sell File "web3\contract.py", line 875, in call File "web3\contract.py", line 880, in _set_function_info File "web3_utils\contracts.py", line 163, in find_matching_fn_abi web3.exceptions.ValidationError: Could not identify the intended function with name getAmountsOut, positional argument(s) of type (<class 'int'>, <class 'list'>) and keyword argument(s) of type {}. Found 1 function(s) with the name getAmountsOut: ['getAmountsOut(uint256,address[])'] Function invocation failed due to no matching argument types.

DizzzyDnl commented 3 years ago

I would expect something like this in the code

IF ( "SELLAMOUNTINTOKENS" = "ALL") { "NUMBEROFTOKENSTOSELL" = "CURRENTHOLDINGS" - "MOONBAG" ---> RESULT COULD BE NEGATIVE THATS WHY LATER AN EXTRA CHECK ABOVE 0 IS NEEDED } ELSE { IF ("CURRENTHOLDINGS" - "SELLAMOUNTINTOKENS" >= "MOONBAG") { "NUMBEROFTOKENSTOSELL" = "SELLAMOUNTINTOKENS" } ELSE { "NUMBEROFTOKENSTOSELL" = "0" } }

IF ("NUMBEROFTOKENSTOSELL" > 0 AND "NUMBEROFTOKENSTOSELL" =< "CURRENTHOLDINGS" ) { SELL "NUMBEROFTOKENSTOSELL" }