Soy nuevo en el uso de cascos y estaba tratando de averiguar cómo funciona. La documentación parece un poco confusa ya que hay varias capas de abstracciones y no entiendo cómo ethers.getSigners() usa mi clave privada. ¿Está utilizando implícitamente el archivo de configuración del casco definido en la raíz de mi directorio? ¿También está predefinida y aplicada la estructura del proyecto del casco? Si no, ¿cómo sabe getContractFactory dónde buscar el artefacto?
const { ethers } = require("hardhat"); async function main() { const [deployer] = await ethers.getSigners(); console.log("Account balance:", (await deployer.getBalance()).toString()); const VendingMachine = await ethers.getContractFactory("VendingMachine") const vendingMachine = await VendingMachine.deploy() await vendingMachine.deployed() console.log("Contract deployed to address:", vendingMachine.address) }El nodo Hardhat utiliza una frase mnemotécnica predeterminada ( docs ) que se puede derivar en varios pares de claves privadas/públicas (20 de forma predeterminada). Estas cuentas están desbloqueadas en el nodo local.
Su fragmento usa el paquete ethers NPM (importado por hardhat ) que usa la primera cuenta desbloqueada para enviar transacciones (incluidas las transacciones de implementación), a menos que se especifique lo contrario.
La estructura del proyecto (por ejemplo contracts y carpetas de test ) está definida por el marco Hardhat, pero puede cambiar la estructura de carpetas predeterminada a una personalizada ( docs ).
Hardhat es una gran herramienta que tiene una configuración prefabricada para facilitar el desarrollo, hardhat automáticamente inyecta los datos de los firmantes a su versión de ethers, de esa manera automáticamente tiene los firmantes predeterminados o uno hecho con las claves privadas o mnemotécnicas que puede definir. en la configuración del casco, si no selecciona un firmante específico cuando crea una instancia de contrato, el casco también es lo suficientemente inteligente como para seleccionar el primer elemento en la matriz de firmantes.
Acerca de getContractFactory, el casco tiene algunas rutas predefinidas para almacenar los datos del contrato compilados, pero esto se puede sobrescribir en la configuración del casco si lo desea, de esa manera el casco sabe dónde buscar los datos que está solicitando