[問題]
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)
・他に試したこと
- buildファイルの削除
- truffleのグレードダウン(v4.0 beta)
- gas amountの調整

あなたの回答
tips
プレビュー