0

Hey here is my little script:

for (let i = 0; i < test.length; i++) {
        if(publicKey.startsWith(test[i])) {
            console.log(seed + " =[HIT]= " + publicKey)
            fs.appendFile(publicKey.toString() + '.txt', mnemonic.toString(), function (err) {
                if (err) throw err;
                console.log('Finished!');
              });
              exit();

        } else {
            console.log(seed + " =[FAILED]= " + publicKey)
        }
    }

It does create my file but without any text? I tried to put in random text, but it did not work either. Is there a way to fix this?

0

1 Answer 1

2

for is synchronous, but fs.writeFile isn't. You are immediately launching several fs.writeFile at a time, all the commands are over even before your hard disk woke up and realised what happened.

Either use the synchronous version fs.writeFileSync(...); (not recommended), or use the Promise version and await it :

import * as fs from 'node:fs/promises';

for (let t of test) {
  if (publicKey.startsWith(t)) {
    console.log(seed + " =[HIT]= " + publicKey);
    await fs.appendFile(publicKey.toString() + '.txt', mnemonic.toString());
  } else {
    console.log(seed + " =[FAILED]= " + publicKey)
  }
}

console.log('Finished!');
process.exit();
Sign up to request clarification or add additional context in comments.

2 Comments

May need break if the original intention was to write the first, and only the first, matching public key.
It worked thank you sir!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.