Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
"dev": "ts-node-dev src/index.ts",
"build": "rimraf ./dist && tsc",
"dev:watch": "tsc -w",
"start": "yarn run build && node dist/index.js"
"start": "yarn run build && node dist/index.js",
"generate": "ts-node ./scripts/generateWallet.ts"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ts-node is not being used in the repo. rather ts-node-dev is being used. Change the code so that only one will be used. Whichever is optimized.

},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@permaweb/aoconnect": "^0.0.53",
"ardrive-core-js": "^2.0.6",
"axios": "^1.6.7",
"dotenv": "^16.4.1",
"express": "^4.18.2",
Expand Down
55 changes: 55 additions & 0 deletions scripts/generateWallet.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
const Arweave = require('arweave');
const fs = require('fs').promises;
const { WalletDAO } = require('ardrive-core-js');

const CLI_APP_NAME = '0rbit-Node-CLI';
const CLI_APP_VERSION = '1.0.0';

const arweave = Arweave.init({
host: '127.0.0.1',
port: 1984,
protocol: 'http'
});

const cliWalletDao = new WalletDAO(arweave, CLI_APP_NAME, CLI_APP_VERSION);

async function generateWallet() {
try {
const key = await arweave.wallets.generate();
const address = await arweave.wallets.jwkToAddress(key);

await fs.writeFile('wallet.json', JSON.stringify(key, null, 2));

return { key, address };
} catch (error) {
console.error('Error generating wallet:', error);
throw error;
}
}

async function generateSeedPhrase() {
try {
const seedPhrase = await cliWalletDao.generateSeedPhrase();
return { seedPhrase };
} catch (error) {
console.error('Error generating seed phrase:', error);
throw error;
}
}

async function generate() {
console.log('Generating Wallet...');
const { key, address } = await generateWallet();
console.log('\n__________ Wallet Details __________\n');
console.log('Private Key (JWK):', JSON.stringify(key, null, 2));
console.log('Public Address:', address);

console.log('\nGenerating Seed Phrase...');
const { seedPhrase } = await generateSeedPhrase();
console.log('\n__________ Seed Phrase __________\n');
console.log(seedPhrase);

console.log('\x1b[31m%s\x1b[0m', "\nWARNING: Don't share this private key or seed phrase with anyone!\n___________________________________");
}

generate();
Loading