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

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

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

Solidityは、仮想通貨イーサリアム上で実行できるプログラミング言語。スマートコントラクトやDAppsなどの開発・実装に用いられます。コントラクト指向・高水準な言語のため、イーサリアム上で動作するEVM Codeに翻訳することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

1回答

365閲覧

solファイルをコンパイルできない

Kiichiro-T

総合スコア4

Solidity

Solidityは、仮想通貨イーサリアム上で実行できるプログラミング言語。スマートコントラクトやDAppsなどの開発・実装に用いられます。コントラクト指向・高水準な言語のため、イーサリアム上で動作するEVM Codeに翻訳することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2019/10/10 04:18

前提・実現したいこと

Ruby on Rails と Solidity でEthereumの送金システムを作成しています。
solファイルをコンパイルしようとするとエラーが出てしまいます。

発生している問題・エラーメッセージ

Errno::ENOENT in TopController#index No such file or directory - solc --bin --abi --optimize 'C:/Users/tenni/rails-eth/contracts/HelloWorld.sol'

該当のソースコード

ruby

1# app/controllers/top_controller 2class TopController < ApplicationController 3 ETHEREUM_TOKEN_PATH = "#{Dir.pwd}/contracts/HelloWorld.sol" 4 GANACHE_URL = 'HTTP://127.0.0.1:7545' 5 6 def index 7 @client = Ethereum::HttpClient.new(GANACHE_URL) 8 @contract = Ethereum::Contract.create(file: ETHEREUM_TOKEN_PATH, client: @client) 9 @contract.deploy_and_wait('Hello, World!') 10 end 11end

solidity

1# contracts/HelloWorld.sol 2pragma solidity ^0.4.24; 3contract HelloWorld { 4 string public greeting; 5 address public owner; 6 7 function HelloWorld(string _greeting) { 8 greeting = _greeting; 9 owner = msg.sender; 10 } 11 12 function greet() constant public returns (string) { 13 return greeting; 14 } 15 16 function getBalance() constant public returns (uint balance) { 17 return owner.balance; 18 } 19 20 function getAddress() constant public returns (address) { 21 return owner; 22 } 23}

試したこと

ターミナルでsolcをインストールしました。

$ npm install -g solc

コンパイルしてみましたが、上のエラーメッセージがでてしまいます。

$ solcjs HelloWorld.sol --abi --bin --optimize

補足情報(FW/ツールのバージョンなど)

windows 10
Ruby 2.4.6p354
Ruby on Rails 5.2.3
VScodeを使用

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

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

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

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

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

guest

回答1

0

エラーの原因は分かりかねますがRemixのコンパイラを使うと方法だといけるかと思います。
https://remix.ethereum.org/#appVersion=0.8.0&optimize=false&version=soljson-v0.4.24+commit.e67f0147.js

投稿2020/01/30 08:30

resoto

総合スコア29

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問