Cartera móvil Ethereum mínima viable – Parte 2: Crear aplicación

Esta es la parte 2 del tutorial paso a paso para guiar al lector a través del desarrollo de una billetera móvil Ethereum mínima viable en React Native. Lo llamo Billetera Mínima Viable o MVW en breve.

En esta parte, describiré cómo crear la aplicación a partir de los códigos fuente que puede encontrar aquí.

Estructura del tutorial

Este tutorial es un trabajo en progreso. Cuando termine, vendrá en 4 partes.

Seguiré agregando partes nuevas mientras las escribo. Vuelva a consultar con frecuencia.

Configuración

MVW fue desarrollado con Expo, una cadena de herramientas React Native para crear aplicaciones React Native rápidamente. Dirígete a Expo.io y sigue las instrucciones para instalar Expo.

Luego crea mvw como un proyecto de Expo.

Vaya a la carpeta “mvw” que acaba de crear y elimine la carpeta node_modules. Volveremos a descargar versiones específicas de los módulos para este proyecto y explicaré por qué los necesitamos.

Visite el repositorio de github de mvw y descargue el repositorio completo. Luego descomprímalos en la carpeta mvw. Ahora ejecute yarn para descargar todos los paquetes de dependencia enumerados en package.json en el repositorio.

Luego, compile y pruebe la aplicación.

MVW se creó con una fuerte referencia a React Native Web3 Boilerplate de Doug Bacelar. Le agregué varias otras cosas y las describiré aquí.

Lea las instrucciones paso a paso de Doug si desea saber qué se incluyó en el texto estándar original que creó.

Módulos de nodo

Aquí está la lista de dependencias que MVW usa y por qué.

¿Importan las versiones? Puedes apostar que sí. Ahora funciona de la manera que debería y no tengo la menor intención de cambiar el rumbo a menos que haya una razón convincente para actualizar cualquiera de estos paquetes.

Trucos esenciales 1: navegador de bibliotecas de nodo

Las bibliotecas de búfer y nodos de proceso son necesarias para que web3 se ejecute en React Native. node-lib-browser proporciona una implementación basada en navegador que nos permite ejecutar estas bibliotecas. Lea las instrucciones paso a paso de Doug sobre cómo implementó este truco.

Trucos esenciales 2: RandomBytes

El módulo criptográfico que necesitamos para generar direcciones y claves en MVW usa componentes nativos para la generación de bytes aleatorios y no podemos usarlo a menos que el proyecto Expo esté separado. No quiero desvincularme porque quiero seguir viviendo en el cliente de la Expo para usar las cosas interesantes que tiene la Expo.

A Alejandro García se le ocurrió esta solución y la documentó aquí. Escribió una implementación Maths.Random () de la función randombytes y usó el complemento de resolución del módulo babel para señalar referencias de randombytes allí.

Aquí está el solucionador de módulos en acción. Y aquí están los randombytes.

Estructura del proyecto

¿Qué sigue?

En la siguiente parte, analizaré los códigos detrás de la creación de una cuenta de billetera y el almacenamiento seguro de claves.

Obtenga las mejores ofertas de software directamente en su bandeja de entrada