跳到主要内容

开发者快速入门

Conflux eSpace 现在已经支持以太坊的智能合约编写和测试工具。

因为 eSpace 兼容 EVM,您只需要将您平时使用的开发工具指向 Conflux eSpace 的 RPC 提供商即可。

如果您不熟悉以太坊开发,可以先学习基础知识并通过以太坊官方文档了解其技术栈。

获取 CFX

eSpace 也使用 CFX 作为其原生货币,用于支付部署合约和与网络交互产生的交易费用。

要在 eSpace 上进行开发,我们建议您首先使用 eSpace 测试网。 您需要先从水龙头获取一些测试网 CFX。

若您准备将合约部署至 eSpace 主网,但您手上只有 Core Space 的 CFX,您可以选择使用我们的跨Space桥转移至eSpace。

网络配置

eSpace 主网

使用下表的配置将您的以太坊工具以连接到 eSpace 主网。

网络名称Conflux eSpace
RPC URLhttps://evm.confluxrpc.com
链 ID1030
货币符号CFX
区块浏览器 URLhttps://evm.confluxscan.io

eSpace 测试网

使用下表的配置将您的以太坊工具以连接到 eSpace 测试网。

网络名称Conflux eSpace 测试网
RPC URLhttps://evmtestnet.confluxrpc.com
链 ID71
货币符号CFX
区块浏览器 URLhttps://evmtestnet.confluxrpc.com

配置工具

要设置用于验证智能合约部署的工具,请参见智能合约验证

Hardhat

修改您的 Hardhat 配置文件 hardhat.config.ts 以指向 eSpace 测试网的公共 RPC。

...

const config: HardhatUserConfig = {
...
networks: {
eSpaceTestnet: {
url: "https://evmtestnet.confluxrpc.com" || "",
accounts:
process.env.PRIVATE_KEY !== undefined ? [process.env.PRIVATE_KEY] : [],
},
},
};

...

使用 Hardhat 部署合约的完整工作流程在这里展示。

Foundry

想要使用 eSpace 测试网的公共 RPC 进行部署,请运行:

forge create ... --rpc-url=https://evmtestnet.confluxrpc.com --legacy

使用 Foundry 部署合约的完整工作流程在这里展示

Remix 网页 IDE

合约编译后,使用 Remix 进行部署的最简单方式是设置 Metamask ,然后选择 Conflux eSpace 测试网络

现在,在“部署和运行交易”标签页中,使用“环境”下拉菜单并选择“Injected Provider - MetaMask”。

连接您的钱包并选择 Conflux eSpace 测试网。 您的账户应该会在 Remix 中被自动选择,并且您可以点击“部署”。 Remix 使用的完整工作流程在 这里展示。

web3.py

提示

建议在使用 web3.py 之前创建虚拟环境,以避免依赖冲突,例如使用 venv 或者 conda

web3.py 是用于与以太坊区块链及其生态系统交互的最广泛使用的 Python 接口之一。 可以使用以下命令进行安装:

pip install web3 # 或 pip3 install web3

web3.py 也可以用于与 Conflux eSpace 交互。 下面的示例代码展示了如何连接到 Conflux eSpace 测试网端点并检查连接:

>>> from web3 import Web3
>>> w3 = Web3(Web3.HTTPProvider("https://evmtestnet.confluxrpc.com"))
>>> w3.is_connected()
True # 应该返回 True

应当注意的是,web3.py 的最新版本会默认为交易填充 maxFeePerGasmaxPriorityFeePerGas 字段,而 Conflux eSpace 只支持 EIP-1559 之前的传统交易类型。 因此,开发者需要在交易中指定 gas_price 字段或使用 gas 价格 API

from web3 import Web3
from web3.middleware.signing import construct_sign_and_send_raw_middleware
from web3.gas_strategies.rpc import rpc_gas_price_strategy

w3 = Web3(Web3.HTTPProvider("https://evmtestnet.confluxrpc.com"))
assert w3.is_connected()
acct = w3.eth.account.from_key("xxxxxx") # your secret key

w3.middleware_onion.add(construct_sign_and_send_raw_middleware(acct))
w3.eth.default_account = acct.address

# Set gas price strategy
w3.eth.set_gas_price_strategy(rpc_gas_price_strategy)

w3.eth.send_transaction({"from": acct.address, "value": 0, "to": acct.address})

Brownie

Brownie 是一个基于 Python 的开发和测试框架,用于针对以太坊虚拟机(EVM)的智能合约。 将 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

要在 eSpace 上进行部署,请使用 --network 选项指定 Conflux 网络。

brownie run scripts/token.py --network conflux-espace-test

scripts/token.py 是您希望在 Conflux eSpace 上运行的 Brownie 脚本。 在我们的 Brownie 教程中,我们展示了如何配置一个模板 Brownie 项目以及如何在 Conflux eSpace 上运行 Brownie 脚本。

ethers.js

ethers 脚本中设置 eSpace 测试网提供商:

import { ethers } from "ethers"

const provider = new ethers.providers.JsonRpcProvider("https://evmtestnet.confluxrpc.com")

scaffold-eth-2

Scaffold ConfluxScaffold-ETH-2 的一个修改版本。

  • 我们调整了模板,以便您可以在 Conflux eSpace 上部署合约。
  • Conflux Scaffold 使得用户能够快捷地利用前端 react 组件,这些组件通常用于构建 web3 应用。 这些组件包括预制的钱包,能够连接到 Conflux eSpace、Conflux eSpace 测试网、hardhat 等。 它还包括其他组件来显示余额,并接收地址/值输入。
  • Scaffold Conflux 提供了与在 hardhat 上构建的智能合约进行交互的接口。 这简化了读取合约、写入合约和监控智能合约发出的事件的过程。
  • 您可以访问我们的 教程 ,它更加深入地讨论了如何设置 Scaffold Conflux 并使用一些接口/组件。

要使用 Scaffold-eth-2(hardhat)将智能合约部署到 Conflux eSpace,请在部署时指定 Conflux eSpace 网络。

yarn deploy --network confluxESpace
备注

合约的部署者以及因为部署合约而成为的合约所有者,您可以通过将./packages/hardhat/.env.example 重命名为 ./packages/hardhat/.env 并在 DEPLOYER_PRIVATE_KEY= 中放入您的私钥进行更改。 然而,在默认情况下,将会使用一个“公开”的私钥用于 hardhat 测试目的。

配置前端钱包

要配置您的前端,您需要将钱包默认连接到的网络更改为 Conflux eSpace。 目前,它被设置为连接到 hardhat,因此您可以使用默认的 burner 钱包。 更改以下设置可以将钱包连接切换到 Conflux eSpace。

想要添加网络,请修改 packages/nextjs/scaffold.config.ts

const scaffoldConfig = {
targetNetworks: [chains.hardhat],

修改为

const scaffoldConfig = {
targetNetworks: [chains.confluxESpace],

部署到 Vercel

预览应用。 您应该能够通过您的钱包连接到 Conflux eSpace。

nvm use 18
yarn start

一旦您准备好部署您的应用,只需运行以下命令。

yarn vercel