Comenzando con TheRPC
Referencia de API
API de Ethereum
Core API
Guías

Herramientas Python

Python proporciona bibliotecas robustas para el desarrollo en Ethereum, adecuadas tanto para scripts simples como para aplicaciones complejas.

¡Presta atención!
¡Hola! Solo un aviso amistoso: esta página está destinada a darte una sólida visión general de cómo trabajar con Python solicitudes. Para ejemplos prácticos de código, consulta nuestra API Methods documentation donde encontrarás ejemplos listos para usar en todos los lenguajes compatibles!

# Web3.py

Biblioteca oficial Python para Ethereum.

from web3 import Web3
from eth_account import Account
import json

# Initialize web3
web3 = Web3(Web3.HTTPProvider('YOUR_ETHEREUM_NODE_URL'))

# Get balance
def get_balance(address):
    balance_wei = web3.eth.get_balance(address)
    balance_eth = web3.from_wei(balance_wei, 'ether')
    return balance_eth

# Send transaction
def send_transaction(private_key, to_address, value_eth):
    account = Account.from_key(private_key)
    transaction = {
        'nonce': web3.eth.get_transaction_count(account.address),
        'to': to_address,
        'value': web3.to_wei(value_eth, 'ether'),
        'gas': 21000,
        'gasPrice': web3.eth.gas_price
    }
    signed_txn = account.sign_transaction(transaction)
    tx_hash = web3.eth.send_raw_transaction(signed_txn.rawTransaction)
    return web3.eth.wait_for_transaction_receipt(tx_hash)
  • GitHub: web3.py
  • Documentación: web3py.readthedocs.io
  • Características:
    • Soporte completo para API Ethereum
    • Interfaces sincrónicas y asincrónicas
    • Sugerencias de tipo
    • Soporte para middleware
    • Soporte para ENS

# Eth-brownie

Framework Python para desarrollo Ethereum.

from brownie import *

# Deploy contract
def deploy_contract():
    account = accounts[0]
    return MyContract.deploy({'from': account})

# Interact with contract
def interact_with_contract(contract_address):
    contract = MyContract.at(contract_address)
    return contract.myFunction({'from': accounts[0]})

# Test contract
def test_contract(Contract):
    account = accounts[0]
    contract = account.deploy(Contract)
    assert contract.myFunction() == expected_value
  • GitHub: eth-brownie
  • Documentación: eth-brownie.readthedocs.io
  • Características:
    • Framework de pruebas para contratos
    • Gestión de despliegues
    • Consola interactiva
    • Gestión de redes
    • REPL de Python

# Soporte Asincrónico

Web3.py proporciona soporte asincrónico para mejor rendimiento:

from web3.auto import w3
import asyncio

async def get_latest_blocks(count):
    latest = await w3.eth.get_block_number()
    blocks = []
    for i in range(count):
        block = await w3.eth.get_block(latest - i)
        blocks.append(block)
    return blocks

# Usage
blocks = asyncio.run(get_latest_blocks(10))

# Sugerencias de Tipo

Web3.py incluye sugerencias de tipo completas para mejor soporte de IDE:

from web3.types import TxParams, Wei, Address
from typing import Optional

def prepare_transaction(
    to: Address,
    value: Wei,
    gas_price: Optional[Wei] = None
) -> TxParams:
    return {
        'to': to,
        'value': value,
        'gasPrice': gas_price or web3.eth.gas_price
    }

Ver también

¡Ayúdanos a Mejorar!
Comparte esta página y ayúdanos a crear un producto aún mejor para ti.