here a new subcommand is added: `address`.
the idea here is to provide an example of how address-related
funcionality from `pkg/monero` can be used.
at the moment, the only available action is "generate", which
instantiates a new seed based on `crypto/rand` and then displaying on
stdout the result
WARNING: DO NOT USE THIS FOR ANYTHING MEANINGFUL.
you've been advised.
example:
$ monero address generate
Mnemonic: dawn repent towel taxi
cucumber muzzle romance awesome
losing yeti dogs biplane
foyer hotel tattoo dilute
gearbox later afloat purged
software ashtray cell dangerous
biplane
Primary Address: 49MYaXwy8K177bw9i1bBDvPuM...
Private Spend Key: 455f1c286ff8db620e61ca6c6...
Private View Key: b5d26a403c6cec29c3ecc8d2f...
Public Spend Key: cc06a0f6e6c6b0248d5e2c3fd...
Public View Key: bcb8d3dc372efb9071c120b72...
(output truncated to fit the commit message).
Signed-off-by: Ciro S. Costa <utxobr@protonmail.com>
here i add `pkg/zmq`, a package aimed at providing one with the ability
of subscribing to zmq topics that the monero daemon published messages
to.
as exaplined under [1], there are four topics that one can subscribe to:
- json-minimal-txpool_add
- json-full-txpool_add
- json-minimal-chain_main
- json-full-chain_main
in the implementation provided here, one goes about listening to these
by:
1. creating a client aiming at a topic
2. telling the client to listen
3. consuming typed objects from a "stream" object
e.g.:
client := zmq.NewClient(endpoint, zmq.TopicMinimalTxPoolAdd)
defer client.Close()
stream, _ := client.Listen(ctx)
for {
select {
case err := <-stream.ErrC:
panic(err)
case tx := <-stream.MinimalTxPoolAddC:
fmt.Println(tx)
}
}
CLI users can also make use of it via `monero daemon zmq`:
$ monero daemon zmq \
--topic json-minimal-chain_main \
--endpoint tcp://127.0.0.1:18085
[1]: https://github.com/monero-project/monero/blob/master/docs/ZMQ.md
Signed-off-by: Ciro S. Costa <utxobr@protonmail.com>
- update get-height's description
- update some fields to prefer uint64 rather than `int`
all those fields would never take negative values and should be
able to grow quite a lot
- switch commands from display to humanize
`humanize` gives us some pretty handy human readable
conversions, so let's just go with it rather than rolling our
own
- add get-version command
- prettify get-transaction pool
example out (hash reduced in size):
AGE HASH FEE (µɱ) FEE (µɱ per-kB) SIZE in/out
1 minute ago 1a053e4058839b21c4 9 6.4 1.5 kB 1/2
1 minute ago fb61680a1584ca1ec3 9 6.4 1.5 kB 1/2
1 minute ago a58de0d2747cdd6a5d 12 6.4 2.0 kB 2/2
1 minute ago c54f4b33ed81335f78 308 160.6 2.0 kB 2/2
57 seconds ago ab210c55bd9c3efe09 12 6.4 2.0 kB 2/2
55 seconds ago 88df3311e19b1280b5 9 6.4 1.5 kB 1/2
51 seconds ago a3aa674ed3d4eb56c6 127 32.5 4.0 kB 6/2
51 seconds ago e896abe686d2f816fc 9 6.4 1.5 kB 1/2
31 seconds ago eb6ea6662ce754d025 9 6.4 1.5 kB 1/2
31 seconds ago 592204223e607cc5d9 9 6.4 1.5 kB 1/2
24 seconds ago ba8d52f90fd45dd32d 12 6.4 2.0 kB 2/2
24 seconds ago 792e68ded7805037c9 12 6.4 2.0 kB 2/2
- move response types to a single file
- rework pretty-printing of txn-based cmds
Signed-off-by: Ciro S. Costa <utxobr@protonmail.com>
- using `cobra` for sake of better organization when it comes to command
hierarchy
- splitting `rpc` into `daemon` and `wallet` so we can start thinking of
monero-wallet-rpc support
Signed-off-by: Ciro S. Costa <utxobr@protonmail.com>
- there's no reason why we should be exporting those method names, so
let's unexport them
- with a common factory for creating a deadlined context and client, we
have to care less about those details inside the commands themselves
Signed-off-by: Ciro S. Costa <utxobr@protonmail.com>
well, that's not really what the library should be about, so, no reason
to have it here.
see https://github.com/cirocosta/monero-p2p-crawler
Signed-off-by: Ciro S. Costa <utxobr@protonmail.com>
e.g.:
go run ./cmd/geoip/main.go --file=db.mmdb --addr=1.1.1.1
Continent: Oceania
Country: Australia
City:
Coordinates: (143.210400,-33.494000)
Signed-off-by: Ciro S. Costa <utxobr@protonmail.com>