跳转到主要内容

ape-foundry:Foundry的Ape网络提供程序

项目描述

快速开始

Foundry网络提供程序插件用于Ape。Foundry是一个用Rust编写的Ethereum开发框架,包括本地网络实现。

依赖关系

安装

通过pip

您可以通过pip安装最新版本

pip install ape-foundry

通过setuptools

您可以将仓库克隆并使用setuptools来获取最新版本

git clone https://github.com/ApeWorX/ape-foundry.git
cd ape-foundry
python3 setup.py install

快速使用

使用--network ethereum:local:foundry命令行标志来使用foundry网络(如果它还没有配置为默认网络)。

此网络提供程序需要额外的Foundry特定配置选项。要使用它们,请在您的项目的ape-config.yaml中添加这些配置

foundry:
  host: https://127.0.0.1:8555

要选择随机端口,请使用“auto”值

foundry:
  host: auto

这对于多进程和启动多个提供程序很有用。

您还可以调整请求超时设置

foundry:
  request_timeout: 20  # Defaults to 30
  fork_request_timeout: 600  # Defaults to 300

主网分叉

《ape-foundry》插件还包括主网分叉提供程序。它需要使用另一个可以访问主网的提供程序。

像这样在大多数命令中使用它

ape console --network :mainnet-fork:foundry

在您的ape-config.yaml中指定上游存档数据提供程序

foundry:
  fork:
    ethereum:
      mainnet:
        upstream_provider: alchemy

否则,它默认为主网提供程序插件。您还可以指定block_numberevm_version

如果指定了区块号,但没有指定EVM版本,它将根据已知网络的高度自动设置。

注意:请确保您已经安装了ape的上游提供程序插件。

ape plugins install alchemy

远程Anvil节点

要连接到远程anvil节点,设置您的配置如下

foundry:
  host: https://anvil.example.com

现在,它将尝试连接到远程anvil节点,并使用此插件作为ape接口,而不是启动本地进程。

要使用环境变量连接到远程anvil节点,请设置APE_FOUNDRY_HOST

export APE_FOUNDRY_HOST=https://your-anvil.example.com`

模拟账户

您可以使用《ape-foundry》插件来模拟账户。要模拟一个账户,请按照以下操作执行

import pytest

@pytest.fixture
def whale(accounts):
    return accounts["example.eth"]

为了进行交易,您的模拟账户必须具有余额。您可以通过使用分叉网络并模拟一个具有余额的账户来实现这一点。或者,您可以将您的节点的基础费用和优先费用设置为0

要程序化设置账户的余额,请执行以下操作

from ape import accounts

account = accounts["example.eth"]
account.balance = "1000 ETH"  # This calls `anvil_setBalance` under-the-hood.

基础费用和优先费用

使用ape-config.yaml文件配置您的节点的基准费用和优先费用。

foundry:
  base_fee: 0
  priority_fee: 0

自动挖矿

默认情况下,Anvil节点会自动挖矿。但是,您可以通过配置foundry插件来在启动时禁用自动挖矿

foundry:
  auto_mine: false

否则,您可以使用提供程序实例禁用自动挖矿

from ape import chain

anvil = chain.provider
anvil.auto_mine = False  # calls `anvil_setAutomine` RPC.

按间隔挖矿

默认情况下,Anvil会在提交交易时挖掘新块。要按间隔挖掘,请设置block_time配置

foundry:
  block_time: 10  # mine a new block every 10 seconds

EVM版本(硬分叉)

要更改本地foundry网络的EVM版本,请使用evm_version配置

foundry:
  evm_version: shanghai

要更改分叉网络的EVM版本,请设置特定的分叉网络配置

foundry:
  fork:
    ethereum:
      mainnet:
        evm_version: shanghai

项目详情


下载文件

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

源分布

ape-foundry-0.8.4.tar.gz (101.7 kB 查看哈希值)

上传时间 源码

构建分发版

ape_foundry-0.8.4-py3-none-any.whl (17.9 kB 查看哈希值)

上传时间 Python 3

由以下支持