IOTA (Tangle)- Seed & Address

Gustavoghioldi
3 min readMay 18, 2020

--

En la mi post anterior (https://medium.com/@gustavoghioldi/dapp-python-en-5-minutos-sobre-tangle-796f8c9d7936), hice una breve intro al desarrollo en Tangle con Python, la idea era mostrar la belleza y la facilidad, pero deje varios “hilos” abiertos. La mayor cantidad de consultas fueron referentes a la dirección que había utilizado, y tratare en las siguientes lineas de despejar estas dudas.

Un Address (de verdad) debe ser formado a través de una Seed, esta “semilla”, de 81 caracteres formados por letras y números nueve (9) -expected A-Z or 9-, debe ser guardada ya que sera nuestro “password”

from iota import Iota
import secrets
import string
# Primero generamos una seed (password)
seed = (''.join(secrets.choice(string.ascii_uppercase + "9") for _ in range(81)))

print('Esta es mi seed!: ' + str(seed))

# seteamos la conexión a la API
api = Iota(
adapter='https://nodes.devnet.iota.org:443',
seed=seed
)
# Ahora generamos un Address para esa seed
_address = api.get_new_addresses(index=0)
#como existe la posibilidad de generar varios a la vez
address= _address['addresses'][0]

print('Esta es tu Address: ' + str(address))

en esta dirección que tendrá un formato semejante a eso: QJNEKEXRTJBQEMEQWOHKSKPFATZGGEPOZVKVCD9CNGAHSCHNLNEBPEHZSPQMWLCHRQROWWLLTXEUSQBMD, ya podemos recibir tokens de free en devnet.

Si ejecutamos en la consola de python el comando api.get_new_addresses(index=0), en repetidas oportunidades veremos que siempre nos crea el mismo Address, pero si cambiamos el index a 1, la nueva dirección sera diferente, esto es por que a partir de un determinado seed crea una dirección distinta para cada indice, así una semilla puede tener n direcciones en Tangle.

Ahora ya tenemos n direcciones donde nos pueden mandar token, aunque sea con un valor 0, y un mensaje adjunto.

Ya estamos en condiciones de pedir el balance de esta address, de la siguiente manera:

print(api.get_balances(_address['addresses']))

que nos respondera algo así:

{‘balances’: [0], ‘references’: [TransactionHash(b’EABYVVBLWTMVYUALEYXNJXJXK9PLRANRBJTIAKRGHPHVOYXTRWQCEOBICTVSISKWTHRMOYXSYUJDJD999')], ‘duration’: 0, ‘milestoneIndex’: 1573682}

y si consultamos de la siguiente manera la TransactionHash que nos aparece:

“https://utils.iota.org/transaction/EABYVVBLWTMVYUALEYXNJXJXK9PLRANRBJTIAKRGHPHVOYXTRWQCEOBICTVSISKWTHRMOYXSYUJDJD999/devnet

esto nos indica que se creo el Address con un Balance de 0.

De la siguiente forma pedimos encontrar nuestras transacciones:

txs = api.find_transaction_objects(addresses=[address])if not txs['transactions']:    print('No se registran transacciones para esta dirección.')else:    print('Es encontraron:')    for tx in txs['transactions']:        data = tx.signature_message_fragment.decode(errors='ignore')        print(data)

Si registran una transacción para ese Address verán que se muestran los mensajes enviados, por el momento nos responderá: No se registran transacciones para esta dirección.

En el siguiente post voy a estar explicando de que manera poner un listener en Tangle para que nos avise cuando se genera un transacción en nuestros Addresses y no tener que estar pulleando todo el tiempo.

Hasta pronto.!!

Slds, El Barba

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response