
Security News
Follow-up and Clarification on Recent Malicious Ruby Gems Campaign
A clarification on our recent research investigating 60 malicious Ruby gems.
A zero-dependency Rust implementation for converting Ethereum ABI to human-readable format.
cargo install abi2human
cargo build --release
The binary will be available at ./target/release/abi2human
# Output to stdout in JSON format
abi2human contract.json -o
# Raw text format (one function per line)
abi2human contract.json -or
# Compact JSON (no pretty printing)
abi2human contract.json -o --no-pretty
# Convert and save to a new file
abi2human input.json output.json
# Convert with custom suffix
abi2human input.json -s ".readable"
# Convert all JSON files in a directory
abi2human ./abis/ -d ./readable/
# Filter with pattern
abi2human ./abis/ -d ./readable/ -p "*.abi.json"
OPTIONS:
-o, --stdout Output to stdout
-r, --raw Output raw text format instead of JSON
-h, --help Show help message
-v, --version Show version
-q, --quiet Suppress non-output messages
-d, --dir Process directory
-p, --pattern Glob pattern for filtering files
-s, --suffix Custom suffix for output files (default: ".readable")
--no-pretty Disable pretty-printing
Input:
[
{
"type": "function",
"name": "transfer",
"inputs": [
{"name": "to", "type": "address"},
{"name": "amount", "type": "uint256"}
],
"outputs": [{"type": "bool"}],
"stateMutability": "nonpayable"
}
]
Output:
function transfer(address to, uint256 amount) returns (bool)
Input:
{
"type": "event",
"name": "Transfer",
"inputs": [
{"name": "from", "type": "address", "indexed": true},
{"name": "to", "type": "address", "indexed": true},
{"name": "value", "type": "uint256", "indexed": false}
]
}
Output:
event Transfer(address indexed from, address indexed to, uint256 value)
cargo test
# Debug build
cargo build
# Release build (optimized)
cargo build --release
The project is organized into several modules:
abi.rs
- ABI data structures and formattingjson_parser.rs
- Custom JSON parser implementationconverter.rs
- Core conversion logicfile_ops.rs
- File and directory operationsmain.rs
- CLI entry point and argument parsingtests.rs
- Unit testsThis implementation uses no external crates, providing:
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
FAQs
Unknown package
We found that abi2human demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.
Security News
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.
Research
/Security News
A malicious Go module posing as an SSH brute forcer exfiltrates stolen credentials to a Telegram bot controlled by a Russian-speaking threat actor.