Skip to main content

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

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

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:

help

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

working

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

ape_utils-0.0.6.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

ape_utils-0.0.6-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

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

Hashes for ape_utils-0.0.6.tar.gz
Algorithm Hash digest
SHA256 c53a8e0f987565b7a471c7fe4b28bf63efb001fa88fc5be95aeb5794c0fb1214
MD5 13f8d7a8240e9054b3b184f7990e271a
BLAKE2b-256 3b0e0d058059c92ace106e0a79d7c4fe0c8a74c75357a39192fce824078414af

See more details on using hashes here.

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

Hashes for ape_utils-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 42c36d36d179140135e18f381d8d6bfee63e2bb53a3e5b46d0ca564f8f4cbac1
MD5 e03a2b25cea0b6dd8f737680e325e454
BLAKE2b-256 1be064cb8bc12371abbbd7a8b2d1078d93acb959a8a46b90d1e024110efef9c8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page