Traducción al español de “Marlowe Playground 3: elaborating the contract”
Publicado en el canal de Youtube de Simon Thompson el 17 de Abril de 2020
Enlace a la versión doblada al español
Bien, continuemos donde lo dejamos la última vez, construimos un contrato simple que hace un pago, pero lo que nos gustaría hacer es mejorar eso de alguna manera y vamos a mejorarlo asegurándonos de que hay dinero en el contrato para hacer el pago, veamos el tipo de cosas que podemos hacer editando en el editor Blockly, podemos recoger un contrato, deja de ser el contrato principal, vamos a añadir una nueva construcción de nivel superior, haremos que el contrato tenga un “cuando”, vamos a hacer que sea el nivel superior, lo que pasa con un “cuando” es que tenemos que pensar en una acción que pondremos en una franja, esperamos por una acción, lo que esperaremos aquí es un depósito, ¿qué depósito queremos?, bien queremos un depósito de Alice, aquí hay una cosa linda que podemos hacer en Playground, podemos duplicar uno de estos artículos, ups, no podemos, podemos cortar y pegar uno de estos artículos si usamos los atajos ordinarios para que podamos hacer eso, podemos duplicar la moneda ADA aquí, decimos que queremos una cantidad, otra vez, podemos cortar y pegar, digamos que queremos que Alice deposite dos Ada y está depositando eso en su cuenta número uno, así que cambiamos eso y el dueño de la cuenta, de nuevo, podemos cortar y pegar, Alice. Así que lo que estamos esperando aquí es el depósito de Alice y luego continuamos como nuestro pago.
Así que, lo que nuestro contrato hace, es que esperará por un depósito, una vez que el depósito se haga, continuará haciendo un pago y luego continuará y se cerrará. Pero ¿qué pasa si Alice no hace un depósito?, necesitamos pensar en incluir un tiempo límite en el contrato, así que digamos que después de la franja 10 decimos cuál es nuestra acción alternativa y creo que lo que haremos aquí es que podemos volver a copiar y pegar, podemos decir que el contrato se cerrará después de la franja 10. Así que leyendo esto desde arriba, esperamos por el depósito de Alice, entonces hacemos un pago y cerramos, si el depósito no ocurre después de la franja 10, cerramos. Ahora movamos eso al código y podemos ver que ahora Marlowe, la versión textual de eso ha aparecido en la ventana principal y ahora podemos empezar a simular y vamos a ver a la derecha, lo que vemos es el compositor de entrada, la única entrada sensible en esta situación y es una entrada inteligente, es para que Alice deposite dos unidades de Ada, así que vamos a hacer eso. Así que hicimos esa entrada, podemos tener múltiples entradas en una transacción, pero digamos que sólo vamos a incluir esta entrada en la transacción, no hay más entradas válidas que podríamos incluir, apliquemos eso. Y verán ahora en el estado actual que todo el contrato se ejecuta, el pago ha tenido lugar automáticamente y ha habido un pago de Alice a Bob. Podemos deshacer eso si quieres, podemos deshacerlo de nuevo y eso nos lleva de vuelta al principio, de hecho no tenemos alternativas en esto así que dejaremos las cosas así. Volvamos a nuestro código Blockly, así que puedes ver que hemos hecho algunas construcciones más desde aquí, hemos usado un “cuando”, así como un pago y hemos usado un número de construcciones aquí, hemos usado acciones, usamos un depósito, hemos visto los valores, el pago a alguien, a quien se le hace un pago, una parte es una de las personas involucradas en el contrato, token dice qué token estamos usando, por defecto usamos ADA pero otros tokens están disponibles, también podemos especificar vincular si las elecciones son realizadas, volveremos y miraremos estas de nuevo en un contrato final que miraremos en el siguiente video.