ethereum / ethereum/py-solc

Unable to import Solidity contract from a file using `compile_files`

Open
#43 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
195
Forks
77
PR merge metrics
No merged PRs in 30d

Description

* `py-solc` Version: 2.1.0 (shown when I run `pip3 list`)
* `solc` Version: 0.4.17+commit.bdeb9e52.Linux.g++
* Python Version: 3.6.3
* OS: Docker VM on macOS 10.12.6 - Linux version 4.9.49-moby (gcc version 6.2.1 20160822 (Alpine 6.2.1) )
* Solc v0.4.17 (see where I load Solc dependency in my [Dockerfile](https://github.com/ltfschoen/pyethfinality/blob/master/Dockerfile))
* Source Code: https://github.com/ltfschoen/pyethfinality/blob/master/main.py

### What was wrong?

**How to reproduce the issue**

Follow steps in the "Quickstart Guide" of my Github repo https://github.com/ltfschoen/pyethfinality#chapter-0

* Run the Python script in the 1st Bash Terminal tab's Docker shell
```
python3 main.py
```

**What was the result of the issue. What the expected behaviour is**

In the web3.py Quick Start example code https://github.com/pipermerriam/web3.py, they load the Solidity contract "inline" and store it in variable `contract_source_code` and then compile the source code with `compiled_sol = compile_source(contract_source_code)`, which is then assigned to the `contract_interface = compiled_sol[':Greeter']`.

But I want to load the Solidity contract from a "file", so I added `compile_files` to the list of imports `from solc import install_solc, compile_source, compile_files` and compiled the source code with `compiled_sol = compile_files([“./Greeter.sol”])`, but I get the following error on the above mentioned line of code that assigns to the `contract_interface` variable.
```
Traceback (most recent call last):
File "main.py", line 42, in
contract_interface = compiled_sol[':Greeter']
KeyError: ':Greeter'
```
Note: I need to load the Solidity contract from a file so I can implement unit tests.

#### Cute Animal Picture

[![alt text](https://images.pexels.com/photos/36347/cow-pasture-animal-almabtrieb.jpg?w=940&h=650&auto=compress&cs=tinysrgb)](https://images.pexels.com/photos/36347/cow-pasture-animal-almabtrieb.jpg?w=940&h=650&auto=compress&cs=tinysrgb)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.