Skip to content

Commit

Permalink
Merge branch 'master' into oleksii/client-version-check
Browse files Browse the repository at this point in the history
  • Loading branch information
Br1ght0ne committed Oct 16, 2023
2 parents a274fbe + 7534c12 commit 5a0529f
Show file tree
Hide file tree
Showing 36 changed files with 755 additions and 699 deletions.
2 changes: 1 addition & 1 deletion docs/src/connecting/short-lived.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ You can also use the test helper `setup_test_provider()` for this:
You can also use `launch_provider_and_get_wallet()`, which abstracts away the `setup_test_provider()` and the wallet creation, all in one single method:

```rust,ignore
let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;
```

## Features
Expand Down
15 changes: 3 additions & 12 deletions docs/src/getting-started.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,15 @@
# Getting Started

## Dependencies
## Installation Guide

<!-- This section should list the dependencies for the Fuel Rust SDK -->
<!-- rs_dependencies:example:start -->
The dependencies for using the Fuel Rust SDK are:

-- [The latest `stable` Rust toolchain](https://docs.fuel.network/guides/installation/#installing-rust);
-- [`forc` and `fuel-core` binaries](https://docs.fuel.network/guides/installation/#installing-the-fuel-toolchain-using-fuelup).
<!-- rs_dependencies:example:end -->
Please visit the Fuel [installation guide](https://docs.fuel.network/guides/installation) to install the Fuel toolchain binaries and prerequisites.

`forc` is Sway equivalent of Rust's `cargo`. `fuel-core` is a Fuel full node implementation.

<!-- This section should list the main ways developers can use the Fuel Rust SDK -->
<!-- rs_uses:example:start -->
There are two main ways you can use the Fuel Rust SDK:

1. Creating a new Sway project with `forc` and running the tests
2. Creating a standalone project and importing the `fuels-rs` crate
<!-- rs_uses:example:end -->

## Creating a new project with Forc

Expand Down Expand Up @@ -135,4 +126,4 @@ cargo test -- --nocapture

## More in-depth Fuel and Sway knowledge

Read [The Sway Book](https://fuellabs.github.io/sway/master/book/introduction/index.html) for more in-depth knowledge about Sway, the official smart contract language for the Fuel Virtual Machine.
Read [The Sway Book](https://docs.fuel.network/docs/sway/) for more in-depth knowledge about Sway, the official smart contract language for the Fuel Virtual Machine.
44 changes: 18 additions & 26 deletions examples/contracts/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,20 @@
mod tests {
use fuels::{
core::codec::DecoderConfig,
prelude::{LoadConfiguration, StorageConfiguration},
types::{
errors::{error, Error, Result},
Bits256,
},
prelude::{Config, LoadConfiguration, StorageConfiguration},
types::{errors::Result, Bits256},
};

#[tokio::test]
async fn instantiate_client() -> Result<()> {
// ANCHOR: instantiate_client
use fuels::{
fuel_node::{Config, FuelService},
prelude::Provider,
};
use fuels::prelude::{FuelService, Provider};

// Run the fuel node.
let server = FuelService::new_node(Config::local_node())
.await
.map_err(|err| error!(InfrastructureError, "{err}"))?;
let server = FuelService::start(Config::local_node()).await?;

// Create a client that will talk to the node created above.
let client = Provider::from(server.bound_address).await?;
let client = Provider::from(server.bound_address()).await?;
assert!(client.healthy().await?);
// ANCHOR_END: instantiate_client
Ok(())
Expand All @@ -35,7 +27,7 @@ mod tests {

// ANCHOR: deploy_contract
// This helper will launch a local node and provide a test wallet linked to it
let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

// This will load and deploy your contract binary to the chain so that its ID can
// be used to initialize the instance
Expand Down Expand Up @@ -91,7 +83,7 @@ mod tests {
abi = "packages/fuels/tests/contracts/contract_test/out/debug/contract_test-abi.json"
));

let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let contract_id = Contract::load_from(
"../../packages/fuels/tests/contracts/contract_test/out/debug/contract_test.bin",
Expand Down Expand Up @@ -124,7 +116,7 @@ mod tests {
};
use rand::prelude::{Rng, SeedableRng, StdRng};

let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let contract_id_1 = Contract::load_from(
"../../packages/fuels/tests/contracts/contract_test/out/debug/contract_test.bin",
Expand Down Expand Up @@ -224,7 +216,7 @@ mod tests {
));

let wallets =
launch_custom_provider_and_get_wallets(WalletsConfig::default(), None, None).await;
launch_custom_provider_and_get_wallets(WalletsConfig::default(), None, None).await?;

let contract_id_1 = Contract::load_from(
"../../packages/fuels/tests/contracts/contract_test/out/debug/contract_test.bin",
Expand Down Expand Up @@ -275,7 +267,7 @@ mod tests {
abi = "packages/fuels/tests/contracts/contract_test/out/debug/contract_test-abi.json"
));

let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let contract_id = Contract::load_from(
"../../packages/fuels/tests/contracts/contract_test/out/debug/contract_test.bin",
Expand Down Expand Up @@ -345,7 +337,7 @@ mod tests {
abi = "packages/fuels/tests/contracts/token_ops/out/debug/token_ops-abi.json"
));

let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let contract_id = Contract::load_from(
"../../packages/fuels/tests/contracts/token_ops/out/debug/token_ops\
Expand Down Expand Up @@ -385,7 +377,7 @@ mod tests {
abi="packages/fuels/tests/contracts/lib_contract_caller/out/debug/lib_contract_caller-abi.json"
));

let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let called_contract_id: ContractId = Contract::load_from(
"../../packages/fuels/tests/contracts/lib_contract/out/debug/lib_contract.bin",
Expand Down Expand Up @@ -456,7 +448,7 @@ mod tests {
abi =
"packages/fuels/tests/contracts/contract_test/out/debug/contract_test-abi.json"
));
let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let contract_id = Contract::load_from(
"../../packages/fuels/tests/contracts/contract_test/out/debug/contract_test.bin",
Expand Down Expand Up @@ -501,7 +493,7 @@ mod tests {
abi =
"packages/fuels/tests/contracts/contract_test/out/debug/contract_test-abi.json"
));
let wallet_original = launch_provider_and_get_wallet().await;
let wallet_original = launch_provider_and_get_wallet().await?;

let wallet = wallet_original.clone();
// Your bech32m encoded contract ID.
Expand Down Expand Up @@ -536,7 +528,7 @@ mod tests {
abi = "packages/fuels/tests/contracts/contract_test/out/debug/contract_test-abi.json"
));

let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let contract_id = Contract::load_from(
"../../packages/fuels/tests/contracts/contract_test/out/debug/contract_test.bin",
Expand Down Expand Up @@ -574,7 +566,7 @@ mod tests {
abi = "packages/fuels/tests/contracts/contract_test/out/debug/contract_test-abi.json"
));

let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let contract_id = Contract::load_from(
"../../packages/fuels/tests/contracts/contract_test/out/debug/contract_test.bin",
Expand Down Expand Up @@ -630,7 +622,7 @@ mod tests {
abi = "packages/fuels/tests/contracts/contract_test/out/debug/contract_test-abi.json"
));

let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;

let contract_id = Contract::load_from(
"../../packages/fuels/tests/contracts/contract_test/out/debug/contract_test.bin",
Expand Down Expand Up @@ -672,7 +664,7 @@ mod tests {
));

let config = WalletsConfig::new(Some(2), Some(1), Some(DEFAULT_COIN_AMOUNT));
let mut wallets = launch_custom_provider_and_get_wallets(config, None, None).await;
let mut wallets = launch_custom_provider_and_get_wallets(config, None, None).await?;
let wallet_1 = wallets.pop().unwrap();
let wallet_2 = wallets.pop().unwrap();

Expand Down
14 changes: 6 additions & 8 deletions examples/cookbook/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ mod tests {
.into();

let wallet_config = WalletsConfig::new_multiple_assets(1, asset_configs);
let wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None).await;
let wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None).await?;
let wallet = &wallets[0];
// ANCHOR_END: liquidity_wallet

Expand Down Expand Up @@ -91,7 +91,7 @@ mod tests {
#[tokio::test]
async fn custom_chain() -> Result<()> {
// ANCHOR: custom_chain_import
use fuels::{fuel_node::ChainConfig, prelude::*, tx::ConsensusParameters};
use fuels::{prelude::*, tx::ConsensusParameters};
// ANCHOR_END: custom_chain_import

// ANCHOR: custom_chain_consensus
Expand All @@ -118,7 +118,7 @@ mod tests {
// ANCHOR: custom_chain_provider
let node_config = Config::local_node();
let _provider =
setup_test_provider(coins, vec![], Some(node_config), Some(chain_config)).await;
setup_test_provider(coins, vec![], Some(node_config), Some(chain_config)).await?;
// ANCHOR_END: custom_chain_provider
Ok(())
}
Expand All @@ -138,7 +138,7 @@ mod tests {
let (coins, _) =
setup_multiple_assets_coins(wallet_1.address(), NUM_ASSETS, NUM_COINS, AMOUNT);

let provider = setup_test_provider(coins, vec![], None, None).await;
let provider = setup_test_provider(coins, vec![], None, None).await?;

wallet_1.set_provider(provider.clone());
wallet_2.set_provider(provider.clone());
Expand Down Expand Up @@ -195,17 +195,15 @@ mod tests {
use std::path::PathBuf;

use fuels::prelude::*;

// ANCHOR: create_or_use_rocksdb
let provider_config = Config {
database_path: PathBuf::from("/tmp/.spider/db"),
database_type: DbType::RocksDb,
database_type: DbType::RocksDb(Some(PathBuf::from("/tmp/.spider/db"))),
..Config::local_node()
};
// ANCHOR_END: create_or_use_rocksdb

launch_custom_provider_and_get_wallets(Default::default(), Some(provider_config), None)
.await;
.await?;

Ok(())
}
Expand Down
4 changes: 2 additions & 2 deletions examples/predicates/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ mod tests {
})
.collect::<Vec<_>>();

let provider = setup_test_provider(all_coins, vec![], None, None).await;
let provider = setup_test_provider(all_coins, vec![], None, None).await?;

[&mut wallet, &mut wallet2, &mut wallet3, &mut receiver]
.iter_mut()
Expand Down Expand Up @@ -138,7 +138,7 @@ mod tests {
}],
);

let wallets = &launch_custom_provider_and_get_wallets(wallets_config, None, None).await;
let wallets = &launch_custom_provider_and_get_wallets(wallets_config, None, None).await?;

let first_wallet = &wallets[0];
let second_wallet = &wallets[1];
Expand Down
7 changes: 4 additions & 3 deletions examples/providers/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ mod tests {
use fuels::prelude::Result;

#[tokio::test]
async fn connect_to_fuel_node() {
async fn connect_to_fuel_node() -> Result<()> {
// ANCHOR: connect_to_testnet
use std::str::FromStr;

Expand All @@ -28,14 +28,15 @@ mod tests {
dbg!(wallet.address().to_string());
// ANCHOR_END: connect_to_testnet

let provider = setup_test_provider(vec![], vec![], None, None).await;
let provider = setup_test_provider(vec![], vec![], None, None).await?;
let port = provider.url().split(':').last().unwrap();

// ANCHOR: local_node_address
let _provider = Provider::connect(format!("127.0.0.1:{port}"))
.await
.unwrap();
// ANCHOR_END: local_node_address
Ok(())
}

#[tokio::test]
Expand Down Expand Up @@ -66,7 +67,7 @@ mod tests {
// ANCHOR: configure_retry
let retry_config = RetryConfig::new(3, Backoff::Fixed(Duration::from_secs(2)))?;
let provider = setup_test_provider(coins.clone(), vec![], None, None)
.await
.await?
.with_retry_config(retry_config);
// ANCHOR_END: configure_retry
// ANCHOR_END: setup_test_blockchain
Expand Down
2 changes: 1 addition & 1 deletion examples/rust_bindings/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ mod tests {
#[allow(unused_variables)]
async fn transform_json_to_bindings() -> Result<()> {
use fuels::test_helpers::launch_provider_and_get_wallet;
let wallet = launch_provider_and_get_wallet().await;
let wallet = launch_provider_and_get_wallet().await?;
{
// ANCHOR: use_abigen
use fuels::prelude::*;
Expand Down
Loading

0 comments on commit 5a0529f

Please sign in to comment.