私はTruffleフレームワークを使って契約を展開しようとしていましたが、最近私は開発ネットワーク上でこれらの契約をテストしています。継承を使用する場合、どのように開発者ネットワークにトリュフ契約を展開するのですか?
私の契約は非常に大きく、テストネットに展開しようとすると、契約がガス制限を超えないように分割するよう指示されました。しかし、この契約を念頭において、デフォルトのガス制限で開発ネットワークに展開しました。
私は契約の一部を取り出し、ベースから別の契約を引き出し、そこで削除されたセクションを追加しました。
-
はdidnの100,000,000に私のgasLimitを変更
- :私が撮った
'Error: The contract code couldn't be stored, please check your gas amount.'
ので、手順はことだった:私は、私が今エラーが出る再びそれをテストするために開発ネットワークに展開しようとしましたこの私の理解はそれまたはそのあれば契約は抽象的であるということである抽象的な 『
- 「Tはそれを私の契約があるかどうかを確認するために
チェックを解きます』親には実装されていない関数があります。私はしません。
は、私はその後 導出契約からコンストラクタ以外のすべてのコードを削除し、私はまだ、私はファイルを削除し
このエラーを取得し、展開はちょうど私の基本契約などで働いていましたしたがって、親契約は実装されていない関数を持たず、空の契約を導出しようとするとまだ動作しません。
- その後、マイグレーションファイルを分割して、マイグレーションが別々に起こるようにしてください。 はまだ運がありません。
私の親契約は約300行ですので、ここにそれをすべてポストする必要はありません。しかし、それは開発者に500行の長さだったとき現在は250行しかなく、275行の引き出し契約があり、展開しません。
エラー:
Running migration: 2_deploy_contracts.js
Replacing ERC20Token...
... 0xcae613274de1aa278e7ae5d1239f43445132a417d98765a4f227ea2439c9e4fc
ERC20Token: 0xeec918d74c746167564401103096d45bbd494b74
Replacing Crowdsale...
... 0x0ffc7291d84289c1391a81ed9f76d1e165285e3a3eadc065732aa288ea049b3a
Crowdsale: 0x0d8cc4b8d15d4c3ef1d70af0071376fb26b5669b
Saving successful migration to network...
... 0x7f351d76f61f7b801913f59b808688a2567b64933cdfdcf78bb18b0bf4e4ff69
Saving artifacts...
Running migration: 3_more_deployed_contracts.js
Deploying StagedSale...
... 0x216136bb24d317b140a247f10ec4d6791559739111a85932133cd4a66b12a1d9
Error encountered, bailing. Network state unknown. Review successful
transactions manually.
Error: The contract code couldn't be stored, please check your gas
amount.
at Object.callback
(/usr/local/lib/node_modules/truffle/build/cli.bundled.js:329221:46)
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:39618:25
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:331159:9
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:175492:11
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:314196:9
at XMLHttpRequest.request.onreadystatechange
(/usr/local/lib/node_modules/truffle/build/cli.bundled.js:329855:7)
私の基本契約を投稿するには大きすぎる、そしてそれは、その抽象的ではないことを意味独自に罰金展開します。
私の導出契約は次のとおりです。
pragma solidity ^0.4.16;
import "./SafeMath.sol";
import "./Crowdsale.sol";
contract StagedSale is Crowdsale {
using SafeMath for uint256;
/*
* Setup the contract and transfer ownership to appropriate beneficiary
*/
function StagedSale
(
uint256 _stage1Duration,
uint256 _stage2Duration
) public {
uint256 stage1duration = _stage1Duration.mul(1 minutes);
uint256 stage2duration = _stage2Duration.mul(1 minutes);
}
導出契約のための私のマイグレーションファイル:
var StagedSale = artifacts.require("./StagedSale.sol");
module.exports = function(deployer) {
const stage1Duration = 1;
const stage2Duration = 1;
deployer.deploy(StagedSale, stage1Duration, stage2Duration);
};
私はこれがトリュフの展開に共通の問題かもしれ恐れるように私はここにこの質問を掲載しています。
結論として、私はこれが実際のガス限界値とは関係なく、何らかの未知の理由で失敗し、このエラーメッセージをとにかく印刷しているとは思わない。
私は、額面でエラーメッセージを受け取る傾向があります。 web3.eth.estimateGas()はあなたに何を伝えますか? https://ethereum.stackexchange.com/questions/10974/when-i-am-deploying-contract-getting-the-error-the-contract-code-couldnt-be-sを見てください –
私は見ましたその質問とその理由は、あなたの質問が私の契約は500以上のラインを持つ開発ネットワーク上でうまく展開質問の始まりをメモした場合、それはできません。私はそれをテストネットに展開しようとしましたが、それは大きすぎると言いました。 私は契約を300行の基本契約に分割し、より多くの機能を追加する前に約30行の継承契約を締結しました。 開発サーバーに展開しようとするとこのエラーが表示されますそれが何をしているのかをテストしても、私の以前の500 +ライン契約でうまくいきました。 –