website logo
Join the CommunityContact Us
Navigate through spaces
⌘K
Portal del Desarrollador de la Red Palm
La Red Palm
Envía un Artículo
Detalles de la red
Validadores
Primeros Pasos
Obtén Tokens PALM
Cuotas de Gas
Conéctate a la red Palm
Ejecuta un Nodo de Transacciones
Tutoriales prácticos
Configuración de la cartera MetaMask
Desplegar contratos NFT
Verificando Contratos NFT
Acuña NFTs con Hardhat
Puente
Utilizar el Puente
Integración con el Puente
Direcciones Componentes del Puente
Descontinuados
Utiliza las Herramientas Compatibles
Explorador de Bloques
Moralis
Palm Safe
The Graph
API Covalent
Docs powered by archbee 

Utilizando Truffle

36min

Resumen

Esta guía te guiará en el uso de las migraciones Truffle para desplegar un contrato inteligente NFT en la red Palm.

🏁 Requisitos Previos

  1. Obtén Tokens PALM para pagar las cuotas de transacción del despliegue.
  2. Conéctate a la red Palm
  3. Configuración de la cartera MetaMask para obtener tu llave privda.
  4. Instalar Node.js.

Tutorial

1. Inicializa tu Proyecto NPM

Shell
|
npm init



2. Instala Truffle en el Folder de Tu Proyecto

Shell
|
npm install --save truffle



3. Inicializa Truffle

Shell
|
npx truffle init



4. Instala elHDWalletProvider de Truffle

Shell
|
npm install --save @truffle/hdwallet-provider


5. Agrega tu Contrato

Utilizaremos un contrato basado en la implementación ERC-721 de la biblioteca OpenZeppelin.

a) Primero, instala la librería Open Zeppelin para heredar sus clases:

Shell
|
npm install --save @openzeppelin/contracts


b) A continuación, crea un archivo llamado NFT.sol dentro de la carpeta contracts.

Document image


c) Por último, añade el siguiente contrato inteligente al archivo NFT.sol.

Ten en cuenta que hemos llamado a nuestro contrato NFT, este puede ser cualquier nombre. El nombre será importante en el siguiente paso.



JS
|
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract NFT is ERC721 {
    constructor() ERC721("MyERC721", "M721") {}
}



6. Crea Tu Archivo de Migración

¿Qué son las migraciones?

Las migraciones son archivos JavaScript que te ayudan a desplegar contratos en la red Ethereum. Estos archivos son responsables de la puesta en escena de tus tareas de despliegue, y están escritos bajo el supuesto de que tus necesidades de despliegue cambiarán con el tiempo.

Dentro del folder migrations, crea tu filename: 1_example_migration.js

crea tu filename: 1_example_migration.js
crea tu filename: 1_example_migration.js


Recursos Adicionales

  • Migraciones Truffle



JS
|
  // At the beginning of the migration, we tell Truffle
  // which contracts we'd like to interact with via the artifacts.require() method.
  var MyContract = artifacts.require("NFT");

  //The deployer object is your main interface for staging deployment tasks,
  // and its API is described at the bottom of this page.
  module.exports = function(deployer) {
    // deployment steps
    deployer.deploy(MyContract);
  };



7. Define variables de entorno con dotenv

  • Instala dotenv
Shell
|
npm install --save dotenv


Mantén tus Claves Privadas en Secreto

Las claves privadas deben ser mantenidas en secreto y no comprometidas en ningún repositorio de código. En el ejemplo de este tutorial, el archivo .env debe añadirse a su archivo .gitignore y mantenerse local. Por ejemplo, consulta la guía de MyCrypto Protégete a ti mismo y a tus fondos.



  • Crea un archivo.gitignore

Un gran ejemplo de un archivo Solidity .gitignore puede ser consultado aquí

Agrega un archivo .gitignore
Agrega un archivo .gitignore




  • Crea un archivo .env en el folder raíz de tu proyecto, y define las variables de entorno en el archivo como se muestra a continuación
PRIVATE_KEY = #La llave privada de la cuenta que pretendes utilizar en la red Palm INFURA_API_KEY = #Tu llave API Infura
archivo .env
archivo .env






8. Edita truffle-config.js con el siguiente texto

JS
|
const HDWalletProvider = require("@truffle/hdwallet-provider");

require('dotenv').config()  // store environment variables from '.env' to process.env

module.exports = {
  compilers: {
    solc: {
      version: "^0.8.0"
    }
  },
  networks: {
    palm_testnet: {
      provider: () => new HDWalletProvider({
        providerOrUrl: `https://palm-testnet.infura.io/v3/${process.env.INFURA_API_KEY}`,
        privateKeys: [
          process.env.PRIVATE_KEY
        ]
      }),
      network_id: 11297108099, // chain ID
      gasPrice: 1000 // gas price in gwei
    },
    palm_mainnet: {
      provider: () => new HDWalletProvider({
        providerOrUrl: `https://palm-mainnet.infura.io/v3/${process.env.INFURA_API_KEY}`,
        privateKeys: [
          process.env.PRIVATE_KEY
        ]
      }),
      network_id: 11297108109,
      gasPrice: 1000
    }
  }
}



9. Despliega en el entorno de red Palm de destino

Palm Testnet
Palm Mainnet
Example Logs
|
npx truffle migrate --network palm_testnet






10. Busca tu Despliegue en el Explorador de Bloques de Red de Palm

Pega tu `contract address:` del registro del paso anterior en la barra de búsqueda. Puede tardar entre 10 y 20 minutos en aparecer.



Red de Prueba

Red Principal

URL del Explorador

https://explorer.palm-uat.xyz

https://explorer.palm.io



Si tienes éxito, verás algo parecido a esta captura de pantalla:



Document image



11. Instala Truffle-Plugin-Verify

Este plugin te permitirá verificar automáticamente el código fuente de tus contratos inteligentes directamente desde la CLI.

Shell
|
npm install -D truffle-plugin-verify



12. Agrega el plugin a tu archivo truffle-config.js 

JS
|
const HDWalletProvider = require("@truffle/hdwallet-provider");

require('dotenv').config()  // store environment variables from '.env' to process.env

module.exports = {
  plugins: ['truffle-plugin-verify'], //<== added line
  compilers: {
    solc: {
      version: "^0.8.0"
    }
  },
  networks: {
    palm_testnet: {
      provider: () => new HDWalletProvider({
        providerOrUrl: `https://palm-testnet.infura.io/v3/${process.env.INFURA_API_KEY}`,
        privateKeys: [
          process.env.PRIVATE_KEY
        ]
      }),
      network_id: 11297108099, // chain ID
      gasPrice: 1000, // gas price in gwei
    },
    palm_mainnet: {
      provider: () => new HDWalletProvider({
        providerOrUrl: `https://palm-mainnet.infura.io/v3/${process.env.INFURA_API_KEY}`,
        privateKeys: [
          process.env.PRIVATE_KEY
        ]
      }),
      network_id: 11297108109,
      gasPrice: 1000,
    }
  }
}



13. Verifica el Contrato

Utiliza el nombre de tu contrato para verificarlo en la red deseada.

Palm Testnet
Palm Mainnet
Example Log
|
npx truffle run verify NFT --network palm_testnet




Actualizado 03 Mar 2023
¿Esta página le fue útil?
Sí
No
ANTERIOR
ERC-1155
SIGUIENTE
Verificando Contratos NFT
Docs powered by archbee 
CONTENIDO
Resumen
🏁 Requisitos Previos
Tutorial
1. Inicializa tu Proyecto NPM
2. Instala Truffle en el Folder de Tu Proyecto
3. Inicializa Truffle
4. Instala elHDWalletProvider de Truffle
5. Agrega tu Contrato
6. Crea Tu Archivo de Migración
Recursos Adicionales
7. Define variables de entorno con dotenv
8. Edita truffle-config.js con el siguiente texto
9. Despliega en el entorno de red Palm de destino
10. Busca tu Despliegue en el Explorador de Bloques de Red de Palm
11. Instala Truffle-Plugin-Verify
12. Agrega el plugin a tu archivo truffle-config.js 
13. Verifica el Contrato