Peera.

Publicación

Comparte tu conocimiento.

P&R expertos

How to fund a account with ETH on a local fork or local node in hardhat?

Let's say I have an account in hardhat

[owner, user, user2] = await ethers.getSigners();
userAddress = user.address;

How would I fund userAddress with funds on my local fork?

  • blockchain
  • solidity
1
3
Cuota
Comentarios
.

Respuestas

3
0x8744...6532.
Oct 12 2022, 20:50

You can use setBalance from the hardhat docs

    await network.provider.send("hardhat_setBalance", [
      userAddress,
      "0x1000000000000000000000000", // we are giving ourselves a LOT eth
    ]);
    // then we can print out how much we have in hex
    console.log(
      await network.provider.send("eth_getBalance", [
        impersonatedSigner.address,
      ])
    );
1
Mejor Respuesta
Comentarios
.
Sergey Ilin.
Oct 12 2022, 21:02

Whenever Hardhat spins up a local instance, it creates pre-funded accounts. You can access those accounts if import ethers from hardhat.

const { ethers } = require("hardhat");

async function main() {
  const accounts = await ethers.getSigners();
  const provider = ethers.provider;

  for (const account of accounts) {
      console.log("%s (%i ETH)", account.address, ethers.utils.formatEther(
              await provider.getBalance(account.address)
          )
      );
  }
}


main()
  .then(() => process.exit(0))
  .catch(error => {
    console.error(error);
    process.exit(1);
  });
0
Comentarios
.
Marcador.
Mar 15 2024, 07:17

Financiar una cuenta con ETH en una bifurcación local o un nodo local en Hardhat es un paso crucial para probar los contratos inteligentes en condiciones que imitan la red principal de Ethereum. Este tutorial utiliza palabras clave esenciales para guiarte a lo largo del proceso de una manera estructurada y optimizada:

  1. mkdir mainnet-fork-tutorial**Crea un proyecto de Javascript: inicializa tu proyecto abriendo una terminal e introduciendo el comando para crear un directorio para tu tutorial, por ejemplo. Navega hasta el directorio de tu proyecto y configura un nuevo proyecto de JavaScript.

2.Instala Hardhat: En el directorio de tu proyecto, usa npm para instalar Hardhat, que es la herramienta principal de este tutorial. Ejecuta npm install --save-dev hardhatpara añadirlo a las dependencias de desarrollo de tu proyecto.

3.Instale Dotenv: Para administrar de forma segura su clave de API y su clave privada, necesitará instalar el paquete dotenv. npm i dotenvEjecuta en tu terminal. Este paso garantiza que puedas cargar variables de entorno desde un .envarchivo en tu proyecto, manteniendo segura la información confidencial, como tu clave privada y tu clave de API.

  1. npx hardhatConfigura tu proyecto Hardhat: inicializa tu proyecto Hardhat ejecutándolo en la terminal. Sigue las instrucciones para crear un proyecto de muestra y, cuando se te pregunte, puedes optar por crear un proyecto de JavaScript y requirenomicfoundation/hardhat-toolbox, que es un conjunto de herramientas y complementos útiles para el desarrollo.

5.Configurar Hardhat para la bifurcación de la red principal: En el archivo de configuración de Hardhat (hardhat.config.js), añada una configuración de red para Hardhat que especifique la bifurcación de la red principal. networks``hardhatEsto implica usar la forkingpropiedad para definir una nueva red denominada que incluya la opción. Necesitarás una clave de API para un servicio completo de nodos de archivado, como Alchemy o Infura. La configuración podría tener un aspecto similar al siguiente:

async function main() {
  const [deployer] = await ethers.getSigners();
  const receiver = "0xYourAccountAddress";
  const amount = ethers.utils.parseEther("1.0");

  const tx = await deployer.sendTransaction({
    to: receiver,
    value: amount,
  });

  console.log(`Funded ${receiver} with 1 ETH.`);
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});

  1. npx hardhat node --fork https://eth-mainnet.alchemyapi.io/v2/yourAlchemyApiKey --fork-block-number 12345678Bifurcar la red principal: Con la configuración de Hardhat configurada para la bifurcación de la red principal, inicie un nodo Hardhat local que bifurque la red principal de Ethereum ejecutando. Este comando se usa npx hardhat nodepara bifurcar la red principal, lo que te permite interactuar con el estado y los contratos preexistentes de la red Ethereum. yourAlchemyApiKeySustitúyala por tu clave de API actual y, si lo deseas, especifica un número de bloque del que derivar.

7.Deposita fondos en tu cuenta: Para depositar fondos en una cuenta con ETH en este entorno local, puedes usar la consola o los scripts de Hardhat. Primero, asegúrate de tener una cuenta con acceso a su clave privada. Puedes generar una nueva cuenta con Hardhat o usar una cuenta Ethereum existente. .envEn tu PRIVATE_KEY=yourPrivateKeyarchivo, almacena la clave privada de la siguiente manera:.

8.Ejecuta un script de financiación: crea un script en tu proyecto que envíe ETH a tu cuenta desde una de las cuentas prefinanciadas en el nodo Hardhat. fundAccount.jsEste es un ejemplo de scriptnpx hardhat run scripts/fundAccount.js --network localhost, con el que puedes ejecutar:

async function main() {
  const [deployer] = await ethers.getSigners();
  const receiver = "0xYourAccountAddress";
  const amount = ethers.utils.parseEther("1.0");

  const tx = await deployer.sendTransaction({
    to: receiver,
    value: amount,
  });

  console.log(`Funded ${receiver} with 1 ETH.`);
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});

9.Verifica el saldo: verifica el saldo en ETH de tu cuenta ejecutando una sencilla tarea o script de Hardhat que comprueba e imprime el saldo de la cuenta.

0
Comentarios
.

Sabes la respuesta?

Inicie sesión y compártalo.

Web3 (also known as Web 3.0) is an idea for a new iteration of the World Wide Web which incorporates concepts such as decentralization, blockchain technologies, and token-based economics.

142Publicaciones198Respuestas
Usamos cookies para asegurarnos de que obtenga la mejor experiencia en nuestro sitio web.
Más información