Forráskód Böngészése

Remove pnpm
Remove work script command
Reuse poolkeys for sell

OneRobotBoii 1 éve
szülő
commit
2f0e73c9eb
3 módosított fájl, 12 hozzáadás és 17 törlés
  1. 5 1
      .gitignore
  2. 6 14
      buy.ts
  3. 1 2
      package.json

+ 5 - 1
.gitignore

@@ -130,4 +130,8 @@ dist
 .pnp.*
 
 
-.idea
+.idea
+TODO
+
+# pnpm 
+pnpm-lock.yaml

+ 6 - 14
buy.ts

@@ -210,7 +210,8 @@ export async function processRaydiumPool(
       const timeout = parseInt(SELL_DELAY, 10);
       await new Promise((resolve) => setTimeout(resolve, timeout));
 
-      await sell(id, poolState);
+      let poolKeys = existingTokenAccounts.get(poolState.baseMint.toString())!.poolKeys;
+      await sell(id, poolState, poolKeys as LiquidityPoolKeys);
     }
   } catch (e) {
     logger.error({ ...poolState, error: e }, `Failed to process pool`);
@@ -312,6 +313,7 @@ const maxRetries = 60;
 async function sell(
   accountId: PublicKey,
   accountData: LiquidityStateV4,
+  poolKeys: LiquidityPoolKeys,
 ): Promise<void> {
   const tokenAccount = existingTokenAccounts.get(
     accountData.baseMint.toString(),
@@ -328,14 +330,9 @@ async function sell(
       if (balanceResponse !== null && Number(balanceResponse) > 0 && !balanceFound) {
         balanceFound = true;
 
-        tokenAccount.poolKeys = createPoolKeys(
-          accountId,
-          accountData,
-          tokenAccount.market!,
-        );
         const { innerTransaction, address } = Liquidity.makeSwapFixedInInstruction(
           {
-            poolKeys: tokenAccount.poolKeys,
+            poolKeys: poolKeys,
             userKeys: {
               tokenAccountIn: tokenAccount.address,
               tokenAccountOut: quoteTokenAssociatedAddress,
@@ -344,7 +341,7 @@ async function sell(
             amountIn: new BN(balanceResponse),
             minAmountOut: 0,
           },
-          tokenAccount.poolKeys.version,
+          poolKeys.version,
         );
 
         const latestBlockhash = await solanaConnection.getLatestBlockhash({
@@ -356,12 +353,6 @@ async function sell(
           instructions: [
             ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 }),
             ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 200000 }),
-            createAssociatedTokenAccountIdempotentInstruction(
-              wallet.publicKey,
-              tokenAccount.address,
-              wallet.publicKey,
-              accountData.baseMint,
-            ),
             ...innerTransaction.instructions,
           ],
         }).compileToV0Message();
@@ -384,6 +375,7 @@ async function sell(
         break;
       }
     } catch (error) {
+      // logger.error(`Error while selling: ${error}`);
     }
     retries++;
     await new Promise((resolve) => setTimeout(resolve, 1000));

+ 1 - 2
package.json

@@ -2,8 +2,7 @@
   "name": "solana-sniper-bot",
   "author": "Filip Dundjer",
   "scripts": {
-    "buy": "ts-node buy.ts",
-    "work": "ts-node worker/watcher.ts"
+    "buy": "ts-node buy.ts"
   },
   "dependencies": {
     "@raydium-io/raydium-sdk": "^1.3.1-beta.47",