solc二进制文件周围的python包装器

py-solc的Python项目详细描述


Build StatusPyPi versionPyPi downloads

python包装在solcsolidity编译器周围。

依赖性

此库要求存在solc可执行文件。

通过这个库只支持和测试版本>=0.4.2。 可以与其他版本一起使用。

solc installation instructions

快速启动

安装

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 minorbumpversion 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"])

More information about solc import aliasing

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如果在使用JDBC时不包含db驱动程序会发生什么?   发生错误时使用JAXWS跟踪XML请求/响应   java servlet版本getServletContext()。getEffectiveMajorVersion()在我使用3时给了我2.5   jakarta mail在Java中使用Javamail获取消息contenttype时出错   java正在获取WebSphere app Server的实例名称   java在javafx中向TreeItem添加了一个addEventHandler   java我们可以在运行时从泛型类型实例化一个对象吗?   带倒计时的java循环[自动重新启动]   java将画布转换为位图   java在tomcat7上运行shell脚本   使用列表更新java hibernate实体   java如何替换� 字符串中带有“,”的字符?   使用SwingGUI的java简单ClientServer程序   java使用smtp在javamail中以附件形式发送超链接   selenium中的java用户登录身份验证?