Python 開發人員喜歡使用智能合約框架Brownie。 Brownie 的繼任者正在醞釀中——重新構想Python Web3 開發人員體驗。
在這篇文章中,我將談論 猿人,又稱“猿”。
ApeWorX 是一個基於Python 的智能合約開發和部署框架,以其可定制性和安全的私鑰管理而聞名。
你們中的許多人都知道我喜歡Python,並且在進入Web3 領域後我愛上了 布朗尼 框架。自從我進入這個領域以來,似乎所有原始的Web3 框架要么已經成功,要么另一個競爭對手突然出現:
以太坊Python 社區以作為最協作和最緊密的團體之一而聞名。許多 虛擬機 和 布朗尼貢獻者 可以在名單上看到 猿貢獻者, 包含 小狗 B, 班泰格, 和 骷髏0r (在較小程度上,甚至是我自己!)
此外,Python 愛好者和DeFi 協議 喜歡 曲線 已經開始 使用猿 作為他們合同的框架。
今天,我們將從Brownie 用戶的角度對ApeWorX 進行高級別的“Web3 lickity-split”研究。
Web3 Lickity-Split 外觀
您可以在我們的 ApeWorX 入門套件 帶有代碼示例以幫助您入門。
後 安裝猿 有類似的東西 pipx install eth-ape
或者 pip
,您將可以訪問ape 命令行界面。
開始一個新項目的最快方法是使用ape init,它會給你一個空白的設置,看起來像這樣:
. ├── ape-config.yaml ├── contracts ├── scripts └── tests
以下是每個文件夾包含的內容:
- 合同: 您的所有Vyper、Solidity 或其他合約都將去往何處。
- 腳本: 你所有的Python 代碼都會去哪裡。
- 測試: 你的Python 測試。
- 猿配置.yaml: 項目的配置文件。這是brownie-config.yaml 或hardhat.config.js 的猿等價物。
在您的腳本文件夾中,您可以製作如下腳本:
def main():
print("Hello!")
要在ape 中運行任何Python 腳本,請運行:
ape run scripts/my_script.py
插件
默認情況下,Ape 沒有Vyper、Solidity 或其他任何東西,而是使用 插件系統 使ApeWorX 完全可根據您的特定智能合約需求進行定制。兩個最流行的插件是那些 堅固性 和 煉金術,它允許您編譯Solidity 合約並輕鬆部署到Alchemy。
ape plugins install solidity alchemy
一旦你完成了這個設置,你就可以在contracts文件夾中編寫你的Solidity合約並編譯。
ape compile
網絡
Ape 採用特定的方法來處理網絡。大多數框架,包括Hardhat、Brownie 和Foundry,都以類似的方式處理EVM 鏈。 ApeWorX 不同。
ApeWorX 將網絡分為 生態系統 和 鏈條. 例如,以太坊生態系統分為 主網, ropsten, kovan, goerli, 等等如果你想使用Fantom 之類的東西,你可以安裝fantom 網絡插件:
ape plugins install fantom
然後你會在ape 網絡列表中看到你的新網絡列表:
fantom ├── opera │ └── geth (default) ├── testnet │ └── geth (default) └── local (default) └── test (default)
如果您不想為您的網絡安裝插件,您可以使用 臨時方法 只需將RPC URL 放到您喜歡的網絡中即可。猿將盡可能多地假設發送交易。
ape run scripts/my_script.py --network https://my_rpc_url.com
賬戶
跨框架的最大差異之一是它們如何處理帳戶。大多數框架都讓你設置一個.env 文件來存儲你的私鑰。但是,將你的私鑰放在.env 中已經 永遠絆倒開發人員. 你 能夠 在ape 中執行此操作,但默認值更安全。
Ape 允許您導入私鑰,然後它將加密並存儲在您的計算機上。每當您想使用該帳戶或私鑰時,您都需要密碼來解密它。這意味著不再會意外地將您的密鑰推送到GitHub!
ape accounts import my_key
然後它將提示您輸入密鑰和密碼。在您的Python 腳本中,您可以使用load 函數獲取您的私鑰。
from ape import accounts
accounts.load("local-default")
運行此腳本時,系統會提示您輸入密碼。
其餘的部分…
框架的其餘部分按您的預期工作。您可以使用編寫測試 pytest,最流行的Python 測試框架之一。您可以輸入 猿控制台 使用您選擇的網絡在Python 環境中使用交互式shell。
這是您想要和期望從框架中獲得的一切。
Ape 是框架領域的新玩家,它是一個 精彩的回購做出貢獻。 如果你喜歡Python 並且對如何改進ape 有想法,請務必留下問題、拉取請求,或者只是給他們一顆星!
快樂猿!
本文中表達的觀點僅代表作者個人觀點,不代表Chainlink 基金會或Chainlink Labs 的觀點和信念。