es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

añadiendo un argumento constructor al script de migración en Truffle

Tengo aquí un contrato ERC-20 bastante simple:

pragma solidity 0.8.1;

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

contract SonnyCoin is ERC20 {
      constructor(uint256 initialValue) public ERC20("SonnyCoin", "SCN") {
             _mint(msg.sender, initialValue);
      }
}

Y luego mi código de migración para el contrato es el siguiente:

const SonnyCoin = artifacts.require("SonnyCoin");
const web3 = require("web3");
const initialValue = web3.utils.toWei("1", "ether");

module.exports = function(deployer) {
  deployer.deploy(SonnyCoin(initialValue))
  // También he intentado deployer.deploy(SonnyCoin({value: initialValue}))
}

Solo quiero agregar el parámetro para convertirlo en un contrato de emisión dinámica, pero no estoy seguro de lo que me falta. He consultado la documentación de Truffle sobre los scripts de migración y sus parámetros aquí y parece que estoy haciendo lo que la documentación indica, pero evidentemente me falta una pieza clave. Cualquier ayuda para agregar un parámetro a la función constructora será apreciada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para agregar un parámetro a la función constructora del contrato SonnyCoin, debes modificar el código de migración de la siguiente manera:

    const SonnyCoin = artifacts.require("SonnyCoin");
    const web3 = require("web3");
    const initialValue = web3.utils.toWei("1", "ether");
    
    module.exports = function(deployer) {
      deployer.deploy(SonnyCoin, initialValue);
    }
    

    Ten en cuenta que al llamar a deployer.deploy(), debes pasar los argumentos del constructor del contrato como parámetros separados, no como un solo objeto. En este caso, el argumento initialValue se pasa como segundo parámetro a deploy(). Con esta modificación, el contrato se desplegará con el suministro inicial específico de tokens SonnyCoin.

Comments are closed.