En este artículo discutiremos Gnosis Safes con Python. Gnosis Safes es una poderosa billetera de contrato inteligente en la red Ethereum que permite a los usuarios administrar de manera segura sus activos de criptomonedas. Al usar Python y la biblioteca Web3.py, puede escribir fácilmente programas que interactúen con Gnosis Safes para realizar diversas tareas, como ejecutar transacciones y recuperar información de billetera.
En este artículo, veremos un programa Python de muestra que interactúa con Cajas Fuertes Gnosis paso a paso. Cubriremos todo, desde configurar su entorno de desarrollo hasta recuperar información de billetera, para que pueda comenzar a escribir sus propios programas para interactuar con Gnosis Safes.
Configuración de su entorno de desarrollo de Python
Antes de que podamos comenzar a escribir código Python para interactuar con Gnosis Safes, debemos configurar nuestro entorno de desarrollo. Para comenzar, necesitaremos instalar el software necesario:
- Python: usaremos Python 3 para este tutorial, así que asegúrese de tenerlo instalado en su sistema.
- Web3.py: esta es la biblioteca de Python que usaremos para interactuar con la red Ethereum. Puedes instalarlo usando pip:
pip install web3
- Gnosis Safe: este es el módulo de Python que usaremos para interactuar con Gnosis Safes. Puedes instalarlo usando pip:
pip install gnosis-safeCon estas herramientas instaladas, estamos listos para comenzar a escribir código Python para interactuar con Gnosis Safes.
Conexión a la red Ethereum
El primer paso para interactuar con Gnosis Safes a través de Python es conectarse a la red Ethereum. Usaremos Infura, un popular servicio de API para interactuar con los nodos de Ethereum. Para conectarse a la red usando Infura, deberá registrarse para obtener una cuenta gratuita y crear un proyecto.
Una vez que haya creado su proyecto de Infura, deberá obtener la ID del proyecto y la URL del punto final. Puede encontrarlos en la pestaña «Configuración» del panel de control de su proyecto. La URL del punto final se verá así:
https://mainnet.infura.io/v3/YOUR_PROJECT_IDAsegúrese de reemplazar «YOUR_PROJECT_ID» con su ID de proyecto Infura real.
Recuperando Información Segura de Gnosis en Python
Ahora que nos hemos conectado a la red Ethereum, podemos comenzar a recuperar información sobre un Gnosis Safe. Para hacer esto, necesitaremos crear un objeto Gnosis Safe usando el módulo Safe y la dirección de un Gnosis Safe existente.
Aquí está el código Python para crear un objeto Gnosis Safe:
from gnosis.safe import Safe
# Create a Gnosis Safe object using the Safe module
safe_address="0x1234567890123456789012345678901234567890"
safe = Safe(safe_address, web3)Asegúrese de reemplazar «0x1234567890123456789012345678901234567890» con la dirección de su Gnosis Safe real.
Una de las cosas más básicas que podemos hacer con el Safe El objeto es recuperar información sobre la billetera. Aquí hay algunos ejemplos de cómo hacer esto:
# Get the address of the Gnosis Safe
safe_address = safe.address
# Get the owners of the Gnosis Safe
owners = safe.get_owners()
# Get the threshold for executing transactions on the Gnosis Safe
threshold = safe.get_threshold()
# Get the balance of the Gnosis Safe in ETH
eth_balance = safe.get_balance()
# Get the balance of a specific ERC20 token in the Gnosis Safe
token_address="0x1234567890123456789012345678901234567890"
token_balance = safe.get_token_balance(token_address)Estos métodos nos permiten recuperar información básica sobre Gnosis Safe, incluidos sus propietarios, el umbral de transacciones y el saldo.
Ejecutando transacciones seguras de Gnosis en Python
Otra poderosa capacidad del módulo Gnosis Safe Python es la capacidad de ejecutar transacciones en la billetera mediante programación. Aquí hay un ejemplo de cómo hacer esto. El código crea un SafeTx objetar para representar la transacción, incluida la dirección del destinatario, el monto a transferir, el precio del gas y otros detalles. Luego ejecuta la transacción en Gnosis Safe usando safe.execute_transaction.
from gnosis.safe import SafeTx
# Ethereum address of the recipient
recipient="0x0987654321098765432109876543210987654321"
# Amount to transfer in wei
amount = 1000000000000000000 # 1 ETH
# Create a SafeTx object to represent the transaction
tx = SafeTx.from_dict({
'to': recipient,
'value': amount,
'data': '',
'operation': 0,
'gas': 21000,
'gasPrice': 1000000000,
'nonce': 0,
})
# Execute the transaction
safe_tx_hash = safe.execute_transaction(tx)El siguiente código ejecuta una transacción en Gnosis Safe que envía 1 Ether a la dirección de destino y
# Target address of transaction
target_address="0x0987654321098765432109876543210987654321"
# Amount of Ether to send in transaction
value = web3.toWei(1, 'ether')
# Arguments for function being called in transaction
arguments = [1, 2, 3]
# Execute transaction
tx_hash = safe.execute_transaction(target_address, value, arguments)
# Wait for transaction to be confirmed
web3.eth.wait_for_transaction_receipt(tx_hash)
print('Transaction executed successfully.')


