eths-git
Version:
**eths-git-remote** is a decentralized Git solution designed to manage repositories on-chain. It provides two main components:
29 lines (28 loc) • 1.1 kB
JavaScript
import { existsSync, readFileSync, writeFileSync, mkdirSync, readdirSync } from 'fs';
import { homedir } from 'os';
import { join } from 'path';
const WALLET_ROOT = join(homedir(), '.eths', 'wallets');
function ensureWalletDir() {
if (!existsSync(WALLET_ROOT)) {
mkdirSync(WALLET_ROOT, { recursive: true, mode: 0o700 });
}
}
export function saveEncryptedWallet(wallet) {
ensureWalletDir();
const filePath = join(WALLET_ROOT, `${wallet.address}.json`);
writeFileSync(filePath, JSON.stringify(wallet, null, 2), { mode: 0o600 });
}
export function loadEncryptedWallet(address) {
const filePath = join(WALLET_ROOT, `${address}.json`);
if (!existsSync(filePath)) {
throw new Error(`Wallet ${address} not found. Create one with 'eths wallet create'`);
}
return JSON.parse(readFileSync(filePath, 'utf8'));
}
export function listWalletAddresses() {
if (!existsSync(WALLET_ROOT))
return [];
return readdirSync(WALLET_ROOT)
.filter(filename => filename.endsWith('.json'))
.map(filename => filename.replace('.json', ''));
}