console.log no funciona en scripts/deploy.js y contracts/WavePortal.sol en Hardhat. Cuando ejecuto el comando npx hardhat run scripts/deploy.js solo muestra "" Compilado 1 archivo de Solidez con éxito "" .
No funciona en mi entorno HardHat. Ni siquiera cuando uso INFURA y ejecuto el comando npx hardhat run scripts/deploy.js --network ropsten . Busqué en todas partes, desde YouTube hasta StackOverflow, pero no obtuve ninguna solución. Solo tengo una pista --->
Dado que el código del contrato se ejecuta en la cadena, verá el archivo console.log de la salida de la cadena, no en la salida de la consola de JavaScript. Pero no puedo conseguir esto... Por favor, ayúdame.
scripts/deploy.js
const [owner, randomPerson] = await hre.ethers.getSigners(); const waveContractFactory = await hre.ethers.getContractFactory("WavePortal"); const waveContract = await waveContractFactory.deploy(); await waveContract.deployed(); console.log("Contract deployed to:", waveContract.address); console.log("Contract deployed by:", owner.address); let wavecount; wavecount = await waveContract.getTotalWaves(); let waveTxn = await waveContract.wave(); await waveTxn.wait(); wavecount = await waveContract.getTotalWaves(); }; const runMain = async () => { try { await main(); process.exit(0); // exit Node process without error } catch (error) { console.log(error); process.exit(1); // exit Node process while indicating 'Uncaught Fatal Exception' error } // Read more about Node exit ('process.exit(num)') status codes here: https://stackoverflow.com/a/47163396/7974948 };contratos/WavePortal.sol
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.0; import "hardhat/console.sol"; contract WavePortal { uint256 totalWaves; constructor() { console.log("Yo yo, I am a contract and I am smart"); } function wave() public { totalWaves += 1; console.log("%s has waved!", msg.sender); } function getTotalWaves() public view returns (uint256) { console.log("We have %d total waves!", totalWaves); return totalWaves; } }Hizo esto con una prueba rápida en remix, parece que su contrato inteligente funciona bien e imprime las líneas.
console.log: Yo yo, I am a contract and I am smart [vm]from: 0x5B3...eddC4to: WavePortal.(constructor)value: 0 weidata: 0x608...17274logs: 0hash: 0x1d0...16b87 transact to WavePortal.wave pending ... console.log: 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 has waved! [vm]from: 0x5B3...eddC4to: WavePortal.wave() 0xd91...39138value: 0 weidata: 0x6fe...15b44logs: 0hash: 0xbda...02370 call to WavePortal.getTotalWaves console.log: We have 1 total waves!Su deployment.js también se ve bien. Podría ser un problema de configuración aparte del código.
Después de esforzarme tanto conseguí la solución. De hecho, he instalado la extensión de código vs Hardhat+Solidity proporcionada oficialmente por Hardhat . Entonces, lo desinstalé e instalé la extensión Solidity de Juan Blanco y bajé su versión a v0.0.135 y ahora funciona absolutamente bien.