Este challenge tiene como objetivo usar herramientas básicas como js y git para conecterse, leer, procesar y guardar información (en MongoDB/NoSQL) de transacciones que interactuan con contratos escritos en solidity.
Para esto se pide que el candidato realice las siguientes tareas:
- Cree un repositorio público de Bitbucket/Github en su cuenta para el challenge, usando una rama para desarrollo: 'development'
- Inicialice el repositorio para nodejs, ignorando node_modules, logs, etc.
- Instalar las librerias necesarias (web3) para poder interactuar con blockchains EVM y procesar información de contratos.
- Instanciar web3 con un RPC público (en este caso se pide Binance Smart Chain | Ver referencias)
- Teniendo como punto de partida esta transaccion 0x105e93511e04a18aa9af281b137c2768ce1b70fdf3d7a508e3c52d24304c8b29 y usando el RPC instanciado previamente, se pide:
a) Usar los métodos correspondientes de web3 para obtener información programática en JSON de la transacción, junto con los logs de eventos.
b) En base a las propiedades y objetos devueltos por la api de web3 cuando se consulta la transacción, se pide crear un Schema de Mongoose, mediante el cual se defina las propiedades y tipos de datos para guardar la información de la transacción procesada en el item a) c) Crear los métodos necesarios para guardar dicha información d) Obtener mediante API y guardar el ABI del contrato PRINCIPAL de dicha transacción.
-
Crear un archivo index.js que al ejecutarlo muestre por consola el resultado de consultar la información guardada en MongoDB
-
Adicionalmente, se pide un error handling básico e instrucciones escritas de cómo correr la solución.
-
Al terminar enviar url del repositorio.
Public RPCs: https://chainlist.org/