跳转到主要内容

Ape Ethereum框架的编译Vyper合约的插件

项目描述

快速开始

围绕VVM的Ape编译器插件

依赖关系

安装

通过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 (68.3 kB 查看哈希值)

上传时间

构建分布

ape_vyper-0.8.6-py3-none-any.whl (43.3 kB 查看哈希值)

上传时间 Python 3

由以下支持