-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 2fdcc05
Showing
351 changed files
with
165,477 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
/.vscode | ||
|
||
node_modules | ||
/blockchain/contract/target | ||
/blockchain/near-contract-standards-3.2.0/target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# 👨👩👦👦 Marketplace de arte de comunidades latinas | ||
|
||
Este proyecto tiene como eje central el comercializar arte digital proveniente de comunidades indígenas en toda américa latina, haciendo uso de los tokens NFT (Non Fungibles Tokens) de la tecnología blockchain para encapsular el valor de la historia que cada pieza pueda contar. | ||
Actualmente existen alrededor de 522 pueblos indígenas en américa latina cada una con historia, tradiciones, cultura y arte única, misma que puede ser transmitida a todo el mundo mediante una red descentralizada creando y compartiendo contenido único y coleccionable. | ||
|
||
De manera técnica esta dApp permite las funcionalidades de un Marketplace (Minar un NFT, Vender, Comprar, Revender, Listar tokens y quitar de la venta) tanto en un contrato construido en Solidity para Aurora EVM (Ethereum Virtual Machine) y uno en Rust para NEAR con las mismas funcionalidades. A su vez con una interfaz de usuario que nos da la opción de elegir entre NEAR o Aurora para interactuar con estos contratos del marketplace. | ||
|
||
|
||
## 📚 ¿Como esta estructurado el proyecto? | ||
|
||
El proyecto consta de 4 partes: | ||
1. La construcción de un smart contract que hace posible la interacción con la blockchain. En esta ocasión utilizando la `EVM (Ethereum Virtual Machine) de NEAR llamada Aurora`, esta nos da la compatibilidad con la red de ethereum dentro del protocolo de NEAR. (`Corresponde al directorio blockchain`) | ||
2. El desarrollo de la interfaz de usuario (frontend) amigable que permita consumir el smart contract a través de la wallet de [MetaMask]. (`Corresponde al directorio frontend`) | ||
3. La construcción de un smart contract utilizando el lenguaje de programación Rust para la network de NEAR. Este contrato tiene la misma funcionalidad de marketplace que el contrato para la EVM Aurora. (`Dentro del directorio rust-contract en el directorio blockchain`) | ||
4. Integrar `near-api-js` en el frontend para consumir el contrato de Rust en NEAR. (`Dentro al directorio frontend`) | ||
|
||
## Documentación de cada parte del proyecto | ||
|
||
[Contrato en solidity para Aurora EVM] | ||
|
||
[Contrato en Rust para NEAR] | ||
|
||
[Frontend] | ||
|
||
## 🎥 Avances del proyecto | ||
|
||
Dentro de los avances del desarrollo de este proyecto se encuentran multiples listas de reproducción que sirven como apoyo para aquellos que busquen continuar con el crecimiento de esta dApp aportando nuevas funcionalidades o siemplemente para conocer como fue el proceso de crear e implementar este proyecto utilizando NEAR y Aurora. En el canal en YouTube de [NEAR Hispano] se encuentran las diversas listas de reproducción. | ||
|
||
Avance diario de desarrollo del proyecto: | ||
https://www.youtube.com/watch?v=9J2xkT_tFHk&list=PLixWO0N_iFTMGU3M5KHpuMqhpdMKzw88f | ||
|
||
Primer demo de las funcionalidades del proyecto (solo Aurora EVM): | ||
https://www.youtube.com/watch?v=9PfxYtO0HK4&list=PLixWO0N_iFTOoCXL_rcyDowvxaO8BKAUD | ||
|
||
Demo final de las funcionalidades del proyecto (Implementación de contrato en Rust y Aurora): | ||
https://www.youtube.com/playlist?list=PLixWO0N_iFTNtlOFTYYVmjd_R5m4W1YV- | ||
|
||
Comparación de rendimiento de las redes Aurora, NEAR y Ropsten: | ||
https://www.youtube.com/playlist?list=PLixWO0N_iFTPr5LSe6s1RZfEw6yXPWV7p | ||
|
||
[MetaMask]: https://metamask.io/ | ||
[NEAR Hispano]: https://www.youtube.com/channel/UCGJRj-rzdgow2nIAZ_pTkbQ | ||
[Contrato en solidity para Aurora EVM]: https://github.com/cristian-cloudmex/NFT-culturas-latinas/blob/master/blockchain/README.md | ||
[Contrato en Rust para NEAR]: https://github.com/cristian-cloudmex/NFT-culturas-latinas/blob/master/blockchain/rust-contract/README.md | ||
[Frontend]: https://github.com/cristian-cloudmex/NFT-culturas-latinas/blob/master/frontend/README.md |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
/build | ||
/node_modules | ||
/rust-contract/contract/target | ||
/rust-contract/near-contract-standards-3.2.0/target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
essay nest song section rail leopard glove length judge hover iron strike |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,133 @@ | ||
`💻 Tecnologías utilizadas` | ||
========== | ||
|
||
para el desarrollo del smart contract se utilizo el siguiente stack de tecnologías: | ||
1. truffle framework | ||
2. node.js versión 12 | ||
3. Solidity | ||
4. MetaMask (extensión del navegador y app móvil) | ||
5. red de [aurora] | ||
|
||
`👨🏻💻 instalación local` | ||
================= | ||
|
||
1. para instalar el proyecto de forma local primero tenemos que asegurarnos de tener node js instalado en nuestro equipo, para eso es recomendado usar la herramienta de [nvm] (node version manager) e instalamos la versión 12 | ||
|
||
```bash | ||
nvm install 12.22.1 | ||
``` | ||
2. instalamos de forma global el framework de truffle | ||
```bash | ||
npm install -g truffle | ||
``` | ||
3. instalamos las dependencias del archivo `package.json` dentro del directorio `/blockchain` | ||
```bash | ||
npm install | ||
``` | ||
|
||
`👩🏻💻 despliegue del smart contract en la red de` [aurora] | ||
================ | ||
|
||
una vez instalado de forma local el proyecto es necesario desplegar el contrato en la red de [aurora], para esto primero tendremos que configurar el proyecto para usar nuestra address de la wallet de metamask asi como el seed phrase para esto configuraremos dos archivos: | ||
|
||
1. configuramos el `truffle-config.js` dentro del directorio `/blockchain` y cambiamos el address por el propio | ||
|
||
 | ||
|
||
2. configuramos el archivo `.secret` dentro del directorio `/blockchain` y escribimos nuestra seed phrase (frase de 12 palabras) como texto plano | ||
|
||
 | ||
|
||
con todo configurado pasamos a ejecutar el siguiente `script` estando dentro del directorio `/blockchain` para desplegar el contrato | ||
```bash | ||
npm run deploy:aurora | ||
``` | ||
este comando desplegará el smart contract en la red de [aurora] para que podamos interactuar posteriormente con él. | ||
|
||
 | ||
|
||
`interactuar con el smart contract` | ||
================ | ||
|
||
para interactuar con el smart contract desplegado es necesario hacer una instancia del contrato desde la consola de truffle para eso usaremos los siguientes comandos: | ||
|
||
```bash | ||
truffle console --network auroraTestnet | ||
``` | ||
|
||
```bash | ||
const cvt = await MarketPlace.deployed() | ||
``` | ||
|
||
 | ||
|
||
`📃 Métodos del smart contract` | ||
=============== | ||
para ejecutar estos metodos primero debemos tener una `instancia del contrato corriendo en la red de aurora` | ||
|
||
Método para minar un nuevo token nft | ||
------------------ | ||
|
||
```bash | ||
await cvt.minar("address", "data", precio) | ||
``` | ||
|
||
Método para transferir un token nft | ||
----------------- | ||
```bash | ||
await cvt.transferirNft("address", tokenid) | ||
``` | ||
|
||
Método para listar los token nft a la venta | ||
----------------- | ||
```bash | ||
await cvt.obtenerNfts() | ||
``` | ||
|
||
Método para comprar un token nft | ||
---------------- | ||
```bash | ||
await cvt.comprarNft(tokenid) | ||
``` | ||
|
||
Método para listar mis tokens nft adquiridos | ||
--------------- | ||
```bash | ||
await cvt.tokensOf("address") | ||
``` | ||
|
||
Método para quitar de la venta uno de mis token nft | ||
--------------- | ||
```bash | ||
await cvt.quitarDelMarketPlace(tokenid) | ||
``` | ||
|
||
Método para revender un token nft | ||
--------------- | ||
```bash | ||
await cvt.revender(tokenid, precio) | ||
``` | ||
|
||
`arbol de archivos` | ||
================ | ||
|
||
```bash | ||
├── readme.md #este archivo | ||
├── contracts #directorio con los smart contract en solidity | ||
│ ├── marketplace.sol | ||
│ └── migrations.sol | ||
├── migrations #migraciones del contrato | ||
│ ├── 1_initial_migration.js | ||
│ └── 2_market_place.js | ||
├── package-lock.json | ||
├── package.json #archivo de dependencias del proyecto | ||
├── test #directorio de los test del smart contract | ||
│ └── market_place.js | ||
├── truffle-config.js # archivo de configuración de truffle | ||
├── utils | ||
│ └── exception.js | ||
└── yarn.lock | ||
``` | ||
|
||
[nvm]: https://github.com/nvm-sh/nvm | ||
[aurora]: https://aurora.dev/ |
Oops, something went wrong.