solc二进制文件周围的python包装器
py-solc的Python项目详细描述
python包装在solcsolidity编译器周围。
快速启动
安装
pip install py-solc
开发
克隆存储库,然后运行:
pip install -e . -r requirements-dev.txt
运行测试
您可以使用以下命令运行测试:
py.test tests
或者您可以安装tox来运行完整的测试套件。
释放
要将降价自述转换为正确的 在pypi上正确呈现的格式。
对于类似Debian的系统:
apt install pandoc
或在OSX上:
brew install pandoc
发布新版本:
bumpversion $$VERSION_PART_TO_BUMP$$ git push && git push --tags make release
如何颠簸
此repo的版本格式为 稳定,{major}.{minor}.{patch}-{stage}.{devnum}表示不稳定 (stage可以是alpha或beta)。
要发布第行的下一个版本,请使用bumpversion并指定 部分凹凸,如bumpversion minor或bumpversion devnum。
如果您是beta版本,bumpversion stage将切换到 稳定。
若要在当前版本稳定时发布不稳定版本,请指定 新版本显式地 bumpversion --new-version4.0.0-alpha.1 devnum
标准JSON编译
使用solc.compile_standard函数使用 [标准JSON]编译功能。
Solidity Documentation for Standard JSON input and ouptup format
>>> from solc import compile_standard >>> compile_standard({ ... 'language': 'Solidity', ... 'sources': {'Foo.sol': 'content': "...."}, ... }) { 'contracts': {...}, 'sources': {...}, 'errors': {...}, } >>> compile_standard({ ... 'language': 'Solidity', ... 'sources': {'Foo.sol': 'urls': ["/path/to/my/sources/Foo.sol"]}, ... }, allow_paths="/path/to/my/sources") { 'contracts': {...}, 'sources': {...}, 'errors': {...}, }
传统的组合json编译
>>>fromsolcimportcompile_source,compile_files,link_code>>>compile_source("contract Foo { function Foo() {} }"){'Foo':{'abi':[{'inputs':[],'type':'constructor'}],'code':'0x60606040525b5b600a8060126000396000f360606040526008565b00','code_runtime':'0x60606040526008565b00','source':None,'meta':{'compilerVersion':'0.3.5-9da08ac3','language':'Solidity','languageVersion':'0',},},}>>>compile_files(["/path/to/Foo.sol","/path/to/Bar.sol"]){'Foo':{'abi':[{'inputs':[],'type':'constructor'}],'code':'0x60606040525b5b600a8060126000396000f360606040526008565b00','code_runtime':'0x60606040526008565b00','source':None,'meta':{'compilerVersion':'0.3.5-9da08ac3','language':'Solidity','languageVersion':'0',},},'Bar':{'abi':[{'inputs':[],'type':'constructor'}],'code':'0x60606040525b5b600a8060126000396000f360606040526008565b00','code_runtime':'0x60606040526008565b00','source':None,'meta':{'compilerVersion':'0.3.5-9da08ac3','language':'Solidity','languageVersion':'0',},},}>>>unlinked_code="606060405260768060106000396000f3606060405260e060020a6000350463e7f09e058114601a575b005b60187f0c55699c00000000000000000000000000000000000000000000000000000000606090815273__TestA_________________________________90630c55699c906064906000906004818660325a03f41560025750505056">>>link_code(unlinked_code,{'TestA':'0xd3cda913deb6f67967b99d67acdfa1712c293601'})..."606060405260768060106000396000f3606060405260e060020a6000350463e7f09e058114601a575b005b60187f0c55699c00000000000000000000000000000000000000000000000000000000606090815273d3cda913deb6f67967b99d67acdfa1712c29360190630c55699c906064906000906004818660325a03f41560025750505056"
设置solc二进制文件的路径
可以使用环境变量SOLC_BINARY将路径设置为 你的solc二进制。
安装solc二进制文件
This feature is experimental and subject to breaking changes.
以下任何版本的solc都可以使用 py-solc在列出的平台上。
- v0.4.1(Linux)
- v0.4.2(Linux)
- v0.4.6(Linux)
- v0.4.7(Linux)
- v0.4.8(Linux/OSX)
- v0.4.9(Linux)
- v0.4.11(Linux/OSX)
- v0.4.12(Linux/OSX)
- v0.4.13(Linux/OSX)
- v0.4.14(Linux/OSX)
- v0.4.15(Linux/OSX)
- v0.4.16(Linux/OSX)
- v0.4.17(Linux/OSX)
- v0.4.18(Linux/OSX)
- v0.4.19(Linux/OSX)
- v0.4.20(Linux/OSX)
- v0.4.21(Linux/OSX)
- v0.4.22(Linux/OSX)
- v0.4.23(Linux/OSX)
- v0.4.24(Linux/OSX)
- v0.4.25(Linux/OSX)
可以通过命令行进行安装:
$ python -m solc.install v0.4.25
或者使用install_solc函数从python获取。
>>>fromsolcimportinstall_solc>>>install_solc('v0.4.25')
安装的二进制文件可以在主目录下找到。这个 v0.4.25binary将位于 $HOME/.py-solc/solc-v0.4.25/bin/solc。旧的Linux安装也将 要求您设置环境变量 LD_LIBRARY_PATH=$HOME/.py-solc/solc-v0.4.25/bin
导入路径重新映射
solc提供路径别名,允许您拥有更多可重用的项目 配置。
您可以这样使用:
from solc import compile_source, compile_files, link_code compile_files([source_file_path], import_remappings=["zeppeling=/my-zeppelin-checkout-folder"])