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 

ERC-1155

36min

Resumen

Pros

  • Permite la creación de múltiples tipos de tokens dentro de un mismo contrato
  • Admite tokens fungibles y no fungibles
  • Más eficiente y rentable para crear una amplia gama de NFTs

Cons

  • Estándar relativamente nuevo y complejo
  • Apoyo limitado de las carteras e intercambios de Ethereum
  • Requiere conocimientos avanzados de desarrollo para su aplicación


🏁 Requisitos Previos

  • Utilizando Hardhat


Tutorial

1. Escribe tu contrato ERC-1155

Utilizaremos un contrato basado en la [implementación ERC-1155]() de la biblioteca OpenZeppelin.

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



Shell
|
npm install @openzeppelin/contracts




b) Ahora, crea un archivo llamado NFT_1155.sol dentro del folder contracts.

Document image


c) Finalmente, añade el siguiente contrato inteligente al archivo NFT_1155.sol .

Ten en cuenta que hemos llamado a nuestro contrato NFT_1155,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/ERC1155/ERC1155.sol";

contract NFT_1155 is ERC1155 {
    constructor(string memory uri) ERC1155(uri) {}
}



2. Instala Hardhat Deploy

Shell
|
npm install -D hardhat-deploy



3. Instala una librería Ethereum

En este ejemplo, utilizaremos Ether.js

Shell
|
npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0



4. 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í

Document image

  • 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
Document image






5. Edita hardhat.config.js con el siguiente texto:

  • Puedes agregar campos compatibles adicionales en el archivo hardhat.config.js.
JS
|
require("dotenv").config()
require("@nomiclabs/hardhat-ethers")
require("hardhat-deploy")

const key = '';

module.exports = {
  solidity: "0.8.17",
  settings: {
    optimizer: {
      enabled: true,
      runs: 1000000,
    },
  },
  mocha: {
    timeout: 90000,
  },
  networks: {
    hardhat: {
      initialBaseFeePerGas: 0,
      blockGasLimit: 18800000,
    },
    palm_testnet: {
      url: `https://palm-testnet.infura.io/v3/${process.env.INFURA_API_KEY}`,
      accounts: [`0x` + process.env.PRIVATE_KEY],
      gasPrice: 1000,
      saveDeployments: true,
      deploy: ["scripts/"],
    },
    palm_mainnet: {
      url: `https://palm-mainnet.infura.io/v3/${process.env.INFURA_API_KEY}`,
      accounts: [`0x` + process.env.PRIVATE_KEY],
      gasPrice: 1000,
      saveDeployments: true,
      deploy: ["scripts/"],
    },
  },
  namedAccounts: {
    deployer: 0
  },
}






6. Compila tu Contrato

Para asegurarnos de que todo funciona hasta ahora, vamos a compilar nuestro contrato:

Shell
Example Response
|
npx hardhat compile



7. Escribe un script de despliegue

a) Dirígete al folder scripts y crea un nuevo archivo llamado deploy_NFT_1155.js

Document image


b) Agrega el código mostrado a continuación

JS
|
module.exports = async ({
    getNamedAccounts,
    deployments,
    }) => {
    const {deploy} = deployments;
    const {deployer} = await getNamedAccounts();

    console.log("Contract deployed to address:", deployer);

    // Deploy "NFT" if the contract was never deployed or if the code has changed since the last deployment
     await deploy('NFT_1155', {
        from: deployer,
        gasLimit: 4000000,
        args: ["https://NFT1155/{id}.json"],
        log: true
    });
};



8. Despliega en el entorno de red Palm de destino

Palm Testnet
Palm Mainnet
Example log
|
npx hardhat --network palm_mainnet deploy




  • TLDR; Cómo Funciona Esto
  • La tarea ejecutará los scripts en la carpeta scripts y guardará los despliegues del contrato en el disco. Cada despliegue se guarda en la carpeta deployments para la red específica.


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



Red de prueba

Red principal

URL del explorador

https://explorer.palm-uat.xyz

https://explorer.palm.io

Pega la dirección de tu contrato en la barra de búsqueda.



Obtén la dirección de tu contrato de 2 maneras:

  • Console.log() output Contract deployed to address: contractNumber
  • En deployments/palm_testnet/NFT_1155.json o deployments/palm_mainnet/NFT_1155.json donde también encontrarás la información ABI (Application Binary Interface).



Verás algo parecido a esto una vez desplegado correctamente 👇

Document image



10. Verifica a través de Sourcify

Palm Testnet
Palm Mainnet
Example log
|
npx hardhat --network palm_mainnet sourcify

  • Utilizando Sourcify


Siguiente Paso 👉 Acuña tu NFT

Usando el Contrato Inteligente que acabas de desplegar ahora puedes Acuña NFTs con Hardhat

Actualizado 03 Mar 2023
¿Esta página le fue útil?
Sí
No
ANTERIOR
ERC-721
SIGUIENTE
Utilizando Truffle
Docs powered by archbee 
CONTENIDO
Resumen
🏁 Requisitos Previos
Tutorial
1. Escribe tu contrato ERC-1155
2. Instala Hardhat Deploy
3. Instala una librería Ethereum
4. Define variables de entorno con dotenv
5. Edita hardhat.config.js con el siguiente texto:
6. Compila tu Contrato
7. Escribe un script de despliegue
8. Despliega en el entorno de red Palm de destino
9. Busca tu Despliegue en el Explorador de Bloques de Red de Palm
10. Verifica a través de Sourcify
Siguiente Paso 👉 Acuña tu NFT