Солидность | Трюфель | Веб3 | Предел газа

Я пытаюсь развернуть контакт, используя приведенный ниже код в тестовой сети rinkeby:

    const result = await new web3.eth.Contract(JSON.parse(interface))
        .deploy({data: bytecode, arguments: [100, accounts[0]]})
        .send({gas: 1000000, from: accounts[0]});

Attempting to deploy from acount  0xBE80D3f83530f2Ed1214BE5a7434E0cd32177047
(node:3862) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: The contract code couldn't be stored, please check your gas limit.

When I increase the gas limit to 10000000
I get below error. Not able to understand what is wrong with the deployment

Attempting to deploy from acount  0xBE80D3f83530f2Ed1214BE5a7434E0cd32177047
(node:3870) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: exceeds block gas limit

1 ответ

Вы превышаете лимит газа. Возможно, вы выполняете слишком много работы над конструктором или просто отправляете слишком низкий лимит газа.

Предел газа Rinkeby составляет около 7,4 млн, так что вы можете попробовать увеличить газ с: 1 млн до ~7,4 млн.

Если ваш контракт слишком большой, вы можете разделить его на несколько контрактов или, как я уже говорил, сократить объем работы, выполняемой над конструктором.

Другие вопросы по тегам