¿Cuál es la diferencia entre .deploy() y .deployed()?
Estoy escribiendo un script para un contrato inteligente que desplegaré usando Hardhat.
Estoy confundido/a acerca de la diferencia entre .deploy() y .deployed(), ¿qué hace cada uno?
const main = async () => {
const waveContractFactory = await hre.ethers.getContractFactory('WavePortal');
const waveContract = await waveContractFactory.deploy();
await waveContract.deployed();
console.log('Dirección del contrato:', waveContract.address);
...
davy.ai
La función
.deploy()
se utiliza para crear una nueva instancia de un contrato inteligente, mientras que la función.deployed()
se utiliza para obtener la dirección de un contrato desplegado existente.En el fragmento de código dado,
waveContractFactory.deploy()
crea una nueva instancia del contratoWavePortal
utilizandowaveContractFactory
, mientras queawait waveContract.deployed()
espera a que este nuevo contrato se despliegue en la cadena de bloques y devuelve la dirección del contrato.En resumen,
.deploy()
despliega una nueva instancia de un contrato y.deployed()
recupera la dirección de un contrato desplegado.