質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1647閲覧

truffleのcontractの継承を行った際にmigrateがうまくいかない

sh-tatsuno

総合スコア17

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/02/13 16:56

編集2018/02/18 06:22

[問題]
solidityで継承を行った際にcompileはうまくいくのですが、migrateがうまく動きません。
継承を行わずコピペした場合はmigrateによるエラーは確認されません。

最終的に、継承していきながらプログラムを複数ファイルに分けて開発していきたいのですが、下記に問題がございますでしょうか。

truffle compile truffle develop > migrate

この時、以下のようなエラーメッセージが出ます

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 (/Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/contract.js:147:1) at /Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/method.js:142:1 at /Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/requestmanager.js:89:1 at /Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/truffle-migrate/index.js:225:1 at /Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/truffle-provider/wrapper.js:134:1 at XMLHttpRequest.request.onreadystatechange (/Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/httpprovider.js:128:1) at XMLHttpRequestEventTarget.dispatchEvent (/Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:64:1) at XMLHttpRequest._setReadyState (/Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:354:1) at XMLHttpRequest._onHttpResponseEnd (/Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:509:1) at IncomingMessage.<anonymous> (/Users/sh-tatsuno/.nvm/versions/node/v8.8.1/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:469:1)

・ソースコード

Token1.sol

solidity

1pragma solidity ^0.4.18; 2 3contract Token1 { 4 string public name; //トークンの名前 5 string public symbol; //トークンの単位 6 uint8 public decimals; //小数点以下の桁数 7 uint256 public totalSupply; //トークンの総量 8 mapping (address => uint256) public balanceOf; //各アドレスの残高 9 10 //イベント通知関数 11 event Transfer(address indexed from, address indexed to, uint256 value); 12 13 function Token1(uint256 _supply, string _name, string _symbol, uint8 _decimals) public { 14 balanceOf[msg.sender] = _supply; 15 name = _name; 16 symbol = _symbol; 17 decimals = _decimals; 18 totalSupply = _supply; 19 } 20 21 function transfer(address _to, uint256 _value) public { 22 if(balanceOf[msg.sender] < _value) revert(); 23 if(balanceOf[_to] + _value < balanceOf[_to]) revert(); 24 25 balanceOf[msg.sender] -= _value; 26 balanceOf[_to] += _value; 27 28 Transfer(msg.sender, _to, _value); 29 } 30 31}

Token2.sol

solidity

1pragma solidity ^0.4.18; 2import "./Token1.sol"; 3 4contract Token2 is Token1 { 5 function Token2(uint256 _supply, string _name, string _symbol, uint8 _decimals) public { 6 balanceOf[msg.sender] = _supply; 7 name = _name; 8 symbol = _symbol; 9 decimals = _decimals; 10 totalSupply = _supply; 11 } 12}

migrationsは

2_token1_deploy.js

javascript

1const Token1 = artifacts.require('./Token1.sol') 2 3module.exports = (deployer) => { 4 let name = 'token1' 5 let symbol = 'tk1' 6 decimals = 0 7 totalSupply = 10000 8 deployer.deploy(Token1, totalSupply, name, symbol, decimals) 9} 10

3_token2_deploy.js

javascript

1const Token1 = artifacts.require('./Token2.sol') 2 3module.exports = (deployer) => { 4 let name = 'token2' 5 let symbol = 'tk2' //トークンの単位 6 decimals = 0 //小数点以下の桁数 7 totalSupply = 10000 8 deployer.deploy(Token2, totalSupply, name, symbol, decimals) 9} 10

・ versionについて
Mac High Sierra 10.13.3
Truffle v4.0.6 (core: 4.0.6)
Solidity v0.4.19 (solc-js)

・他に試したこと

  1. buildファイルの削除
  2. truffleのグレードダウン(v4.0 beta)
  3. gas amountの調整

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問