No project description provided
Project description
Legions
Ethereum Node Security Toolkit
Handy toolkit for (security) researchers poking around Ethereum nodes and contracts, now with a slick command-line interface, with auto complete commands and history.
Other functionalities:
- Conversions (toWei, fromWei, keccak, etc)
- Query for balance, code, storage of smart contracts, ecrecover
- etc
This package is extremely beta
Installation
Require Python 3.6
.
git clone https://github.com/shayanb/Legions
cd Legions
pip install .
or
pip install legions
Usage
If installed locally:
python legions/main.py
or if installed globally:
legions
Functions
Command | [Subcommand] | Description |
---|---|---|
sethost | Setup the Web3 connection (RPC, IPC, HTTP) (default to infura mainnet) | |
getnodeinfo | Information about the connected node (run setnode before this) |
|
conversions | Conversions possible to do with Web3 | |
fromWei | Converts the input to ether (to currency default to ether) |
|
toWei | Converts the input to Wei (from currency default to ether) |
|
keccak | keccak hash of the input | |
toBytes | Converts the input to hex representation of its Bytes | |
toChecksumAddress | Converts the input to Checksum Address | |
toHex | Converts the input text to Hex | |
fromWei | Converts the input to ether (or specified currency) | |
query | Query Blockchain (Storage, balance, etc) | |
balance | Get Balance of an account | |
block | Get block details by block number | |
code | Get code of the smart contract at address | |
ecrecover | Get address associated with the signature (ecrecover) BUGGY |
|
storage | Read the storage of a contract (count default = 10) |
|
command | Manual RPC method with args | |
investigate | Investigate further in the node (e.g. check if accounts are unlocked, etc) | |
accounts | Investigate accounts (e.g. check if accounts are unlocked, etc) | |
admin | Investigate accounts (e.g. functionalities under the admin_ namespace) | |
sign | Investigate signature functionalities | |
ens | Do Ethereum Name Service queries (supported on the mainnet only) | |
toName | Transform an address to the ENS name | |
toAddress | Transform an ENS name to the Ethereum public address | |
info | Get details about an ENS name | |
version | Print Versions (If connected to a node it will print the host version too) |
Acknowledgement
- Interactive shell: python-nubia
- Web3.py
TODO:
- Able to connect to ws / http / https / IPC
- Fix
Verbose
Status bar (It does not change fromOFF
) - Print Accounts in
getnodeinfo
in a pretty format (One per line) - A way to reinitiate w3 (web3) by setting it to new host (right now it works for sethost but getnodeinfo still uses the first initiated w3)
- add way more functionalities
-
chains.json
depending on the execution path might not be found. fix it. - inline TODOs (tons)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
legions-0.8.3.tar.gz
(16.9 kB
view hashes)
Built Distribution
legions-0.8.3-py3.8.egg
(32.7 kB
view hashes)