Traducción al español de “Marlowe Playground 4: Choices and Observations”
Publicado en el canal de Youtube de Simon Thompson el 17 de Abril de 2020
Enlace a la versión doblada al español
Para el vídeo final en esta serie lo que haremos es mirar un poco más a observaciones y elecciones, así que lo que haremos es modificar el contrato en el que hemos estado trabajando para hacer una última cosa. Lo que el contrato que tenemos en el momento hace es que espera un depósito y luego hace un pago, en vez de eso, saquemos esto, esto es una cosa bonita de este editor textual y digamos que en su lugar lo que vamos a hacer es que vamos a realizar una elección y luego basados en esa elección vamos a hacer un pago a Bob o a Alice, veamos, seleccionamos todo esto. He duplicado eso, así que aquí tenemos un pago a Bob de Alice, también podemos hacer un pago a Alice de Alice, así que en esta situación un pago va de Alice a Bob, en esta situación el pago va desde Alice de vuelta a sí misma. Así que lo que vamos a hacer es poner esos dentro de esta declaración “Si”, ahora tenemos un contrato que hace una cosa o la otra. Luego tenemos que pensar en qué vamos a basar nuestra observación, lo que vamos a hacer, y aquí estamos esperando un depósito, y luego que vamos a hacer es esperar una segunda acción y esa acción va a ser la elección, así que vamos a tener una elección, llamémosla A o B y el dueño de la elección va a ser Carol, Carol hará la elección y la elección está vinculada y aquí usamos vínculo, va a estar entre 1 y 2, así que, ¿qué sucede aquí? el contrato de nivel superior, primero que todo tiene que tomar un depósito, luego hacemos una elección y luego continuamos como lo que desarrollamos aquí.
Así que tenemos que decidir esta observación y vamos a mirar qué observaciones podemos hacer, vamos a comprobar esto, podemos decir, si el valor, qué valores tenemos, tenemos un nombre de elección, el valor de elección A o B por Carol, con el valor por defecto, así que si la elección no se hace dirá que tiene un valor por defecto, valor por defecto de cero y estamos diciendo que queremos que sea mayor o igual a dos, así que puedes ver de nuevo que estoy usando cortar y pegar aquí. Así que si la elección de A o B por Carol es mayor o igual a dos, entonces Bob cobra, de lo contrario Alice cobra. Ahora, la única cosa, la única franja faltante aquí es que tenemos que decir que tenemos un período de tiempo para que Carol tome una decisión, digamos que está hasta la franja 20 y luego de otra manera hacemos lo que siempre hacemos, simplemente cerrar el contrato. Y ahora deberíamos tener un contrato completo que podemos convertir a código, bien, y echemos un vistazo simulando, añadamos el depósito de Alice, aplicamos eso y verás que cuando aplique esta transacción el contrato en la ventana principal cambia, refleja eso y ahora estamos en una elección en la que Carol hace una elección de uno o dos. Si Carol hace la elección de uno, aplicaremos eso y un pago se hace, el dinero es devuelto a Alice, si deshacemos esto, deshacer de nuevo, tomamos la elección 2, añadir eso a la transacción y aplicarla, verás que el dinero ha ido a Bob. Así que ahí vemos, y aquí estamos deshaciendo un solo paso para probar diferentes construcciones en el contrato.
Volvamos a la ventana Blockly y sólo concluyamos aquí, puedes ver que en este ejemplo hemos usado una construcción “cuando”, esperando por una acción, usamos una construcción de pago, hemos usado un “si”, así que dependiendo de una observación que podríamos hacer el contrato puede ir en dos direcciones. Observaciones que podemos hacer son sólo cosas que podemos observar y los valores pueden ser cuánta moneda hay en una cuenta, puede ser una constante, puede ser una elección como vimos aquí, puede ser el valor de una franja particular, intervalo de tiempo en el que estamos. Y luego tenemos acciones y estas están impactando en el contrato en el mundo exterior, haciendo un depósito, haciendo una elección o notificando un valor particular. Hemos visto beneficiarios, así que los pagos se pueden hacer a otra cuenta o pueden hacerse a una parte en el contrato, las partes en sí mismas pueden ser una llave pública o un rol más abstracto. Tenemos tokens, o bien tenemos Ada o tenemos otras monedas personalizadas que son proporcionadas por la plataforma Plutus. Y luego finalmente tenemos vínculos, diciendo que cuando estamos buscando una elección, hacemos la elección vinculada de manera que sólo hay un número finito de elecciones que se pueden hacer.
Bien, así que eso cubre la mayoría de las construcciones del lenguaje Marlowe, ha mostrado cómo construimos las cosas interactivamente en el editor, ha mostrado cómo podemos usar copiar y pegar, podemos también haciendo click derecho aquí colapsar bloques y expandirlos si lo deseamos, podemos eliminarlos todos, así que están disponibles las funciones usuales de edición con el botón derecho y podemos usar copiar y pegar en el panel de edición también. Así que nos da una forma muy fácil de comenzar a escribir contratos Marlowe, y luego una vez que hayamos escrito un contrato, somos capaces de movernos en este panel de simulación y simular su comportamiento. Bueno, eso es todo, eso es todo para mí y para esta corta serie de videos, muchas gracias por mirar.