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. En la región de Tlaxiaco, Oaxaca en México hay diferentes artesanos de las comunidades indigenas que realizan obras de arte con la herencia milenaria de sus ancestros.
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 en nuestra computadora local
- Clone el repositorio
git clone git@github.com:josealfredo79/ArtesaniasWeb3.0.git && cd ArtesaniasWeb3.0
- 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>