IOTA (Tangle)- Seed & Address

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:

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