跳转到主要内容

solc二进制的Python封装

项目描述

Build Status PyPi version PyPi downloads

Python封装的solc Solidity编译器。

依赖

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

虽然此库可能与其他版本一起工作,但只支持和支持测试版本 >=0.4.2。

solc安装说明

快速入门

安装

pip install py-solc

开发

克隆存储库,然后运行

pip install -e . -r requirements-dev.txt

运行测试

您可以使用以下方式运行测试

py.test tests

或者您可以使用tox安装并运行完整的测试套件。

发布

Pandoc是必需的,用于将markdown README转换为正确的格式,以便在pypi上正确渲染。

对于类似Debian的系统

apt install pandoc

或者在OSX上

brew install pandoc

发布新版本

bumpversion $$VERSION_PART_TO_BUMP$$
git push && git push --tags
make release

如何使用bumpversion

本仓库的版本格式为稳定版:{major}.{minor}.{patch},和不稳定版:{major}.{minor}.{patch}-{stage}.{devnum}(其中 stage 可以为 alpha 或 beta)。

要发布下一个版本,请使用 bumpversion 并指定要升级的部分,例如 bumpversion minorbumpversion devnum

如果你处于测试版,bumpversion stage 将切换到稳定版。

当当前版本为稳定版时,发布不稳定版本需要显式指定新版本,例如 bumpversion --new-version 4.0.0-alpha.1 devnum

标准 JSON 编译

使用 solc.compile_standard 函数来利用 [standard-json] 编译功能。

标准 JSON 输入和输出格式的 Solidity 文档

>>> 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 编译

>>> from solc import compile_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 二进制文件

此功能是实验性的,可能会进行破坏性更改。

以下版本的 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

或者使用 python 的 install_solc 函数。

>>> from solc import install_solc
>>> install_solc('v0.4.25')

安装的二进制文件可以在您的家目录下找到。v0.4.25 二进制文件位于 $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"])

有关 solc 导入别名的更多信息

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

py-solc-3.2.0.tar.gz (12.8 kB 查看哈希值)

上传时间

构建分发

py_solc-3.2.0-py3-none-any.whl (12.9 kB 查看哈希值)

上传时间 Python 3

支持者