Solidity supera el límite de gas del bloque durante las pruebas de Mocha con Ganache-cli

¿Cómo puedo aumentar el límite de gas en este caso? El mensaje de error es "n: Excede el límite de gas del bloque" o "la tarifa base excede el límite de gas".

Creo que hay algún tipo de API que necesito para establecer el límite de gas del bloque aquí .

¿Son mis contratos demasiado grandes? ¿Debería probar cada contrato uno por uno? Por favor avise. Gracias.

excede el límite de gas del bloque de ganache

Respuestas (2)

el mensaje de error

"n: Excede el límite de gas del bloque"

significa que su transacción ha declarado un valor de gas superior al máximo permitido en la red. Un cliente rechazará dicha transacción.

Con ganache-cli puedes lanzar con una mayor cantidad de gas disponible con el -lparámetro:

ganache-cli -l 8000000

Lanzará ganache con un límite de gas por bloque de 8M.


De la documentación Léame , tiene un modo en el que pasa opciones adicionales en un parámetro cuando inicia ganache. Allí se puede configurar gasLimit.

const ganache = require("ganache-cli");
const options = { gasLimit: 8000000 };
const server = ganache.server(options);
server.listen(port, (err, blockchain) => {
    /* */
});
Hola Ismael, ¿cómo puedo agregar este comando dentro de mi archivo Javascript para poder ejecutar este archivo durante las pruebas de Mocha con Ganache-cli? Gracias
@ user2965665 ¿Cómo inicia su instancia de ganache? Puede pasar más opciones en el parámetro adicional, puede configurar gasLimitdesde allí.
Gracias. Lo descubrí: const proveedor = ganache.provider(opciones);

Gracias a la solución de Ismael:

const ganache = require('ganache-cli');
const Web3 = require('web3');

const options = { gasLimit: 8000000 };
const provider = ganache.provider(options);
// quote from doc "Both .provider() and .server() take a single object
// which allows you to specify behavior of ganache-cli"
// https://github.com/trufflesuite/ganache-cli#using-ganache-cli
const web3 = new Web3(provider);