⌘K

Icon Link查询区块链

一旦您设置了提供程序,就可以与 Fuel 区块链进行交互。以下是您可以使用提供程序执行的一些操作示例;有关 API 的更详细概述,请查阅官方提供程序 API 文档 Icon Link

Icon Link设置

您可能需要首先设置一个测试区块链。如果您连接到外部区块链,则可以跳过此步骤。

use fuels::prelude::*;
 
// Set up our test blockchain.
 
// Create a random wallet (more on wallets later).
let wallet = WalletUnlocked::new_random(None);
 
// How many coins in our wallet.
let number_of_coins = 1;
 
// The amount/value in each coin in our wallet.
let amount_per_coin = 3;
 
let coins = setup_single_asset_coins(
    wallet.address(),
    AssetId::zeroed(),
    number_of_coins,
    amount_per_coin,
);
 
let retry_config = RetryConfig::new(3, Backoff::Fixed(Duration::from_secs(2)))?;
let provider = setup_test_provider(coins.clone(), vec![], None, None)
    .await?
    .with_retry_config(retry_config);

Icon Link从地址获取所有币

此方法返回钱包中所有未使用的币(特定资产 ID 的)。

let coins = provider
    .get_coins(wallet.address(), *provider.base_asset_id())
    .await?;
assert_eq!(coins.len(), 1);

Icon Link获取地址拥有的可花费资源

以下示例显示了如何获取地址拥有的资源。首先,您创建一个 ResourceFilter,其中指定了目标地址、资产 ID 和金额。您还可以定义在检索资源时应排除的 UTXO ID 和消息 ID:

pub struct ResourceFilter {
    pub from: Bech32Address,
    pub asset_id: Option<AssetId>,
    pub amount: u64,
    pub excluded_utxos: Vec<UtxoId>,
    pub excluded_message_nonces: Vec<Nonce>,
}

该示例使用了资产 ID 和排除列表的默认值。这分别解析为基本资产 ID 和空向量用于 ID 列表:

let filter = ResourceFilter {
    from: wallet.address().clone(),
    amount: 1,
    ..Default::default()
};
let spendable_resources = provider.get_spendable_resources(filter).await?;
assert_eq!(spendable_resources.len(), 1);

Icon Link从地址获取余额

获取地址的所有资产的可花费余额。这与获取币不同,因为我们只返回数字(每个资产 ID 的 UTXOs 币金额之和),而不是 UTXOs 币本身。

let _balances = provider.get_balances(wallet.address()).await?;