La transacción de pago de Algorand – Algorand

Usando la tarifa sugerida, establezca nuestra tarifa general por encima del mínimo. En este caso, la relación de tarifa por byte sugerida fue de 1 a 1 y el gran tamaño de nuestra nota aumentó la tarifa en consecuencia. Para transacciones más pequeñas, esto probablemente habría sido el mínimo de 1000 microalgos dadas las condiciones de red cuando ejecuté este script.

Escenario 3: Alice quiere transferir todos sus Algos a Bob.

Dado que todas las cuentas en el libro mayor de Algorand deben tener un saldo mínimo, debemos "cerrar" una cuenta explícitamente utilizando el argumento de palabra clave close_remainder_to. En este ejemplo, nuestra dirección de recepción y de proximidad es la misma, por lo que no necesitamos ser demasiado precisos sobre el monto ya que todos los fondos se enviarán a la misma dirección. Entonces usamos 1 microalgo en el siguiente código. Si la dirección de recepción y de destino fuera diferente, desearía establecer con precisión el valor de la cantidad.

Entrada de código:

Dado que nuestras direcciones cercanas y receptoras son ambas bob, la cantidad se establece trivialmente en 1 microalgo.

Salida de transacción:

Confirmamos que la dirección de recepción y de cierre es la misma.

Escenario 4: Alice quiere enviar 100 Algos a Bob en 24 horas a partir de ahora.

En este escenario, necesitamos estimar una ronda futura en función del tiempo promedio que se tarda en producir un bloque. Como esto es solo dentro de 24 horas y tenemos un rango de validez máximo de 1000, generalmente podemos estimar con la suficiente precisión como para alcanzar nuestro objetivo de tiempo UTC. En el siguiente código, asumimos un tiempo de bloqueo promedio de 4.5 segundos para recalcular las rondas first_valid y last_valid.

Entrada de código:

Salida de transacción:

Tenga en cuenta el aumento de 19,200 rondas (~ 24 horas en el futuro asumiendo que los bloques se producen cada 4.5 segundos) tanto para la primera como para la última ronda válida en relación con las transacciones anteriores.

Escenario 5: Alice y Bob quieren enviar 100 Algos a Charlie desde una cuenta conjunta de múltiples firmas.

En este escenario, produciremos dos transacciones que demostrarán las dos formas en que puede crear una transacción de múltiples firmas como se describe en la sección de información imprescindible anterior. La primera transacción tendrá el mismo aspecto que el Escenario 1, excepto con una dirección de envío diferente (la dirección multigrado). La segunda transacción incluirá un objeto msig. Nuevamente, ambas transacciones son válidas, pero en el primer caso, debe asegurarse de que su billetera que firma la transacción tenga la información de la cuenta de múltiples firmas importada para que sepa cómo firmarla. Es por eso que recomiendo el último caso cuando sea posible, ya que le brinda posibilidades de firma más diversas.

Primero necesitamos crear una dirección de múltiples firmas usando las dos direcciones de Alice y Bob. Crearemos una cuenta de múltiples firmas 2/2, lo que significa que cualquier transacción de esa cuenta requerirá la firma de Alice y Bob. Aquí está la parte del código que crea el objeto multigrado y genera (e imprime) la dirección.

Cambiamos la dirección de envío con la nueva multisig_address y cambiamos la dirección del receptor a charlie.

Actualice las direcciones de envío y recepción.

Luego creamos una transacción de pago al igual que los ejemplos anteriores. Esto completa el primer tipo de transacción sin la información multigrado.

Salida de transacción (sin multigrado):

Este tipo de transacción requerirá que el dispositivo de firma "conozca" la información de la cuenta de múltiples firmas para que pueda agregar la información cuando firme.

Para el segundo tipo de transacción, agregaremos el objeto multigrado a la transacción misma. Primero instanciamos un objeto MultisigTransaction y lo alimentamos con nuestro PaymentTxn y nuestro objeto Multisig.

tx representa la primera transacción y tx_with_multisig representa la segunda.

Salida de transacción (con multigrado):

Ejecutando este código

Ejecute estos ejemplos usted mismo clonando este repositorio y simplemente ejecutando:

python3 pay-scenarios.py

Es útil tener un objetivo instalado también para que pueda ver la versión legible por humanos de las transacciones que crea. Juegue con los diferentes argumentos para ver cómo cambian el formato y los valores de la salida de la transacción. Actualice las direcciones e intente firmar las transacciones con los SDK y con el objetivo.

Firma de transacciones

Puede firmar estas transacciones con funciones en cualquiera de los SDK o con goal si aprovecha las funciones write_to_file. Aquí hay un video rápido que demuestra cómo cambia la salida de una transacción al firmar. Usaré el objetivo para inspeccionar y firmar las transacciones.

Demostración de la firma de transacciones de pago utilizando el objetivo CLI.

Esta publicación lo llevó a través de algunos escenarios comunes para el Algorand pagar transacción. Aprovechó el SDK de Python para crear las transacciones y el objetivo de inspeccionarlas y firmarlas.

Como desarrollador, descubrirá que muchos de los conceptos imprescindibles presentados anteriormente se aplican a los otros tipos de transacciones en Algorand. Por lo tanto, aprender los conceptos básicos de la transacción de pago de Algorand a través de su SDK preferido es una excelente manera de familiarizarse con los paradigmas fundamentales de la red de Algorand y lo ayudará a crear escenarios más complejos en el futuro.