-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCreateAccount.js
40 lines (33 loc) · 1.23 KB
/
CreateAccount.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const algosdk = require('algosdk');
const fs = require('fs');
// Function to wait for user input
function keypress() {
return new Promise((resolve) => {
process.stdin.once('data', () => {
resolve();
});
});
}
async function createAccountAndExport() {
// Create an account
const generatedAccount = algosdk.generateAccount();
const passphrase = algosdk.secretKeyToMnemonic(generatedAccount.sk);
console.log(`My address: ${generatedAccount.addr}`);
console.log(`My passphrase: ${passphrase}`);
const dispenser_url = `https://dispenser.testnet.aws.algodev.network/?account=${generatedAccount.addr}`;
console.log(`Fund the wallet via Algorand Dispenser: ${dispenser_url}`);
console.log("Press any key when the account is funded");
await keypress();
// Convert the private key to base64 string
const privateKeyBase64 = Buffer.from(generatedAccount.sk).toString('base64');
// Export the account details as JSON
const accountData = {
address: generatedAccount.addr,
passphrase: passphrase,
privateKey: privateKeyBase64,
};
fs.writeFileSync('account.json', JSON.stringify(accountData, null, 2));
console.log("Account details exported to account.json");
process.exit();
}
createAccountAndExport();