From f1f630eec208ab0746c00eaa2c554657a16573b0 Mon Sep 17 00:00:00 2001 From: liu9293 Date: Mon, 12 Dec 2022 21:45:45 +0800 Subject: [PATCH] add pkg git3 --- package.json | 5 +- src/git3/index.js | 44 ++++++++--- src/wallet/generateWallet.ts | 0 src/wallet/importWallet.ts | 0 yarn.lock | 138 +++++++++++++++++++++++++++++++++++ 5 files changed, 176 insertions(+), 11 deletions(-) delete mode 100644 src/wallet/generateWallet.ts delete mode 100644 src/wallet/importWallet.ts diff --git a/package.json b/package.json index 5959512..416b27c 100644 --- a/package.json +++ b/package.json @@ -19,11 +19,12 @@ }, "license": "MIT", "dependencies": { - "buffer-split": "^1.0.0", "bip39": "^3.0.4", + "buffer-split": "^1.0.0", "colors-cli": "^1.0.28", "commander": "^9.4.1", "debug": "^4.3.4", + "esbuild": "^0.16.4", "eth-ens-namehash": "^2.0.8", "ethers": "^5.7.2", "git-config-path": "^2.0.0", @@ -40,6 +41,8 @@ "install-mac": "yarn pkg && cp ./bin/git-remote-git3-macos-x64 /usr/local/bin/git-remote-git3", "install-mac-arm": "yarn pkg && cp ./bin/git-remote-git3-macos-arm64 /usr/local/bin/git-remote-git3", "pkg": "yarn run build && pkg .", + "build:git3": "esbuild ./src/git3/index.js --bundle --platform=node --target=es6 --outfile=dist/git3.js", + "pkg:git3": "yarn build:git3 && pkg dist/git3.js --output bin/git3 && sudo cp bin/git3 /usr/local/bin/git3", "clean": "rm -rf ./dist ./bin" }, "devDependencies": { diff --git a/src/git3/index.js b/src/git3/index.js index e425f3f..a2c1100 100644 --- a/src/git3/index.js +++ b/src/git3/index.js @@ -1,8 +1,8 @@ -import { mkdirSync, readdirSync, readFileSync, writeFileSync, rmSync, createWriteStream } from 'fs' +import { mkdirSync, readdirSync, readFileSync, writeFileSync, rmSync, existsSync } from 'fs' import { ethers } from 'ethers' -import { Command, Option } from 'commander' -import inquirer from 'inquirer' +import { Command } from 'commander' import bip39 from 'bip39' +import inquirer from 'inquirer' import parse from 'parse-git-config' import { importActions, generateActions } from './actions.js' const program = new Command() @@ -43,20 +43,36 @@ program.command('generate') program.command('list', { isDefault: true }) .alias('ls') .description('list all wallets in user folder ~/.git3/keys') - .action(() => { + .option('-r, --raw', 'output raw wallet data with pravate key / mnemonic') + .action(params => { + const keyPath = process.env.HOME + "/.git3/keys" mkdirSync(keyPath, { recursive: true }) const wallets = readdirSync(keyPath) if (wallets.length === 0) { - console.log('No wallet found, you can generate one with `git3 generate`') + console.log('No wallet found, you can generate one use ') } wallets.forEach(file => { const content = readFileSync(`${keyPath}/${file}`).toString() + + + if (params.raw) { + console.log(`[${file}]`) + console.log(` ${content.split('\n')[0]} - ${content.split('\n')[1]}`) + console.log('\t') + return + } + console.log(`[${file}]`) - console.log(` ${content.split('\n')[0]} - ${content.split('\n')[1]}`) - console.log('\n') + const [walletType, key] = content.split('\n') + const etherWallet = walletType === 'privateKey' + ? new ethers.Wallet(key) + : ethers.Wallet.fromMnemonic(key) + const address = etherWallet.address + console.log(`address: ${address}`) + console.log('\t') }) }) @@ -126,9 +142,9 @@ program.command('info') etherWallet.getBalance() .then(balance => { - console.log(`[wallet] ${wallet}`) - console.log(` address: ${address}`) - console.log(` balance: ${ethers.utils.formatUnits(balance)} eth`) + console.log(`wallet: ${wallet}`) + console.log(`address: ${address}`) + console.log(`balance: ${ethers.utils.formatUnits(balance)} eth`) }) .catch(err => { console.error(err) @@ -145,6 +161,14 @@ program.command('set-wallet') const currentConfig = parse.sync() const existingRemote = currentConfig[`remote "${git3}"`] + const keyPath = process.env.HOME + "/.git3/keys" + mkdirSync(keyPath, { recursive: true }) + + if(!existsSync(`${keyPath}/${wallet}`)) { + console.error(`wallet ${wallet} not found, use to generate one`) + return + } + if (existingRemote) { const newConfig = { ...currentConfig, diff --git a/src/wallet/generateWallet.ts b/src/wallet/generateWallet.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/wallet/importWallet.ts b/src/wallet/importWallet.ts deleted file mode 100644 index e69de29..0000000 diff --git a/yarn.lock b/yarn.lock index 23aeef6..8b952e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,116 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@esbuild/android-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.4.tgz#4b31b9e3da2e4c12a8170bd682f713c775f68ab1" + integrity sha512-VPuTzXFm/m2fcGfN6CiwZTlLzxrKsWbPkG7ArRFpuxyaHUm/XFHQPD4xNwZT6uUmpIHhnSjcaCmcla8COzmZ5Q== + +"@esbuild/android-arm@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.4.tgz#057d3e8b0ee41ff59386c33ba6dcf20f4bedd1f7" + integrity sha512-rZzb7r22m20S1S7ufIc6DC6W659yxoOrl7sKP1nCYhuvUlnCFHVSbATG4keGUtV8rDz11sRRDbWkvQZpzPaHiw== + +"@esbuild/android-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.4.tgz#62ccab8ac1d3e6ef1df3fa2e1974bc2b8528d74a" + integrity sha512-MW+B2O++BkcOfMWmuHXB15/l1i7wXhJFqbJhp82IBOais8RBEQv2vQz/jHrDEHaY2X0QY7Wfw86SBL2PbVOr0g== + +"@esbuild/darwin-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.4.tgz#c19a6489d626c36fc611c85ccd8a3333c1f2a930" + integrity sha512-a28X1O//aOfxwJVZVs7ZfM8Tyih2Za4nKJrBwW5Wm4yKsnwBy9aiS/xwpxiiTRttw3EaTg4Srerhcm6z0bu9Wg== + +"@esbuild/darwin-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.4.tgz#b726bbc84a1e277f6ec2509d10b8ee03f242b776" + integrity sha512-e3doCr6Ecfwd7VzlaQqEPrnbvvPjE9uoTpxG5pyLzr2rI2NMjDHmvY1E5EO81O/e9TUOLLkXA5m6T8lfjK9yAA== + +"@esbuild/freebsd-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.4.tgz#364568e6ca2901297f247de0681c9b14bbe658c8" + integrity sha512-Oup3G/QxBgvvqnXWrBed7xxkFNwAwJVHZcklWyQt7YCAL5bfUkaa6FVWnR78rNQiM8MqqLiT6ZTZSdUFuVIg1w== + +"@esbuild/freebsd-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.4.tgz#44701ba4a5497ba64eec0a6c9e221d8f46a25e72" + integrity sha512-vAP+eYOxlN/Bpo/TZmzEQapNS8W1njECrqkTpNgvXskkkJC2AwOXwZWai/Kc2vEFZUXQttx6UJbj9grqjD/+9Q== + +"@esbuild/linux-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.4.tgz#b58fb418ec9ac714d8dbb38c787ff2441eb1d9db" + integrity sha512-2zXoBhv4r5pZiyjBKrOdFP4CXOChxXiYD50LRUU+65DkdS5niPFHbboKZd/c81l0ezpw7AQnHeoCy5hFrzzs4g== + +"@esbuild/linux-arm@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.4.tgz#b37f15ecddb53eeea466e5960e31a58f33e0e87e" + integrity sha512-A47ZmtpIPyERxkSvIv+zLd6kNIOtJH03XA0Hy7jaceRDdQaQVGSDt4mZqpWqJYgDk9rg96aglbF6kCRvPGDSUA== + +"@esbuild/linux-ia32@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.4.tgz#117e32a9680b5deac184ebee122f8575369fad1b" + integrity sha512-uxdSrpe9wFhz4yBwt2kl2TxS/NWEINYBUFIxQtaEVtglm1eECvsj1vEKI0KX2k2wCe17zDdQ3v+jVxfwVfvvjw== + +"@esbuild/linux-loong64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.4.tgz#dd504fb83c280752d4b485d9acb3cf391cb7bf5b" + integrity sha512-peDrrUuxbZ9Jw+DwLCh/9xmZAk0p0K1iY5d2IcwmnN+B87xw7kujOkig6ZRcZqgrXgeRGurRHn0ENMAjjD5DEg== + +"@esbuild/linux-mips64el@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.4.tgz#9ab77e31cf3be1e35572afff94b51df8149d15bd" + integrity sha512-sD9EEUoGtVhFjjsauWjflZklTNr57KdQ6xfloO4yH1u7vNQlOfAlhEzbyBKfgbJlW7rwXYBdl5/NcZ+Mg2XhQA== + +"@esbuild/linux-ppc64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.4.tgz#69d56c2a960808bee1c7b9b84a115220ec9ce05c" + integrity sha512-X1HSqHUX9D+d0l6/nIh4ZZJ94eQky8d8z6yxAptpZE3FxCWYWvTDd9X9ST84MGZEJx04VYUD/AGgciddwO0b8g== + +"@esbuild/linux-riscv64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.4.tgz#9fc23583f4a1508a8d352bd376340e42217e8a90" + integrity sha512-97ANpzyNp0GTXCt6SRdIx1ngwncpkV/z453ZuxbnBROCJ5p/55UjhbaG23UdHj88fGWLKPFtMoU4CBacz4j9FA== + +"@esbuild/linux-s390x@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.4.tgz#4cae1f70ac2943f076dd130c3c80d28f57bf75d1" + integrity sha512-pUvPQLPmbEeJRPjP0DYTC1vjHyhrnCklQmCGYbipkep+oyfTn7GTBJXoPodR7ZS5upmEyc8lzAkn2o29wD786A== + +"@esbuild/linux-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.4.tgz#fdf494de07cda23a2dc4b71ff1e0848e4ee6539c" + integrity sha512-N55Q0mJs3Sl8+utPRPBrL6NLYZKBCLLx0bme/+RbjvMforTGGzFvsRl4xLTZMUBFC1poDzBEPTEu5nxizQ9Nlw== + +"@esbuild/netbsd-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.4.tgz#b59ecb49087119c575c0f64d7e66001d52799e24" + integrity sha512-LHSJLit8jCObEQNYkgsDYBh2JrJT53oJO2HVdkSYLa6+zuLJh0lAr06brXIkljrlI+N7NNW1IAXGn/6IZPi3YQ== + +"@esbuild/openbsd-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.4.tgz#c51e36db875948b7b11d08bafa355605a1aa289c" + integrity sha512-nLgdc6tWEhcCFg/WVFaUxHcPK3AP/bh+KEwKtl69Ay5IBqUwKDaq/6Xk0E+fh/FGjnLwqFSsarsbPHeKM8t8Sw== + +"@esbuild/sunos-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.4.tgz#0b50e941cd44f069e9f2573321aec984244ec228" + integrity sha512-08SluG24GjPO3tXKk95/85n9kpyZtXCVwURR2i4myhrOfi3jspClV0xQQ0W0PYWHioJj+LejFMt41q+PG3mlAQ== + +"@esbuild/win32-arm64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.4.tgz#d1c93b20f17355ab2221cd18e13ae2f1b68013e3" + integrity sha512-yYiRDQcqLYQSvNQcBKN7XogbrSvBE45FEQdH8fuXPl7cngzkCvpsG2H9Uey39IjQ6gqqc+Q4VXYHsQcKW0OMjQ== + +"@esbuild/win32-ia32@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.4.tgz#df5910e76660e0acbbdceb8d4ae6bf1efeade6ae" + integrity sha512-5rabnGIqexekYkh9zXG5waotq8mrdlRoBqAktjx2W3kb0zsI83mdCwrcAeKYirnUaTGztR5TxXcXmQrEzny83w== + +"@esbuild/win32-x64@0.16.4": + version "0.16.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.4.tgz#6ec594468610c176933da1387c609558371d37e0" + integrity sha512-sN/I8FMPtmtT2Yw+Dly8Ur5vQ5a/RmC8hW7jO9PtPSQUPkowxWpcUZnqOggU7VwyT3Xkj6vcXWd3V/qTXwultQ== + "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" @@ -644,6 +754,34 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +esbuild@^0.16.4: + version "0.16.4" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.4.tgz#06c86298d233386f5e41bcc14d36086daf3f40bd" + integrity sha512-qQrPMQpPTWf8jHugLWHoGqZjApyx3OEm76dlTXobHwh/EBbavbRdjXdYi/GWr43GyN0sfpap14GPkb05NH3ROA== + optionalDependencies: + "@esbuild/android-arm" "0.16.4" + "@esbuild/android-arm64" "0.16.4" + "@esbuild/android-x64" "0.16.4" + "@esbuild/darwin-arm64" "0.16.4" + "@esbuild/darwin-x64" "0.16.4" + "@esbuild/freebsd-arm64" "0.16.4" + "@esbuild/freebsd-x64" "0.16.4" + "@esbuild/linux-arm" "0.16.4" + "@esbuild/linux-arm64" "0.16.4" + "@esbuild/linux-ia32" "0.16.4" + "@esbuild/linux-loong64" "0.16.4" + "@esbuild/linux-mips64el" "0.16.4" + "@esbuild/linux-ppc64" "0.16.4" + "@esbuild/linux-riscv64" "0.16.4" + "@esbuild/linux-s390x" "0.16.4" + "@esbuild/linux-x64" "0.16.4" + "@esbuild/netbsd-x64" "0.16.4" + "@esbuild/openbsd-x64" "0.16.4" + "@esbuild/sunos-x64" "0.16.4" + "@esbuild/win32-arm64" "0.16.4" + "@esbuild/win32-ia32" "0.16.4" + "@esbuild/win32-x64" "0.16.4" + escape-string-regexp@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"