Почему я получаю ошибку превышения лимита газа, когда я указываю точный лимит газа? - PullRequest
0 голосов
/ 23 мая 2018

Я развертываю контракт с использованием трюфеля, и когда я указываю лимит газа в качестве газа, который я хочу использовать для транзакции, я всегда получаю ошибку превышения лимита газа.Почему это происходит?

edit Я пытаюсь развернуть криптографический контракт KittyCore.sol с котятами в моем локальном devnet.Я использую трюфель, чтобы развернуть его.

С другой страницы, Как развернуть трюфельный контракт в сети разработчика при использовании наследования? , я обнаружил, что, поскольку существует иерархия контрактов, мне нужно развертывать свои контракты по порядку.Я использовал эту технику, и я могу развернуть 4 из 7 контрактов, с пятым, KittyAuction, выдавая следующую ошибку: Код контракта не может быть сохранен, пожалуйста, проверьте количество газа

Опубликовано нижемой сценарий развертывания трюфеля

var KittyCore = artifacts.require("KittyCore");
var KittyMinting = artifacts.require("KittyMinting");
var KittyAuction = artifacts.require("KittyAuction");
var KittyBreeding = artifacts.require("KittyBreeding");
var KittyOwnership = artifacts.require("KittyOwnership");
var KittyBase = artifacts.require("KittyBase");
var KittyAccessControl = artifacts.require("KittyAccessControl");
var SaleClockAuction = artifacts.require("SaleClockAuction");

module.exports = function (deployer) {
    deployer.deploy(KittyAccessControl).then(function () {
        return deployer.deploy(KittyBase).then(function () {
            return deployer.deploy(KittyOwnership).then(function () {
                return deployer.deploy(KittyBreeding).then(function () {
                    return deployer.deploy(KittyAuction, {
                        gas: 400000
                    }).then(function () {
                        return deployer.deploy(KittyMinting).then(function () {
                            return deployer.deploy(KittyCore);
                        })
                    })
                })
            })
        })
    });
};

Мой лимит газа установлен на 18000000000. Этот номер газа получается при запуске следующей функции для фактического контракта, который не удается развернуть

var gasPrice;
KittyAuction.web3.eth.getGasPrice(function (error, result) {
    gasPrice = Number(result);
    console.log(gasPrice);
})

Iвозился с этим номером и, похоже, ничего не работает.

1 Ответ

0 голосов
/ 26 мая 2018

Так что я смог развернуть его.Я сбросил блокчейн, установил для gasLimit значение 0x8000000 и дал каждому контракту, который вызывал беспокойство, значение газа 0x7000000, и он развернулся.Забавно, но он не развернется снова.Я думаю, что gasLimit настроен после того, как несколько блоков были добыты, потому что я получил сообщение о том, что я превысил предел

...