Brownie 是 Python 开发人员经常使用智能合约框架。 现在出现了一个 Brownie 的继任者,可以让 Python Web3 开发人员获得更好的体验。

在本文中,我将讨论这个 Brownie 的继任者 ApeWorX,也称为“Ape”。

ApeWorX 是一个基于 Python 的智能合约开发和部署框架,有很强的可定制性和安全的私钥管理机制。

你们中的许多人都知道我(Patrick Collins)很喜欢 Python,所以在进入 Web3 领域后,我爱上了 Brownie 框架。自从我进入这个领域以来,似乎所有原创的 Web3 框架都是两种结果:已经成功或者被另一个竞争对手替换:

  • DappTools 正式承认 Foundry 作为其继任者。
  • 在 Truffle 流行过很长一段时间之后,Hardhat 成为了 DeFi 中最常用的框架。
  • ApeWorX 似乎有朝一日会成为 Brownie 框架的继任者。

以太坊 Python 社区是协作性最强、成员之间联系最紧密的社区之一。在 Ape contributor 中可以看到许多 Vyper 和 Brownie 的 contributor,包括 Doggie B、Banteg 和 Skellet0r(甚至还有我自己!)

此外,Python 爱好者和 Curve 等 DeFi 协议都开始使用 Ape 作为其智能合约的框架。

今天,我们将从 Brownie 用户的角度对 ApeWorX 进行快速的了解和学习。

快速了解

你可以在 Chainlink 的 repo ApeWorX-starter-kit 中找到一个最简 ApeWorX & Vyper 模板,其中包含代码示例以帮助你快速了解。

使用 pipx install eth-apepip 安装 ape 后,你就可以访问 ape 命令行界面了。

初始化一个新项目的最快方法是使用 ape init,它会生成一个空白配置的项目文件夹,如下所示:

.├── ape-config.yaml├── contracts├── scripts└── tests

以下是每个文件夹包含的内容:

  • Contracts:你所有的 Vyper、Solidity 或其他合约文件都将放在这里。
  • Scripts:所有 Python 代码的存放位置。
  • Tests:你的 Python 测试文件。
  • ape-config.yaml:项目的配置文件。就类似于 brownie-config.yaml 或 hardhat.config.js。

在 scripts 文件夹中,你可以写一个如下的文件:

def main():print("Hello!")

在 ape 中想要运行任何一个 Python 脚本,运行:

ape run scripts/my_script.py

Ape 的插件系统

默认情况下,Ape 没有 Vyper、Solidity 或任何其他东西,而是需要使用插件系统使得 ApeWorX 完全可定制,以满足开发者特定的智能合约开发需求。两个最受欢迎的插件是用于 Solidity 和 Alchemy 的插件,它们允许你编译 Solidity 智能合约并且轻松通过 Alchemy 部署。

ape plugins install solidity alchemy

当你完成配置以后,你可以在 Contracts 文件夹中编写 Solidity 的合约然后对其进行编译。

ape compile

Networks

Ape 采用特定方法处理 network。大多数框架,包括 Hardhat、Brownie 和 Foundry,都以类似的方式处理 EVM 链,但 ApeWorX 是不同的。

ApeWorX 将 network 分成生态系统和链。例如,以太坊生态系统分为 mainnet、ropsten、kovan、goerli 等。如果你想使用 Fantom 之类的 network,你可以安装 fantom 的 network 插件:

ape plugins install fantom

然后在 ape 网络中,你会看到一个新的 network 列表:

fantom                                                                                                      ├── opera                                                                                                   │   └── geth  (default)                                                                                     ├── testnet                                                                                                 │   └── geth  (default)                                                                                     └── local  (default)                                                                                        └── test  (default)

如果你不想为某个 network 安装插件,也可以使用临时方法,只需将 RPC URL 配置到network 中。这样 ape 就会认为这个网络是可以发送交易的。

ape run scripts/my_script.py --network https://my_rpc_url.com

账户

框架之间最大的区别之一是它们如何处理帐户。大多数框架都让你设置一个 .env 文件来存储私钥。但是,将您的私钥放在 .env 中其实一直困扰着开发人员。你也可以在 ape 中执行此操作,但 ape 的默认的设置方式更加安全。

Ape 允许你导入私钥,然后它将私钥加密并将存储在你的计算机上。每当您想使用该帐户或私钥时,您都需要密码来解密。这意味着再也不会不小心将你的密钥 push 到 GitHub 了!

ape accounts import my_key

然后它会提示你输入密钥和密码。在你的 Python 脚本中,您可以使用 load 函数来获取你的私钥。

from ape import accountsaccounts.load("local-default")

当你运行这个脚本的时候,会有提示让你输入密码。

其他

框架的其余部分可能和你预期的使用习惯差不多。你可以使用 pytest(最流行的 Python 测试框架之一)编写测试。你可以进入 ape console,在 Python 环境中使用 shell 与你所选择的网络交互。

Ape 中有你希望从智能合约开发框架中获得的所有功能。

Ape 是框架领域的新成员,它也是一个很棒的 Repo,你可以去 contribute。如果你喜欢 Python 并且对如何改进 ape 有想法,请去提一个 issue、PR,或者给他们一个 star!

Happy Ape-ing!

这篇文章中表达的观点仅代表作者,并不反映 Chainlink。

欢迎关注 Chainlink 预言机并且私信加入开发者社区,有大量关于智能合约的学习资料以及关于区块链的话题!

ApeWorX: 新的基于 Python 语言的智能合约开发框架相关推荐

  1. 基于python的智能安防系统_基于Python语言的智能家居系统研究

    龙源期刊网 http://www.qikan.com.cn 基于 Python 语言的智能家居系统研究 作者:张微微

  2. livechart 只显示 y 值_基于Python语言的SEGY格式地震数据读取与显示编程

    敬请关注<地学新视野> 摘要:本文简单介绍了SEG-Y地震数据文件格式,以及如何用Python语言编写读写SEG-Y格式的地震数据并绘制地震剖面,其中用到了Segyio和matplotli ...

  3. 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)

    原标题:基于Python语言的自动化测试实战第二章(上) 测试环境搭建 2.1 Windows 下的环境搭建 如果想要学习一门编程语言,对于新手来说只需到其官方网站上去下载最新版本安装即可,但对于想要 ...

  4. 肝!一款基于 Python 语言的 Linux 资源监视器!

    还记得前不久给大家推荐的<一款霸榜 GitHub 的开源 Linux 资源监视器!-- bashtop>吗?它是一个用 Bash 编写的 Linux 资源监视器. 昨天刚好闲逛 GitHu ...

  5. python 机器学习_基于 Python 语言的机器学习工具Sklearn

    本篇介绍了Sklearn机器学习基础,从Sklearn的简介,模块以及与tensorflow的优劣势对比来了解基于Python语言的机器学习工具.    01.Sklearn简介 sklearn(sc ...

  6. 「实战案例」基于Python语言开发的信用评分卡

    信用风险计量模型可以包括跟个人信用评级,企业信用评级和国家信用评级.人信用评级有一系列评级模型组成,常见是A卡(申请评分卡).B卡(行为模型).C卡(催收模型)和F卡(反欺诈模型). 今天我们展示的是 ...

  7. python软件开发电子产品测试方向_基于Python语言的自动测试系统通用软件平台实现...

    期 No.5 2019 年 3 月 Mar. 2019 收稿日期: 2018-05-06 稿件编号: 201805027 基金项目: 中国电科第十研究所发展基金 ( SSJ-1784 ) 作者简介: ...

  8. python自动化测试实战 虫师_《Selenium2自动化测试实战--基于Python语言》 --即将面市...

    发展历程: <selenium_webdriver(python)第一版> 将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第二版 ...

  9. 基于Python语言、RSA非对称加密的IRC聊天室客户端

    源码地址: (55条消息) 基于Python语言.RSA非对称加密的IRC聊天室客户端源码与应用程序-Python文档类资源-CSDN文库 1 研究背景和现状 IRC是Internet Relay C ...

最新文章

  1. ASP.NET中 DropDownList+GridView(网格视图)的使用前台绑定[高]
  2. linux中普通用户用友所有权限,linux文件的特殊权限
  3. ASP.NET MVC 学习6、学习使用Code First Migrations功能,把Model的更新同步到DB中
  4. 物理光学 计算倏逝波/渐逝波在界面上存在的范围
  5. Linux networkmanager
  6. 【转】VTK + QT + VS 编译安装配置
  7. 拉氏变换及复域传递函数
  8. 疑似Redmi K40新机获得3C认证:搭载联发科天玑1000+ 支持33W快充
  9. CommonJS的值拷贝与ES6的动态映射
  10. Android自定义View实战:影院在线选座
  11. Retina显示屏-揭秘移动端的视觉稿通常会设计为传统PC的2倍
  12. java else 语法错误_Java中带有else的语法错误
  13. 2022年国内各安卓应用市场上传教程
  14. 等等!python和鸭子是什么关系?
  15. 基于Hadoop的云计算平台配置
  16. 瓦片地图面面观之缩放级别
  17. 移动OA办公系统为企业带来便捷办公
  18. HelpingKind.org:一个有偿的市场
  19. 四种色彩模式ARGB_8888、ARGB_4444、 RGB_565、 ALPHA_8的区别
  20. 甘肃省全国计算机等级考试(NCRE)报名

热门文章

  1. linux sudo 权限_在Linux中使用sudo委派权限
  2. 电脑蓝屏的解决- -
  3. 8年软件测试从业者个人感悟
  4. mybatis(超详细,常用)
  5. css 滚动条样式修改以及动态显示
  6. 软件2.0时代之三:毛新生谈他眼中的Web2.0
  7. 小学生机器人挑战赛_创意放飞梦想 宝鸡中小学生青少年机器人竞赛显身手
  8. 更彻底清理微信存储空间让小存储手机继续生存
  9. C# 如何添加、格式化、删除Word超链接
  10. linux安装服务不能被识别,解决HP ProLiant DL380 G5的CentOS 7安装与启动不能识别硬盘问题...