您可以使用 SDK 快速启动一个本地的 Fuel 节点,最好是短暂的。然后,您可以实例化一个 Fuel 客户端,指向这个节点。
use fuels::prelude::{FuelService, Provider};
// Run the fuel node.
let server = FuelService::start(
NodeConfig::default(),
ChainConfig::default(),
StateConfig::default(),
)
.await?;
// Create a client that will talk to the node created above.
let client = Provider::from(server.bound_address()).await?;
assert!(client.healthy().await?);
这种方法非常适合合约测试。
您也可以使用测试助手 setup_test_provider()
:
use fuels::prelude::*;
// Use the test helper to setup a test provider.
let provider = setup_test_provider(vec![], vec![], None, None).await?;
// Create the wallet.
let _wallet = WalletUnlocked::new_random(Some(provider));
您还可以使用 launch_provider_and_get_wallet()
,它将 setup_test_provider()
和钱包创建封装在一个方法中:
let wallet = launch_provider_and_get_wallet().await?;
fuel-core-lib
功能允许我们在本地机器上运行 fuel-core
节点而无需安装 fuel-core
二进制文件。使用 fuel-core-lib
功能标志意味着下载运行 fuel-core 节点所需的所有依赖项。
fuels = { version = "0.63.0", features = ["fuel-core-lib"] }
rocksdb
是一个附加功能,当与 fuel-core-lib
结合使用时,提供了在使用 fuel-core
作为库时的持久存储功能。
fuels = { version = "0.63.0", features = ["rocksdb"] }