Interact with Ethereum using Python

Last modified: 2023-03-20

Blockchain Web3

Preparation

To use “py-solc”, the Ethereum and Solidity are required in our system. So if you don’t have them yet, install them.

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc

Install Python Packages

pip3 install py-solc
pip3 install web3

Compile Contract

import solc

with open('MyContract.sol', 'r') as f:
	contract_source_code = f.read()

compiled_sol = solc.compile_source(contract_source_code)

contract_bytecode = compiled_sol['<stdin>:MyContract']['bin']
contract_abi = compiled_sol['<stdin>:MyContract']['abi']

Interact with Ethereum Chain

Create the Python script using web3 to interact with blockchain.

from web3 import Web3

rpc_url = "http://10.0.0.1:8545"
private_key = "0x1234..."
addr = "0x1234..."
contract_addr = "0x1234..."

# Connect
w3 = Web3(Web3.HTTPProvider(rpc_url))
print(w3.is_connected())

# Get the latest block
print(w3.get_block('latest'))

# Get the balance of specified address
balance = w3.eth.get_balance(addr)
print(f"Balance is {balance}")