gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:56:59 27 4
gpt4 key购买 nike

我正在使用松露部署合约,当我将气体限制指定为我想要用于交易的气体时,我总是会收到超出气体限制的错误。为什么会出现这种情况?

编辑我想做的是将加密小猫 KittyCore.sol 合约部署到我的本地开发网络。我正在使用 truffle 来部署它。

从另一页,How to deploy truffle contract to dev network when using inheritance? ,我发现由于存在合约层次结构,所以我需要按顺序部署我的合约。我使用了这种技术,我能够部署 7 个合约中的 4 个,其中第五个是 KittyAuction,出现以下错误:合约代码无法存储,请检查您的 Gas 量

下面发布的是我的松露部署程序脚本

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);
})
})
})
})
})
});
};

我的 Gas 限制设置为 18000000000。此 Gas 数是通过在部署失败的实际合约上运行以下函数来生成的

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

我一直在摆弄这个数字,但似乎没有任何作用。

最佳答案

所以我能够部署它。我所做的就是重置我的区 block 链,并将 GasLimit 设置为 0x8000000,并为每个有麻烦的合约指定 Gas 值 0x7000000,然后部署。但有趣的是,它不会再次部署。我猜想在开采了几个区 block 后,gasLimit 进行了调整,因为我收到一条错误消息,说我超出了限制

关于ethereum - 当我指定确切的 Gas 限制时,为什么会出现超出 Gas 限制的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50495154/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com