Cómo crear una fábrica de tokens con Ethereum – Parte 2

Desactualizado: el nuevo tutorial se puede encontrar en el sitio web de embarque

(Descargo de responsabilidad: este tutorial es solo para fines educativos)

En la parte 1 implementamos e interactuamos con un solo Token. En este artículo, continuaremos adaptando la DApp anterior para crear una verdadera fábrica, de modo que se puedan implementar nuevos tokens de forma dinámica en el lado de la aplicación.

Una ficha es típicamente una unidad que se usa para representar un medio de intercambio por algún servicio o utilidad. Pueden representar una entrada para un concierto, una membresía, una cuota de votos, puntos de reputación, etc.

nota: este tutorial está destinado a embarque 2.5.2 (no 2.6.0 y superior)

Introducción

Para la segunda parte del tutorial, se requiere Embark 2.5.2.

Si está utilizando una versión anterior, puede actualizarla con:

npm install -g [email protected]

Luego, asegúrese de que embark version devuelva 2.5.2
y luego reinicie embark con embark run

Generalización de la interacción de tokens

Comenzaremos generalizando la interfaz de usuario anterior para poder ingresar la dirección de un token ERC20 e interactuar con él.

Primero, agregaremos un formulario simple a app / index.html para obtener la dirección del token con el que deseamos interactuar.

En app / js / token.js obtendremos la dirección dada en la entrada, inicializaremos un nuevo objeto de contrato para esa dirección y el Token ABI, y luego lo asignaremos a una variable. También actualizaremos el resto del código para usar currentToken en lugar de Token. De esta manera, el código existente funcionará con el token que cargaremos.

Ahora puede ingresar la dirección de un token existente en cadena e interactuar con él. Por ejemplo, revisando el panel de embarque.

Puedo ver que la dirección del token implementado en mi caso es 0x0703da89fc6c3ff20b8787a23d3340b41258dba7. C opy pega tu dirección equivalente en la interfaz de usuario.

Nota: Hay varias formas de copiar la dirección, en la mayoría de los sistemas, presionar la tecla ALT mientras arrastra con el mouse habilitará la selección de texto en la consola, seguida de CMD + C o clic derecho- & gt; copiar . Alternativamente, también puede ir a su DApp en http://localhost:8000 y escribir Token.address en las herramientas de desarrollo del navegador.

Después de copiar la dirección, haga clic en “Usar este token” y veamos el saldo.

Es 980 como se esperaba ( 1000 fue el suministro inicial configurado en config / contract.json y 20 fue transferido en la parte 1)

Implemente nuevos tokens sobre la marcha

Ahora que tenemos una interfaz de usuario para interactuar con un Token existente dada su dirección, agregaremos funcionalidad para implementar tokens sobre la marcha, cada uno con su propio suministro inicial.

Primero, agregaremos un formulario simple a app / index.html para obtener el suministro deseado del nuevo token para implementar.

Embark hace que los objetos del contrato estén disponibles en el lado js, ​​cada objeto del contrato tendrá un método llamado implementar que puede implementar nuevas instancias del contrato. Este método puede tomar parámetros para el contrato y devolverá una promesa que contiene un objeto de contrato del contrato implementado.
En app / js / token.js agregaremos el código para implementar nuevos tokens del lado del cliente que utilizan esta funcionalidad:

Cuando se hace clic en el botón Implementar, ingresaremos el suministro e implementaremos un nuevo Token con Token.deploy ([suministro]) .
La promesa resultante .then (function (deployedToken) {}) contendrá el objeto del contrato del contrato recién implementado. Asignaremos este nuevo objeto token al actual currentToken y también informaremos al usuario de la dirección;

¡Probemos esto! Ingresando el suministro como 500 y haciendo clic en Implementar:

¡Perfecto! Ahora, dado que asignó currentToken como el nuevo objeto Token, el saldo de la consulta ya debería funcionar con este nuevo Token.

¡Devuelve 500 como se esperaba! Implementemos otro token con un suministro diferente y revisemos el saldo de la consulta nuevamente:

Después de implementar un nuevo token con el suministro en 200, hacer clic en la consulta también devuelve 200 como se esperaba.

Regresemos al primer token implementado con la funcionalidad “Use this Token” para ver si todo funciona como se esperaba.
Cada vez que implementamos un token en el cliente, la DApp nos informa “Token implementado con address: 0x… ”, así que usemos esto para copiar y pegar la dirección del primer contrato implementado en el campo Dirección del token, luego haga clic en“ Usar este token ”para volver a ese token.

Ahora revisando el saldo nuevamente:

Y es 500 como se esperaba, ya que ese es el suministro inicial definido para el primer token implementado.

Deshabilitar la implementación de tokens desde Embarks

Ahora que su DApp puede implementar Tokens sobre la marcha, no es necesario que Embark implemente el contrato de Token como lo hizo en la Parte 1; sin embargo, aún necesita Embark para que el contrato de Token esté disponible en el lado del cliente.
Para Para lograr esto, vaya a config / contract.json y configure & quot; deploy & quot ;: false para ese contrato

Embark ya no implementará ese contrato, en el panel debería ver:

Sin embargo, el objeto de contrato Token seguirá estando disponible en su DApp y la implementación del lado del cliente funcionará como antes.

Conclusión

En la parte 1, implementamos e interactuamos con un solo Token. En la parte 2, adaptaremos la DApp y crearemos una verdadera fábrica para que los nuevos tokens se puedan implementar dinámicamente en el lado de la aplicación. Este patrón se puede aplicar a DApps que no utilizan un contrato fijo, sino que permiten a los usuarios sus propios contratos sobre la marcha.

¡Estos tutoriales continuarán! La próxima vez aprenderemos cómo funcionan las DApps que integran Ethereum e IPFS usando Embark, ¡hasta la próxima!

Donaciones: si le gusta este artículo, considere hacer una donación a 0x8811FdF0F988f0CD1B7E9DE252ABfA5b18c1cDb1 (ETH)



Hacker Noon es la forma en que los piratas informáticos comienzan sus tardes. Somos parte de la familia @AMI. Ahora estamos aceptando envíos y estamos felices de discutir sobre publicidad y amp; oportunidades de patrocinio.

Si te gustó esta historia, te recomendamos leer nuestras últimas historias tecnológicas y las historias tecnológicas más populares. ¡Hasta la próxima, no dé por sentadas las realidades del mundo!