mirror of
git://holbrook.no/eth-monitor.git
synced 2024-11-23 12:26:45 +01:00
Add man pages for import, list
This commit is contained in:
parent
5f7b23fa00
commit
8016cc7c9f
@ -24,6 +24,9 @@ logg = logging.getLogger()
|
|||||||
|
|
||||||
normalize_address = TxHexNormalizer().wallet_address
|
normalize_address = TxHexNormalizer().wallet_address
|
||||||
|
|
||||||
|
services = [
|
||||||
|
'etherscan',
|
||||||
|
]
|
||||||
|
|
||||||
argparser = argparse.ArgumentParser('master eth events monitor')
|
argparser = argparse.ArgumentParser('master eth events monitor')
|
||||||
argparser.add_argument('--api-key-file', dest='api_key_file', type=str, help='File to read API key from')
|
argparser.add_argument('--api-key-file', dest='api_key_file', type=str, help='File to read API key from')
|
||||||
@ -31,7 +34,8 @@ argparser.add_argument('--cache-dir', dest='cache_dir', type=str, help='Director
|
|||||||
argparser.add_argument('--store-tx-data', dest='store_tx_data', action='store_true', help='Include all transaction data objects by default')
|
argparser.add_argument('--store-tx-data', dest='store_tx_data', action='store_true', help='Include all transaction data objects by default')
|
||||||
argparser.add_argument('--store-block-data', dest='store_block_data', action='store_true', help='Include all block data objects by default')
|
argparser.add_argument('--store-block-data', dest='store_block_data', action='store_true', help='Include all block data objects by default')
|
||||||
argparser.add_argument('-i', '--chain-spec', dest='i', type=str, default='evm:ethereum:1', help='Chain specification string')
|
argparser.add_argument('-i', '--chain-spec', dest='i', type=str, default='evm:ethereum:1', help='Chain specification string')
|
||||||
argparser.add_argument('-f', '--address-file', dest='address_file', default=[], type=str, action='append', help='Add addresses from file')
|
argparser.add_argument('--address-file', dest='address_file', default=[], type=str, action='append', help='Add addresses from file')
|
||||||
|
argparser.add_argument('--list-services', dest='list', action='store_true', help='List all supported services')
|
||||||
argparser.add_argument('-a', '--address', default=[], type=str, action='append', help='Add address')
|
argparser.add_argument('-a', '--address', default=[], type=str, action='append', help='Add address')
|
||||||
argparser.add_argument('--socks-host', dest='socks_host', type=str, help='Conect through socks host')
|
argparser.add_argument('--socks-host', dest='socks_host', type=str, help='Conect through socks host')
|
||||||
argparser.add_argument('--socks-port', dest='socks_port', type=int, help='Conect through socks port')
|
argparser.add_argument('--socks-port', dest='socks_port', type=int, help='Conect through socks port')
|
||||||
@ -39,8 +43,18 @@ argparser.add_argument('--delay', type=float, default=0.2, help='Seconds to wait
|
|||||||
argparser.add_argument('-v', action='store_true', help='Be verbose')
|
argparser.add_argument('-v', action='store_true', help='Be verbose')
|
||||||
argparser.add_argument('-vv', action='store_true', help='Be more verbose')
|
argparser.add_argument('-vv', action='store_true', help='Be more verbose')
|
||||||
argparser.add_argument('-p', type=str, help='RPC provider')
|
argparser.add_argument('-p', type=str, help='RPC provider')
|
||||||
|
argparser.add_argument('service', nargs='?', type=str, help='Index service to import from')
|
||||||
args = argparser.parse_args(sys.argv[1:])
|
args = argparser.parse_args(sys.argv[1:])
|
||||||
|
|
||||||
|
if args.list:
|
||||||
|
for s in services:
|
||||||
|
sys.stdout.write('{}\n'.format(s))
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
if not args.service:
|
||||||
|
argparser.error('the following arguments are required: service')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
if args.vv:
|
if args.vv:
|
||||||
logg.setLevel(logging.DEBUG)
|
logg.setLevel(logging.DEBUG)
|
||||||
elif args.v:
|
elif args.v:
|
||||||
@ -140,7 +154,11 @@ def main():
|
|||||||
cache_filter,
|
cache_filter,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
importer = []
|
||||||
|
if args.service == 'etherscan':
|
||||||
importer = EtherscanImporter(rpc, api_key, filters=filters, block_callback=RuledFilter.block_callback)
|
importer = EtherscanImporter(rpc, api_key, filters=filters, block_callback=RuledFilter.block_callback)
|
||||||
|
else:
|
||||||
|
raise ValueError('invalid service: {}'.format(args.service))
|
||||||
for a in addresses:
|
for a in addresses:
|
||||||
importer.get(a)
|
importer.get(a)
|
||||||
time.sleep(args.delay)
|
time.sleep(args.delay)
|
||||||
|
@ -29,9 +29,7 @@ from eth_monitor.rules import AddressRules
|
|||||||
logging.basicConfig(level=logging.WARNING)
|
logging.basicConfig(level=logging.WARNING)
|
||||||
logg = logging.getLogger()
|
logg = logging.getLogger()
|
||||||
|
|
||||||
default_eth_provider = os.environ.get('RPC_PROVIDER')
|
default_eth_provider = os.environ.get('RPC_PROVIDER', 'http://localhost:8545')
|
||||||
if default_eth_provider == None:
|
|
||||||
default_eth_provider = os.environ.get('ETH_PROVIDER', 'http://localhost:8545')
|
|
||||||
|
|
||||||
script_dir = os.path.realpath(os.path.dirname(__file__))
|
script_dir = os.path.realpath(os.path.dirname(__file__))
|
||||||
exec_dir = os.path.realpath(os.getcwd())
|
exec_dir = os.path.realpath(os.getcwd())
|
||||||
@ -44,7 +42,7 @@ argparser.add_argument('-p', '--provider', dest='p', default=default_eth_provide
|
|||||||
argparser.add_argument('-c', type=str, help='config file')
|
argparser.add_argument('-c', type=str, help='config file')
|
||||||
argparser.add_argument('-i', '--chain-spec', dest='i', type=str, help='Chain specification string')
|
argparser.add_argument('-i', '--chain-spec', dest='i', type=str, help='Chain specification string')
|
||||||
argparser.add_argument('--seq', action='store_true', help='Use sequential rpc ids')
|
argparser.add_argument('--seq', action='store_true', help='Use sequential rpc ids')
|
||||||
argparser.add_argument('--output', default=[], action='append', type=str, help='Add output (sender) addresses to includes list')
|
argparser.add_argument('-a', '--address', dest='a', default=[], action='append', type=str, help='Add address to includes list')
|
||||||
argparser.add_argument('--filter', type=str, action='append', help='Add python module filter path')
|
argparser.add_argument('--filter', type=str, action='append', help='Add python module filter path')
|
||||||
argparser.add_argument('-v', action='store_true', help='Be verbose')
|
argparser.add_argument('-v', action='store_true', help='Be verbose')
|
||||||
argparser.add_argument('-vv', action='store_true', help='Be more verbose')
|
argparser.add_argument('-vv', action='store_true', help='Be more verbose')
|
||||||
@ -95,7 +93,7 @@ def main():
|
|||||||
|
|
||||||
idx = AddressIndex(rpc, store)
|
idx = AddressIndex(rpc, store)
|
||||||
|
|
||||||
for address in args.output:
|
for address in args.a:
|
||||||
idx.load_address_tx(address)
|
idx.load_address_tx(address)
|
||||||
|
|
||||||
OutFilter.init(store)
|
OutFilter.init(store)
|
||||||
|
23
man/eth-monitor-import.head.groff
Normal file
23
man/eth-monitor-import.head.groff
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
.TH eth-monitor-import 1
|
||||||
|
|
||||||
|
|
||||||
|
.SH NAME
|
||||||
|
eth-monitor-import \- Import transaction data from an indexing service
|
||||||
|
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.SY eth-monitor-import
|
||||||
|
[ -i \fIchain_spec\fP] [ --api-key-file \fIfile\fp ] [ --address-file \fIfile\fP ] [ -a \fIaddress\fP ... ] [ --cache-dir \fIdirectory\fP ] \fIservice\fP
|
||||||
|
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
Use an indexing service to retrieve transaction hashes for one or more addresses. Supported services may be listed using the \fB--list-services\fP option.
|
||||||
|
.P
|
||||||
|
Which addresses to retrieve data for may be defined by the \fB-a\fP \fIaddress\fP option. Alternatively, the \fB--address-file\fP \fIfile\fP option may be used, where addresses are supplied from the given file as a comma-separated list. The address matching mechanism used in transaction processing is the same as for \fBeth-monitor(1)\fP.
|
||||||
|
.P
|
||||||
|
Only block and transaction hashes are used from the indexing service. The RPC endpoint will be used to retrieve the block and transaction data.
|
||||||
|
.P
|
||||||
|
If \fB--cache-dir\fP \fIdirectory\fP is defined, data will be cached to the given path using the same caching filter as \fBeth-monitor(1)\fP. \fB--store-tx-data\fP and \fB--store-block-data-\fP define whether also transaction and block data is stored to cache, respectively.
|
||||||
|
|
||||||
|
|
||||||
|
.SS OPTIONS
|
6
man/eth-monitor-import.overrides
Normal file
6
man/eth-monitor-import.overrides
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
addressfile Load address include matching rules from file. Addresses must be given as a comma-separated list. --address-file file
|
||||||
|
storetx Store transaction data in cache for matching transactions. Requires \fB--cache-dir\fP. --store-tx-data
|
||||||
|
storeblock Store block data in cache for matching transactions. Requires \fB--cache-dir\fP. --store-block-data
|
||||||
|
list List all supported services. --list-services
|
||||||
|
sockshost Connect through the specified socks4a host (e.g. tor) --socks-host host
|
||||||
|
socksport Connect through the specified socks4a host port (e.g. tor) --socks-port port
|
3
man/eth-monitor-import.seealso.groff
Normal file
3
man/eth-monitor-import.seealso.groff
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.SH SEE ALSO
|
||||||
|
|
||||||
|
eth-monitor (1)
|
22
man/eth-monitor-list.head.groff
Normal file
22
man/eth-monitor-list.head.groff
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
.TH eth-monitor-list 1
|
||||||
|
|
||||||
|
|
||||||
|
.SH NAME
|
||||||
|
eth-monitor-list \- Query transactions cache
|
||||||
|
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.SY eth-monitor-list
|
||||||
|
[ -i \fIchain_spec\fP ] [ p \fIeth_provider\fP ] [ -a \fIaddress\fP ... ] \fIcache_dir\fP
|
||||||
|
.YS
|
||||||
|
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
List transactions stored in cache matching the given address.
|
||||||
|
.P
|
||||||
|
Any block data and/or transaction data matchin the relevant hashes returned by the query will be used to create the output. The \fB--fresh\fP option may be defined to force all block and transaction data from the RPC provider endpoint instead.
|
||||||
|
.P
|
||||||
|
For details on rendering and filtering, please refer to to \fBeth-monitor (1)\fP man page.
|
||||||
|
|
||||||
|
|
||||||
|
.SS OPTIONS
|
4
man/eth-monitor-list.overrides
Normal file
4
man/eth-monitor-list.overrides
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
fresh Only use hashes from cache, and retrieve all block and transaction data from RPC endpoint. --fresh
|
||||||
|
address Add an address of interest to match any role. Complements \fB--address-file\fP. --address address
|
||||||
|
filter Add code execution filter to all matching transactions. The argument must be a python module path. Several filters may be added by supplying the option multiple times. Filters will be executed in the order the options are given. See \fBDEFINING FILTERS\fP section of \fBeth-monitor (1)\fP for more details. --filter module
|
||||||
|
renderer Add output renderer filter to all matching transactions. The argument must be a python module path. Several renderers may be added by supplying the option multiple times. See \fBRENDERERS\fP section of \fBeth-monitor (1)\fP for more details. --renderer module
|
3
man/eth-monitor-list.seealso.groff
Normal file
3
man/eth-monitor-list.seealso.groff
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.SH SEE ALSO
|
||||||
|
|
||||||
|
eth-monitor (1)
|
@ -5,15 +5,14 @@ eth-monitor \- Cache, index and monitor transactions with an EVM node rpc
|
|||||||
|
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.SY eth-monitor
|
.SY eth-monitor
|
||||||
[ --skip-history ] [ --single ] [ p \fIeth_provider\fP ] [ --includes-file \fIfile\fP ]
|
[ --skip-history ] [ --single ] [ p \fIeth_provider\fP ] [ --includes-file \fIfile\fP ] [ -i chain_spec ]
|
||||||
.YS
|
.YS
|
||||||
.SY eth-monitor
|
.SY eth-monitor
|
||||||
[ --skip-history ] [ --single ] [ p \fIeth_provider\fP ] [ --excludes-file \fIfile\fP ] [ --include-default ]
|
[ --skip-history ] [ --single ] [ p \fIeth_provider\fP ] [ --excludes-file \fIfile\fP ] [ --include-default ] [ -i chain_spec ]
|
||||||
.YS
|
.YS
|
||||||
|
|
||||||
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.P
|
|
||||||
The \fBeth-monitor\fP has fulfills three distinct but related functions:
|
The \fBeth-monitor\fP has fulfills three distinct but related functions:
|
||||||
.IP
|
.IP
|
||||||
1. A customizable view of on transactions of interest.
|
1. A customizable view of on transactions of interest.
|
||||||
|
@ -11,3 +11,5 @@ includesfile Load address include matching rules from file. See \fBMATCHING ADDR
|
|||||||
excludesfile Load address exclude matching rules from file. See \fBMATCHING ADDRESSES\fP. --excludes-file file
|
excludesfile Load address exclude matching rules from file. See \fBMATCHING ADDRESSES\fP. --excludes-file file
|
||||||
storetx Store transaction data in cache for matching transactions. Requires \fB--cache-dir\fP. --store-tx-data
|
storetx Store transaction data in cache for matching transactions. Requires \fB--cache-dir\fP. --store-tx-data
|
||||||
storeblock Store block data in cache for matching transactions. Requires \fB--cache-dir\fP. --store-block-data
|
storeblock Store block data in cache for matching transactions. Requires \fB--cache-dir\fP. --store-block-data
|
||||||
|
renderer Add output renderer filter to all matched transactions. The argument must be a python module path. Several renderers may be added by supplying the option multiple times. See \fBRENDERERS\fP section of \fBeth-monitor (1)\fP for more details. --renderer module
|
||||||
|
filter Add code execution filter to all matched transactions. The argument must be a python module path. Several filters may be added by supplying the option multiple times. Filters will be executed in the order the options are given. See \fBDEFINING FILTERS\fP section of \fBeth-monitor (1)\fP for more details. --filter module
|
||||||
|
Loading…
Reference in New Issue
Block a user