mirror of
https://github.com/tymur999/profit-script.git
synced 2025-08-03 07:10:34 +00:00
stop after 200 irrelevant results
This commit is contained in:
63
src/index.ts
63
src/index.ts
@@ -16,35 +16,48 @@ async function calculatePumpFunProfit(walletAddress: PublicKey, myToken: PublicK
|
|||||||
lastTxn = newSigs[newSigs.length - 1]?.signature;
|
lastTxn = newSigs[newSigs.length - 1]?.signature;
|
||||||
} while(true);
|
} while(true);
|
||||||
|
|
||||||
const parseTasks: Promise<any>[] = [];
|
let irrelevantTxns = 0;
|
||||||
for(const sig of sigs) {
|
for(const sig of sigs) {
|
||||||
if(sig.err) continue;
|
if(irrelevantTxns > 200) return solNetProfit;
|
||||||
parseTasks.push(connection.getParsedTransaction(sig.signature, {maxSupportedTransactionVersion: 0})
|
if(sig.err) {
|
||||||
.then(txn => {
|
irrelevantTxns++;
|
||||||
if(!txn || !txn.meta) return;
|
continue;
|
||||||
|
}
|
||||||
|
const txn = await connection.getParsedTransaction(sig.signature, {maxSupportedTransactionVersion: 0});
|
||||||
|
if(!txn || !txn.meta) {
|
||||||
|
irrelevantTxns++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//check if there was a change in myToken
|
//check if there was a change in myToken
|
||||||
const postTokenBalances = txn.meta.postTokenBalances;
|
const postTokenBalances = txn.meta.postTokenBalances;
|
||||||
const preTokenBalances = txn.meta.preTokenBalances;
|
const preTokenBalances = txn.meta.preTokenBalances;
|
||||||
if(!postTokenBalances?.length && !preTokenBalances?.length) return;
|
if(!postTokenBalances?.length && !preTokenBalances?.length) {
|
||||||
const postMyToken = postTokenBalances?.find(tb => tb.mint == myToken.toString() &&
|
irrelevantTxns++;
|
||||||
tb.owner == walletAddress.toString());
|
continue;
|
||||||
const preMyToken = preTokenBalances?.find(tb => tb.mint == myToken.toString() &&
|
}
|
||||||
tb.owner == walletAddress.toString());
|
const postMyToken = postTokenBalances?.find(tb => tb.mint == myToken.toString() &&
|
||||||
if(!postMyToken && !preMyToken) return;
|
tb.owner == walletAddress.toString());
|
||||||
|
const preMyToken = preTokenBalances?.find(tb => tb.mint == myToken.toString() &&
|
||||||
|
tb.owner == walletAddress.toString());
|
||||||
|
if(!postMyToken && !preMyToken) {
|
||||||
|
irrelevantTxns++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//calculate sol change
|
//calculate sol change
|
||||||
if(!txn.meta.preBalances.length || !txn.meta.postBalances.length) return;
|
if(!txn.meta.preBalances.length || !txn.meta.postBalances.length) {
|
||||||
let solChange = txn.meta.postBalances[0] - txn.meta.preBalances[0]; //in lamports
|
irrelevantTxns++;
|
||||||
console.log("new transaction with sol change:", solChange);
|
continue;
|
||||||
solNetProfit += solChange;
|
}
|
||||||
}));
|
let solChange = txn.meta.postBalances[0] - txn.meta.preBalances[0]; //in lamports
|
||||||
|
console.log("new transaction with sol change:", solChange);
|
||||||
|
solNetProfit += solChange;
|
||||||
|
irrelevantTxns = 0;
|
||||||
}
|
}
|
||||||
|
return solNetProfit
|
||||||
await Promise.all(parseTasks);
|
|
||||||
|
|
||||||
console.log(solNetProfit);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
calculatePumpFunProfit(new PublicKey("8NqLtG4BnGyQJrfu91bWK215SJ1qadfhSdygeyX6VjsM"), new PublicKey("BXAtPnRuZjPKe9Gsv9Wsgh54yqWTVT6gR7w7tSYYThnW"));
|
calculatePumpFunProfit(new PublicKey("4TstnQxFS89Vfn1xtxN4V4P9mzaFiGQME1fn8EFdXCSm"), new PublicKey("Bh1vHe8suqDnRWJFzgfrXRTFQ6XiXZCip4DQLKLokB5K"))
|
||||||
|
.then(console.log);
|
Reference in New Issue
Block a user