ArtesaniasWeb3.0 es un smart contract que parte de la idea que los artesanos son los productores de las artesanias y deben de recibir regalias por la pieza que se vendio a un precio mayor. En el estado de Oaxaca en Mexico esto es un problema grave, con el contrato inteligente se debe dar solucion.
Las funcionalidades principales del contrato son las siguientes:
- Subir un artesania (además, guarda el usuario de la persona que lo sube como "Artesano").
- Obtener todos las artesanias
- Obtener una artesania especifica.
- Obtener lista de artesanos.
- Eliminar la lista de artesanos.
- Eliminar una artesania en específico.
- Vaciar la lista de artesanos.
- Buscar un artesano por su usuario.
- Debe tener Nodejs instalado en su versión 12.0 o mayor.
- Debe tener instalado Yarn. Para saber si lo tiene, ejecute el comando
yarn --version
. En caso de no tenerlo, puede instalarlo ejecutando el comandosudo npm install -g yarn
- Instale las dependencias de yarn ejecutando
yarn install
- Debe tener una cuenta en la testnet de NEAR
- Debe tener NEAR-CLI instalado globalmente en su ordenador. Para saber si ya lo tiene instalado, ejecute
near --version
. En caso de no tenerlo, instálelo ejecutando el comandosudo npm install -g near-cli
Ya tenemos todo lo que necesitamos para probar nuestro contrato inteligente. Ahora vamos a ejecutarlo.
- Clone el repositorio
git clone [email protected]:sebasvivas1/OpenBooks.git && cd OpenBooks
- Vamos a iniciar sesión en nuestra wallet que creamos anteriormente:
near login
- Dentro del repositorio, instalemos las dependencias del proyecto ejecutando
npm install
, tranquilo, esto puede tomar unos segundos. - Si quieres desplegar el contrato y probar sus funciones, puedes hacerlo con
yarn deploy:dev
esto le devolverá un conjunto de caracteres que empezarán por "dev-" seguido por numeros generados por la red. Guárdelo, lo necesitará si quiere probar los métodos del contrato inteligente. - Por último, si queremos ejecutar los tests desarrollados, podemos hacerlo ejecutando
yarn test
Algunos de los metodos que podemos ejecutar son los siguientes
- Cargar una artesania
near call dev-<tu numero de contrato> uploadArtesania('001', 'Sombrero','Sombrero de palma', 'https://www.istockphoto.com/es/foto/sombrero-hecho-de-hojas-de-palma-gm500937574-81078667', 'https://ipfs.io/ipfs/bafybeia5khhhukn672acm6sfredqdereor7n7zsoobvrwcqk7rmn6ihffi', '10000000000000000')' --accountId <tu_user.testnet>
- Buscar todas las artesanias
near call dev-<tu numero de contrato> getArtesanias --accountId <tu_user.testnet>
- Buscar una artesanias en especifico
near call dev-<tu numero de contrato> getArtesania '{"ArtesaniaIndex": i32}' --accountId <tu_user.testnet>
- Eliminar una artesania
near call dev-<tu numero de contrato> deleteArtesania '{"artesaniaIndex": i32}' --accountId <tu_user.testnet>
- Donar al proyecto
near call dev<tu numero de contrato> donateToProyecto --accountId <tu_user.testnet> --amount i32
- Buscar los artesanos
near call dev-<tu numero de contrato> getArtesanos --accountId <tu_user.testnet>
- Buscar un artesano por nombre de usuario
near call dev-<tu numero de contrato> findArtesano '{"ArtesanoUsuario": "usuario.testnet"}' --accountId <tu_user.testnet>