Utility plugin to expose some of the Ape's awesome features to CLI
Project description
Ape_utils
Quick Start
Ape Utils is a CLI tool designed to interact with Ethereum smart contracts, specifically focusing on calling view functions. The tool allows you to call a view function from a given function signature and address directly from the command line.
Demo
Features
- Call View Functions: Invoke view functions on Ethereum smart contracts using their function signature and address.
- Flexible Input: Provide function signature, contract address, and arguments through the command line.
Dependencies
- python3 version 3.9 up to 3.12.
Installation
via pip
You can install the latest release via pip
:
pip install ape_utils
Build locally
You can clone the repository and use pip
for the most up-to-date version:
git clone https://github.com/Aviksaikat/ape_utils.git
cd ape_utils
pip install -e .
Quick Usage
Once installed, you can use the ape_utils command to call view functions on Ethereum smart contracts. Here is how you can use it:
ape_utils call --function-sig "function_signature" --address "contract_address" --args [argument] --network [ecosystem-name][:[network-name][:[provider-name]]]
Examples
Calling a view function with single parameter
To call a view function with the signature call_this_view_function(uint256)(string)
on a contract at address 0x80E097a70cacA11EB71B6401FB12D48A1A61Ef54
with an argument 6147190
, you can use:
# function which takes a single input parameter
ape_utils call --function-sig "call_this_view_function(uint256)(string)" --address "0x80E097a70cacA11EB71B6401FB12D48A1A61Ef54" --args '[6147190]' --network :sepolia:infura
# or
ape utils call -s "call_this_view_function(uint256)(string)" -a "0x80E097a70cacA11EB71B6401FB12D48A1A61Ef54" -ag '[6147190]' --network :sepolia:infura
Calling a view function with multiple parameter
# function which takes multiple input parameters
ape_utils call --function-sig 'couple_param_function(uint256,string)(string)' --address '0x894A02d4574318a9da4EEc7884a7D0c095E65507' --args "[6147190,'string']" --network :sepolia
# function with 3 input parameters
ape_utils call --function-sig 'multiple_param_function(uint256,string,address)(string)' --address '0x894A02d4574318a9da4EEc7884a7D0c095E65507' --args "[6147190,'string', '0x894A02d4574318a9da4EEc7884a7D0c095E65507']" --network :sepolia
Use as ape plugin
ape utils --help
ape utils call --function-sig "call_this_view_function(uint256)(string)" --address "0x80E097a70cacA11EB71B6401FB12D48A1A61Ef54" --args '[6147190]' --network :sepolia:infura
ABI encode the given function
ape_utils encode --signature 'call_this_view_function(uint256 arg1, string addr)' 1234 '0xdeadbeef'
ABI Decode input data
ape_utils decode --signature 'call_this_view_function(uint256 arg1, string addr)' '0x00000000000000000000000000000000000000000000000000000000000004d20000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a3078646561646265656600000000000000000000000000000000000000000000'
Encode the given function with function selector
ape_utils encode --signature "call_this_view_function(uint256 arg1)" 1234
Decode the given function with function selector
ape_utils decode --signature "call_this_view_function(uint256 arg1)" "0x1e4f420d00000000000000000000000000000000000000000000000000000000000004d2"
Don't want beautiful print statements ?
You can now pass the --raw
flag to each option to print the output data only
ape_utils encode --signature 'isLastFloor(uint256 arg1)' 1234 --raw
Read storage slots of a contract
ape utils read --address "0xDbB18e367E4A2A36A9F2AF7af8b3c743938deCF2" --slot 1 --network :sepolia
Development
Please see the contributing guide to learn more how to contribute to this project. Comments, questions, criticisms and pull requests are welcomed.
Contact
For any issues or questions, please open an issue on the GitHub repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ape_utils-0.0.6.tar.gz
.
File metadata
- Download URL: ape_utils-0.0.6.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c53a8e0f987565b7a471c7fe4b28bf63efb001fa88fc5be95aeb5794c0fb1214 |
|
MD5 | 13f8d7a8240e9054b3b184f7990e271a |
|
BLAKE2b-256 | 3b0e0d058059c92ace106e0a79d7c4fe0c8a74c75357a39192fce824078414af |
File details
Details for the file ape_utils-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: ape_utils-0.0.6-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42c36d36d179140135e18f381d8d6bfee63e2bb53a3e5b46d0ca564f8f4cbac1 |
|
MD5 | e03a2b25cea0b6dd8f737680e325e454 |
|
BLAKE2b-256 | 1be064cb8bc12371abbbd7a8b2d1078d93acb959a8a46b90d1e024110efef9c8 |