Ape Ethereum框架的编译Vyper合约的插件
项目描述
快速开始
围绕VVM的Ape编译器插件
依赖关系
- python3版本3.10至3.12。
安装
通过pip
您可以通过pip
安装最新版本
pip install ape-vyper
通过setuptools
您可以克隆存储库并使用setuptools
以获取最新版本
git clone https://github.com/ApeWorX/ape-vyper.git
cd ape-vyper
python3 setup.py install
快速使用
首先,将Vyper合约源文件(扩展名为.vy
的文件)放入您的Ape项目合约文件夹中。示例Vyper合约可以在此处找到。然后,从您的根Ape项目文件夹中,运行以下命令
ape compile
您的项目中的.vy
文件将编译成可以在Ape中部署和交互的ContractTypes
。
合约扁平化
为了便于发布、验证以及其他一些情况,有时将合约“扁平化”成一个单一文件是有用的。这将以编译器可以理解的方式将您的合约和任何导入的接口组合在一起。您可以使用以下命令来实现
ape vyper flatten contracts/MyContract.vy build/MyContractFlattened.vy
[!警告] 此功能为实验性。请在试用时报告任何发现的错误。
编译器版本
默认情况下,ape-vyper
插件使用版本祈使语句来指定版本。但是,您也可以直接在您的 ape-config.yaml
文件中配置版本。
vyper:
version: 0.3.7
EVM 版本化
默认情况下,ape-vyper
将使用编译器版本中设置的默认 EVM 规则版本,或者基于 #pragma evm-version ...
祈使注释指定的版本(自 v0.3.10
之后可用)。有时,您可能想使用不同的版本,例如在 Arbitrum 或 Optimism 上部署,这些环境中尚不支持新的操作码。如果您想在编译器的配置中使用不同的 EVM 规则版本,请在 ape-config.yaml
中设置它,如下所示
vyper:
evm_version: paris
注意:所选择的配置值不会覆盖在合约中设置的祈使语句。
接口
您不能直接编译接口源文件。因此,您必须将接口文件放在 contracts_folder
中的 interfaces
目录下,例如 contracts/interfaces/IFace.vy
。然后,这些文件可以通过以下方式在其他 .vy
源文件中导入
import interfaces.IFace as IFace
或者,通过在 import_remapping
键下列出它们,使用依赖合约类型的 JSON 接口。
# Use `voting` example contracts from Vyperlang repo.
dependencies:
- name: VyperVoting
github: vyperlang/vyper
contracts_folder: examples/voting/
version: v0.3.8
# Automatically allow importing voting contracts in your project.
vyper:
import_remapping:
- "voting=VyperVoting@v0.3.8"
按照以下方式导入投票合约类型
# @version 0.3.10
import voting.ballot as ballot
小数位
要在 Vyper 0.4 中使用小数,请使用以下配置
vyper:
enable_decimals: true
祈使语句
Ape-Vyper 支持 Vyper 0.3.10 的 新祈使语句格式。
版本祈使语句
#pragma version 0.3.10
EVM 版本祈使语句
#pragma evm-version paris
优化祈使语句
#pragma optimize codesize
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
ape-vyper-0.8.6.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dd9f1fc2071d6b39f8d26a61dec614e80240422cf1fde3b5313ded0bd90fa118 |
|
MD5 | 61db92f3d1df265db1529f845e3af209 |
|
BLAKE2b-256 | d58c9f7bdbba9211b584f8ad941754c73f1c96224b916406f6ca6648d9dfcddf |
ape_vyper-0.8.6-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ca4abadc98f1243561f1f84f3ba0460571bd8905693b10491375735d8e03902f |
|
MD5 | b9ceeb8e1e12d5f930da26f6c3b58766 |
|
BLAKE2b-256 | a9d0ee0360d64771e643bb398a5461590c1c5eb8e40d7d228be2af4b48284923 |