Brownie
Brownie 是一个基于 Python 的开发和测试框架,用于针对以太坊虚拟机(EVM)的智能合约。 在本教程中,我们将指导您如何配置 Brownie(或 eth-brownie)以适应 Conflux eSpace,并将演示如何使用 Brownie 脚本在 Conflux eSpace 上部署合约。
安装 Brownie
执行以下命令安装 Brownie:
pip install eth-brownie # 或者 pip3 install eth-brownie
添加 Conflux eSpace 网络
要将 Conflux eSpace 网络添加到 Brownie 中,请执行以下命令:
brownie networks add "Conflux eSpace" conflux-espace-main name=Mainnet host=https://evm.confluxrpc.com explorer=https://evm.confluxscan.io chainid=1030
brownie networks add "Conflux eSpace" conflux-espace-test name=Testnet host=https://evmtestnet.confluxrpc.com explorer=https://evmtestnet.confluxscan.io chainid=71
或者使用 yaml 文件将导入 Conflux eSpace 网络到 Brownie 中:
live:
- name: Conflux eSpace
networks:
- chainid: 1030
explorer: https://evm.confluxscan.io
host: https://evm.confluxrpc.com
id: conflux-espace-main
name: Mainnet
- chainid: 71
explorer: https://evmtestnet.confluxscan.io
host: https://evmtestnet.confluxrpc.com
id: conflux-espace-test
name: Testnet
然后,运行以下命令将其添加到您的网络配置:
brownie networks import ./network-config.yaml
成功添加后,您的网络将出现在 Brownie 网络列表中,可以通过运行 brownie networks list
显示:
......
Conflux eSpace
├─Testnet: conflux-espace-test
└─Mainnet: conflux-espace-main
......
生成代币项目的模板
运行 brownie bake token
生成一个代币项目模板。 项目将在当前文件夹中创建。 在本教程中,我们将项目直接放在用户目录下:
cd ~
brownie bake token
cd token
生成和导入您的帐户
您可以选择生成一个新账户或导入现有账户到 Brownie 中。
生成新账户
通过此命令行创建新账户:
brownie accounts generate <id>
您将被提示设置账户的密码。 Brownie 将生成一个随机私钥并使账户能以 <id>
的形式被访问。 新账户的地址将在终端中显示,您会在后续步骤中需要它。
下面是命令的示例输出:
Brownie v1.14.5 - Python development framework for Ethereum
Generating a new private key...
mnemonic: 'park service pull home hedgehog soul grief food people uncle will series'
Enter the password to encrypt this account with:
SUCCESS: A new account '0x960ecb222F296C1D75a111D33094Cb393ab17b09' has been generated with the id 'new'
导入您的帐户
如果您已有账户,您可以将其导入。 为了导入您的私钥,请运行一下命令:
# id 是您账户的标识符,用于在脚本中指定账户
brownie accounts new <id>
# 例如,brownie accounts new dev
Brownie 将提示您输入您的私钥和密码:
Brownie v1.14.5 - Python development framework for Ethereum
Enter the private key you wish to add: *******************
Enter the password to encrypt this account with: **************
SUCCESS: A new account 'xxxxxxxxxxxx' has been generated with the id 'dev'
也可以使用以下方式导入您的密钥库:
brownie accounts import <id> <path>
更多信息请查看账户管理。
为您的账户充值
要发送交易,您需要为您的账户充值。 Conflux 的 eSpace 水龙头可以协助您实现这一点。
输入您的账户地址之后,您的账户将收到 eSpace 测试网上的资金。
修改部署脚本
代币
项目模板中默认的 scripts/token.py
在 Conflux eSpace 测试网上不能直接使用。 需要向默认脚本中添加额外的一行:
#!/usr/bin/python3
from brownie import Token, accounts
def main():
accounts.load("dev") # 在这里指定要加载的账户
return Token.deploy("Test Token", "TST", 18, 1e21, {'from': accounts[0]})
部署
要在 Conflux eSpace 测试网上进行部署,请运行以下命令:
brownie run scripts/token.py --network conflux-espace-test