当我指定确切的气体限制时,为什么会出现超出气体限制的错误?

时间:2018-05-23 18:29:37

标签: ethereum solidity truffle

我正在使用松露部署合同,当我指定气体限制作为我想要用于交易的气体时,我总是得到超过气体限制的错误。为什么会这样?

编辑 我想要做的是将加密kitty KittyCore.sol合同部署到我的本地devnet。我正在使用松露来部署它。

从另一页How to deploy truffle contract to dev network when using inheritance?,我发现由于存在合同层次结构,我需要按顺序部署合同。我使用了这种技术,并且我能够部署7个合同中的4个,第五个,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);
})

我一直在摆弄这个号码,似乎没什么用。

1 个答案:

答案 0 :(得分:3)

所以我能够部署它。我做的是重置我的区块链,并将gasLimit设置为0x8000000并给每个合同带来麻烦的气体值0x7000000,并进行部署。有趣的是,它不会再次部署。我想在几个街区开采后调整了gasLimit,因为我收到了一个错误,说我超出了限制