Llamar a funciones específicas dentro de un contrato usando pyethereum

He estado siguiendo este tutorial y llegué a la parte donde el contrato se envía a la cadena de bloques:

pyethtool applytx $genesis $tx 

que debería dar la salida:

{“result”: “da7ce79725418f4f6e13bf5f520c89cec5f6a974”, “block”: “f9017ef8d0a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00bcec36bf7ffc27418b1746986574526efeb09b34f733039749f291f778d4aaca03575f60ad6c929d7c98a50a12ff1ef9b07ecf3182e74962872064648a66f3da0834000008087038d7ea4c68000830f42408204b08080a004994f67dc55b09e814ab7ffc8df3686b4afb2bb53e60eae97ef043fe03fb829f8a9f8a7b881f87f8085e8d4a510008227108080af6025515b525b600a37f260003556601b596020356000355760015b525b54602052f260255860005b525b54602052f21ca04565b5a48b29ef623ad2caffe0917a3fc6a6f1b50f1df06876f3caa6fb4957c6a0123c928257c1f248fb3d362c125a0aea091ab08467efb52f8c3676ca73d727bfa00bcec36bf7ffc27418b1746986574526efeb09b34f733039749f291f778d4aac8204b0c0”}

Se menciona que resultado contiene la dirección del contrato dentro de la cadena de bloques. Sin embargo, no entiendo si contiene la dirección del contrato, y el contrato contiene un conjunto de funciones, ¿cómo es posible llamar solo a un subconjunto (preferiblemente usando pyethereum )?

Además, parece que no puedo encontrar una pyethtool que tenga una funcionalidad similar a la que se muestra en el tutorial.

Respuestas (2)

El tutorial al que hace referencia es muy antiguo en términos de qué tan rápido se está moviendo esta tecnología. Si está tratando de aprender cómo crear, implementar y llamar funciones en un contrato, le recomendaría que consulte Solidity y Web3 API . Aunque también me gusta mucho Serpent, hay mucha menos documentación, lo que hace que la curva de aprendizaje sea un poco más pronunciada.

Si desea utilizar Python en lugar de la API de Web3, puede crear e interactuar con contratos tanto en Serpent como en Solidity utilizando el código de prueba en Pyethereum. De hecho, esto hace que sea muy fácil escribir pruebas unitarias para su código. Aquí hay algunos ejemplos para empezar.

Si entiendo su pregunta correctamente, lo que sucede es que cuando implementa un contrato, obtendrá la dirección de ese contrato (suponiendo que se haya implementado correctamente). Luego, usa esa dirección y la ABI del contrato compilado a través de una API como Web3 para interactuar (funciones de llamada) en el contrato. Nuevamente aquí hay un ejemplo con Web3

Upvoted y buenos puntos por todas partes; Solo iba a comentar pero terminó siendo más largo.

Como dijo @dbryson, ese tutorial es antiguo[1].

Para agregar a algunas referencias de Python, consulte pyethapp y su documentación, incluido Primeros pasos .

web3.py también puede ayudar.

Como podría estar usando Serpent, es poco probable que desaparezca ya que es lo que Vitalik Buterin usa para partes de su desarrollo e investigación, pero pocos en la comunidad han podido contribuir con él o su documentación, por lo que es más difícil de usar.

[1] El tutorial trataba sobre la quinta prueba de concepto (PoC) de Ethereum. Hubo alrededor de 10 PoC, y luego muchos más lanzamientos hasta el lanzamiento actual de Homestead.