Minimal Brownie like contract wrapper for Pyrevm
Project description
pyrevm_contract
Minimal Brownie like contract wrapper for Pyrevm
pip install pyrevm_contract
init revm
from pyrevm_contract import Revm, Contract
revm = Revm("https://eth.llamarpc.com", block_number=5282490) # revm singleton; sets backend for all contracts
caller = "0x00000000000000000000000000000000000021E8"
weth_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
init contract via json file object
weth_abi_path = ...
with open(weth_abi_path) as f:
abi = json.load(f)
weth = Contract(weth_addr, abi)
init contract via json abi file path
weth_abi_path = ...
weth = Contract(weth_addr, abi_file_path=weth_abi_path)
create contract abi manually
from pyrevm_contract import ABIFunction, ContractABI
funcs = [
ABIFunction(
name="balanceOf",
inputs=["address"],
outputs=["uint256"],
constant=True,
payable=False,
),
ABIFunction(
selector="0xd0e30db0" # support for selector based funcs
inputs=[],
outputs=[],
constant=False,
payable=True
)
]
weth = Contract(
weth_addr,
contract_abi=ContractABI(funcs),
)
call contract
revm.set_balance(caller, 100) # revm cheatcode; sets ether balance of acct
weth.balanceOf(caller) # -> 0
weth["0xd0e30db0"](value=100, caller=caller) # call via selector
weth.balanceOf(caller) # -> 100
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
pyrevm_contract-0.2.3.tar.gz
(5.7 kB
view hashes)
Built Distribution
Close
Hashes for pyrevm_contract-0.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba3e230b6ef56081e1834528e6f9a9db8da4277e3f33dbdc0e46911bad67bff4 |
|
MD5 | 60cdf00bb6f3442aad71604ce8e40c4f |
|
BLAKE2b-256 | 9e2a7a5481a586bd62df3151a8afd8bb33b6fc8e114b69e590d1d6a6c1bd2572 |