chjj / termcoin Goto Github PK
View Code? Open in Web Editor NEWA bitcoin wallet and blockchain explorer for your terminal.
License: MIT License
A bitcoin wallet and blockchain explorer for your terminal.
License: MIT License
Upon initialization of a new wallet, the user should be prompted for an encryption passphrase.
Discussed here: https://news.ycombinator.com/item?id=7080339
Choosing a label with a space causes bugs.
For instance the QR code generated actually contains the balance.
I suggest not parsing the displayed ui or at least to use a more robust parsing.
First off: awesome project!
I couldn't help but notice that some functions have a lot of nested callbacks. Maybe it would be an idea to abstract the nesting out via an async library like async. This way you could separate the logic more and use optimizations like parallelizing batches of queries to bitcoind.
I got this working on a remote server, so my node install must be broken. Thanks, and sorry for the false report!
The NPM package seems to be failing when installing. It looks like package.json
isn't in the archive. I cleared my NPM cache and did everything that I could think of to test that this isn't only on my environment, so hopefully I'm not posting something useless!
Works great for awhile, then when I come back I see this error:
Error: Not found.
at /home/runvnc/coinado/node_modules/termcoin/node_modules/coined/node_modules/tiny/lib/tiny.json.js:419:23
at /home/runvnc/coinado/node_modules/termcoin/node_modules/coined/node_modules/tiny/lib/tiny.json.js:402:12
at Object.wrapper [as oncomplete] (fs.js:459:17)
If I delete the db from ~/.termcoin, it stops giving that error. Otherwise pm2 just keeps trying to restart and it keeps giving that error.
So, I am loading termcoin as a module and running startServer. Is it possible I am doing something wrong, or is this a known error? I think this results from calling getBlock. But basically I call startServer and then use listReceivedBy and createAddress. I need a light wallet, and thought this was a good option since its Node. Not sure if there is a way to make this work, maybe I need to just call it as an external cli since that's what it is, or if there is a new issue from protocol changes, or if I should just wrap another external wallet.
Appreciate any comment you have, thanks.
Generating interest with a proof of stake coin causes termcoin to fail
I'm using termcoin on an old P2 266 box, where it takes 6 minutes and 5 seconds to have a freshly loaded Litecoin daemon instance listening on the RPC port.
After launching termcoin it terminates after 30 seconds with the following error:
bin/termcoin:2734
if (err) throw err;
^
Error: connect ECONNREFUSED
at errnoException (net.js:904:11)
at Object.afterConnect as oncomplete
As far as I can see there's a hardcoded limit of 30 reconnect attempts prior terminating:
if (err.code === 'ECONNREFUSED' || err.message === 'socket hang up') {
if (++attempts === 30) {
return callback(err);
}
I think that it would be handy if there's an option to increase that limit from the commandline for users on slower boxes like. :)
Thank you!
Could you remove the bind to "q" for closing the program when typing in a password? its impossible to encrypt the wallet with a password containing "q"
I'm trying to connect to a mining pool, but termcoin is throwing an error:
$ termcoin http://user.worker:[email protected]:8332
/usr/lib/node_modules/termcoin/bin/termcoin:2712
if (err) throw err;
^
Error: Unsupported method 'getbalance'
at /usr/lib/node_modules/termcoin/bin/termcoin:2546:15
at IncomingMessage.end (/usr/lib/node_modules/termcoin/bin/termcoin:2681:7)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
Is this a problem with the pool, or with the client, or with my configuration?
When running two instances of termcoin simultaneously, on the same machine, some unexpected state management bugs can occur.
As currently installed, running termcoin via ssh in iTerm does not allow for copying the addresses to the clipboard.
The text does not make it through when using "Copy Address" in the interface, and there is no obvious way to highlight the raw text for local copying.
The logs panel is empty for me on OpenBSD. Tested with node 0.10.24 and 0.10.25. I have a debug.log file with lots of data in $HOME/.bitcoin which is 600 and owned by the same user running termcoin.
Debugging suggestions?
Hi,
First of all, thanks for the great wallet!
With that said, I've got the following problems:
When I navigate to 'send' and hit Ctrl-E, I get a list of potential recipients, though when I navigate to 'From' say, Ctrl+E no longer works. Is this expected behaviour?
Running termcoin -c litecoin worked well the first time I ran it, though after encrypting my wallet, quitting and restarting termcoin, I get the following:
% termcoin -c litecoin
Starting new server on port 9332...
/usr/lib/node_modules/termcoin/bin/termcoin:22
if (err) throw err;
^Error: Loading block index...
at /usr/lib/node_modules/termcoin/lib/backend/bitcoind.js:563:15
at IncomingMessage.end (/usr/lib/node_modules/termcoin/lib/utils.js:216:7)
at emitNone (events.js:85:20)
at IncomingMessage.emit (events.js:179:7)
at endReadableNT (_stream_readable.js:906:12)
at nextTickCallbackWith2Args (node.js:474:9)
at process._tickCallback (node.js:388:17)
Waiting a few seconds and running termcoin again then yields the following:
% termcoin -c litecoin
/usr/lib/node_modules/termcoin/bin/termcoin:22
if (err) throw err;
^Error: walletpassphrase "passphrase" timeout
Stores the wallet decryption key in memory for 'timeout' seconds.
This is needed prior to performing transactions related to private keys such as sending litecoinsArguments:
- "passphrase" (string, required) The wallet passphrase
- timeout (numeric, required) The time to keep the decryption key in seconds.
Note:
Issuing the walletpassphrase command while the wallet is already unlocked will set a new unlock
time that overrides the old one.Examples:
unlock the wallet for 60 seconds
litecoin-cli walletpassphrase "my pass phrase" 60
Lock the wallet again (before 60 seconds)
litecoin-cli walletlock
As json rpc call
curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "walletpassphrase", "params": ["my pass phrase", 60] }' -H 'content-type: text/plain;' http://127.0.0.1:9332/
at next (/usr/lib/node_modules/termcoin/lib/utils.js:118:14)
at /usr/lib/node_modules/termcoin/lib/backend/bitcoind.js:272:14
at /usr/lib/node_modules/termcoin/lib/backend/bitcoind.js:565:16
at IncomingMessage.end (/usr/lib/node_modules/termcoin/lib/utils.js:216:7)
at emitNone (events.js:85:20)
at IncomingMessage.emit (events.js:179:7)
at endReadableNT (_stream_readable.js:906:12)
at nextTickCallbackWith2Args (node.js:474:9)
at process._tickCallback (node.js:388:17)
The same happens with dogecoin.
I have tried running 'termcoin -c litecoin' with an unencrypted wallet, and I get the first of the above two errors, but running it a second time yields no issues.
I'm running termcoin 0.0.8 as installed by npm.
Thanks in advance for any comments!
Extending #14, it seems as if running two instances allowed me to encrypt two of my keys using a different passphrase.
Ran install from here: https://cryptocointalk.com/topic/3351-ekrona-linux-terminal-wallet-termcoin/
But when I tried to run the ./termcoin url.... I got an errorin module.js:
module.js:333
throw err;
^
Error: Cannot find module 'blessed'
at Function.Module._resolveFilename (module.js:331:15)
at Function.Module._load (module.js:273:25)
at Module.require (module.js:357:17)
at require (module.js:373:17)
at Object. (/home/scott/termcoin/bin/termcoin:28:15)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)
at Function.Module._load (module.js:305:12)
at Function.Module.runMain (module.js:490:10)
I was originally trying to figure out how to interface with bitcoind, then realized it may not be necessary to download 36GB to my test and dev servers, then found bitcoinjs-lib and then bcoin, then coined. Then I tried to figure out how to read a list of transactions received in the db coined uses, and found termcoin.
The way you have this set up I was able to import it. What I am hoping I can do is use things like termcoin.bitcoin.listReceivedByAddress etc. in my Node application, which would solve both my lightweight wallet and transaction query problems at the same time without requiring an external dependency.
Anyway I may just be fantasizing since this is a cli application. But thank you for making it, it is at least a good starting point. Can I use it as a library?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.