前提・実現したいこと
SolidityとRailsでスマートコントラクトによる送金システムを作成しています。
solファイルのコンパイル周りで下のエラーsoが発生しました。
発生している問題・エラーメッセージ
Ethereum::CompilationError in TopController#index ""'C:/Users/tenni/rails-eth/contracts/exam.sol'"" is not found
該当のソースコード
contracts/exam.sol
solidity
1pragma solidity >=0.4.22<0.6.0; 2 3contract exam { 4 string public teststring;// 5 address public testaddress; 6 function register(string memory _test) public { 7 teststring = _test; 8 testaddress = msg.sender; 9 } 10 function getting() public view returns(string memory,address) { 11 return (teststring, testaddress); 12 } 13}
app/controllers/top_controller.rb
ruby
1class TopController < ApplicationController 2 ETHEREUM_TOKEN_PATH = "#{Dir.pwd}/contracts/exam.sol" 3 GANACHE_URL = 'HTTP://127.0.0.1:7545' 4 5 def index 6 @client = Ethereum::HttpClient.new(GANACHE_URL) #① 7 @contract = Ethereum::Contract.create(file: ETHEREUM_TOKEN_PATH, client: @client) #② 8 @contract.deploy_and_wait('Hello, World!') #③ 9 end 10end
試したこと
Windows用のsolファイルコンパイラであるsolc.exe(0.4.24用)をこちらのサイトからインストールし、pathを通して以下のコマンドをターミナルで打ちました。
$ solc exam.sol
その結果上のようなエラーが生じました。エラーではexam.solが存在しないと言っていますが、もちろんexam.solはあります。
誰かわかる方がいらっしゃいましたら教えていただきたいです。よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Windows 10
Ruby 2.4.6p354
Ruby on Rails 5.2.3
gem ethereum.rbを使用
Ganacheを使用
VScodeを使用
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/12 04:16