跳转到主要内容

ape-safe:Ape的Gnosis Safe账户插件

项目描述

快速入门

Safe多签钱包(之前称为Gnosis Safe)的账户插件(针对Ape)。

依赖关系

安装

通过 ape

您可以使用 ape 内置插件管理器进行安装

$ ape plugins install safe

通过 pip

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

$ pip install ape-safe

通过 setuptools

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

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

快速使用

要使用此插件,首先使用CLI扩展添加您创建的安全

ape safe add --network ethereum:mainnet "my-safe.eth" my-safe

如果您犯错或需要删除安全,请使用remove命令

ape safe remove my-safe --yes

注意 --yes是一种跳过提示的方式。

如果您只添加了一个安全,则无需指定要使用哪个安全来运行其他命令。否则,对于大多数pending命令,您可以通过--safe选项(通过别名)指定要使用的安全。

此外,您可以在ape-config.yaml文件中配置一个作为默认值使用的安全

safe:
  default_safe: my-safe

注意:另外,为了避免总是需要指定--network,您可以在配置文件中设置默认生态系统、网络和提供者。本指南的其余部分将不会在每个命令中指定--network,但假设正确的设置已在配置文件中。以下是一个示例

default_ecosystem: optimism

ethereum:
  default_network: sepolia
  sepolia:
    default_provider: infura

一旦您有了安全,您就可以查看挂起的交易

ape safe pending list

它应该显示如下交易

Transaction 8 rejection (1/2) safe_tx_hash=0x09ab9a229fc60da66ec0fa8fa886ab7c95902fdf5df5a5009ba06010fbb9a9a7
Transaction 8 transfer  (1/2) safe_tx_hash=0xed43d80255bcd5ffacb755e8f51bee825913373705d6baea006419d2a33a0a5b

注意:使用--verbose标志可以查看每个交易更详细的信息。

ape safe pending list --verbose

您可以在挂起的交易上执行几种操作。其中之一是“批准”,这会将您的本地签名者的签名添加到交易中。

ape safe pending approve 0x09ab9a229fc60da66ec0fa8fa886ab7c95902fdf5df5a5009ba06010fbb9a9a7

注意:在此处,我们使用交易哈希0x09ab9a229fc60da66ec0fa8fa886ab7c95902fdf5df5a5009ba06010fbb9a9a7来指定交易,因为存在多个交易。但是,如果您只有一个交易,您也可以使用nonce。

如果您想同时执行和批准,可以在批准时使用--execute选项并指定发送者

ape safe pending approve 2 --execute my_account

否则,您可以直接使用execute命令

ape safe pending execute 2

注意execute需要一个完整的已签名交易,准备在链上提交。

最后一个主要操作是reject。拒绝交易会将该交易替换为安全向自己发起的零值转账。

ape safe pending reject 2

多发送

以下示例显示了如何使用多发送

from ape_safe import multisend
from ape import accounts
from ape_tokens import tokens

safe = accounts.load("my-safe")

# Load some contracts (here using ape-tokens)
dai = tokens["DAI"]
vault = tokens["yvDAI"]
amount = dai.balanceOf(safe)  # How much we want to deposit

# Create a multisend transaction (a transaction that executes multiple calls)
txn = multisend.MultiSend()
txn.add(dai.approve, vault, amount)
txn.add(vault.deposit, amount)

# Fetch signatures from any local signers, and broadcast if confirmations are met
# Note that in case the user intends to only stage a transaction, then `submit=False` argument can also be added
# It is normal that when a user only intend to stage a transaction, an error is thrown
# this can be ignored by including the necessary try-catch (from ape.exceptions import SignatureError)
# Note that transaction is automatically prompted for execution if enough signers are available in local
txn(sender=safe,gas=0)

开发

请参阅贡献指南以了解更多关于如何为此项目做出贡献的信息。评论、问题、批评和拉取请求都受到欢迎。

致谢

本包受到了原始ape-safe的启发,由banteg编写。对于v0.6.0之前的版本,应参考原始包。

项目详情


下载文件

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

源代码分布

ape-safe-0.8.3.tar.gz (93.1 KB 查看哈希)

构建分布

ape_safe-0.8.3-py3-none-any.whl (37.3 kB 查看哈希值)

上传时间 Python 3

支持