Struct FuelClient

Source
pub struct FuelClient { /* private fields */ }

Implementations§

Source§

impl FuelClient

Source

pub fn new(url: impl AsRef<str>) -> Result<Self>

Source

pub fn with_required_fuel_block_height( &mut self, new_height: Option<BlockHeight>, ) -> &mut Self

Source

pub fn use_manual_consistency_policy( &mut self, height: Option<BlockHeight>, ) -> &mut Self

Source

pub fn required_block_height(&self) -> Option<BlockHeight>

Source

pub async fn query<ResponseData, Vars>( &self, q: Operation<ResponseData, Vars>, ) -> Result<ResponseData>
where Vars: Serialize, ResponseData: DeserializeOwned + 'static,

Send the GraphQL query to the client.

Source

pub fn latest_stf_version(&self) -> Option<StateTransitionBytecodeVersion>

Source

pub fn latest_consensus_parameters_version( &self, ) -> Option<ConsensusParametersVersion>

Source

pub async fn health(&self) -> Result<bool>

Source

pub async fn node_info(&self) -> Result<NodeInfo>

Source

pub async fn latest_gas_price(&self) -> Result<LatestGasPrice>

Source

pub async fn estimate_gas_price( &self, block_horizon: u32, ) -> Result<EstimateGasPrice>

Source

pub async fn connected_peers_info(&self) -> Result<Vec<PeerInfo>>

Source

pub async fn chain_info(&self) -> Result<ChainInfo>

Source

pub async fn consensus_parameters( &self, version: i32, ) -> Result<Option<ConsensusParameters>>

Source

pub async fn state_transition_byte_code_by_version( &self, version: i32, ) -> Result<Option<StateTransitionBytecode>>

Source

pub async fn state_transition_byte_code_by_root( &self, root: Bytes32, ) -> Result<Option<StateTransitionBytecode>>

Source

pub async fn dry_run( &self, txs: &[Transaction], ) -> Result<Vec<TransactionExecutionStatus>>

Default dry run, matching the exact configuration as the node

Source

pub async fn dry_run_opt( &self, txs: &[Transaction], utxo_validation: Option<bool>, gas_price: Option<u64>, at_height: Option<BlockHeight>, ) -> Result<Vec<TransactionExecutionStatus>>

Dry run with options to override the node behavior

Source

pub async fn storage_read_replay( &self, height: &BlockHeight, ) -> Result<Vec<StorageReadReplayEvent>>

Get storage read replay for a block

Source

pub async fn assemble_tx( &self, tx: &Transaction, block_horizon: u32, required_balances: Vec<RequiredBalance>, fee_address_index: u16, exclude: Option<(Vec<UtxoId>, Vec<Nonce>)>, estimate_predicates: bool, reserve_gas: Option<u64>, ) -> Result<AssembleTransactionResult>

Assembles the transaction based on the provided requirements. The return transaction contains:

  • Input coins to cover required_balances
  • Input coins to cover the fee of the transaction based on the gas price from block_horizon
  • Change or Destroy outputs for all assets from the inputs
  • Variable outputs in the case they are required during the execution
  • Contract inputs and outputs in the case they are required during the execution
  • Reserved witness slots for signed coins filled with 64 zeroes
  • Set script gas limit(unless script is empty)
  • Estimated predicates, if estimate_predicates == true

Returns an error if:

  • The number of required balances exceeds the maximum number of inputs allowed.
  • The fee address index is out of bounds.
  • The same asset has multiple change policies(either the receiver of the change is different, or one of the policies states about the destruction of the token while the other does not). The Change output from the transaction also count as a ChangePolicy.
  • The number of excluded coin IDs exceeds the maximum number of inputs allowed.
  • Required assets have multiple entries.
  • If accounts don’t have sufficient amounts to cover the transaction requirements in assets.
  • If a constructed transaction breaks the rules defined by consensus parameters.
Source

pub async fn estimate_predicates(&self, tx: &mut Transaction) -> Result<()>

Estimate predicates for the transaction

Source

pub async fn submit(&self, tx: &Transaction) -> Result<TransactionId>

Source

pub async fn submit_opt( &self, tx: &Transaction, estimate_predicates: Option<bool>, ) -> Result<TransactionId>

Source

pub async fn submit_and_await_commit( &self, tx: &Transaction, ) -> Result<TransactionStatus>

Similar to Self::submit_and_await_commit_opt, but with default options.

Source

pub async fn submit_and_await_commit_opt( &self, tx: &Transaction, estimate_predicates: Option<bool>, ) -> Result<TransactionStatus>

Submit the transaction and wait for it either to be included in a block or removed from TxPool.

If estimate_predicates is set, the predicates will be estimated before the transaction is inserted into transaction pool.

This will wait forever if needed, so consider wrapping this call with a tokio::time::timeout.

Source

pub async fn submit_and_await_commit_with_tx( &self, tx: &Transaction, ) -> Result<StatusWithTransaction>

Similar to Self::submit_and_await_commit, but the status also contains transaction.

Source

pub async fn submit_and_await_commit_with_tx_opt( &self, tx: &Transaction, estimate_predicates: Option<bool>, ) -> Result<StatusWithTransaction>

Similar to Self::submit_and_await_commit_opt, but the status also contains transaction.

Source

pub async fn submit_and_await_status<'a>( &'a self, tx: &'a Transaction, ) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>

Similar to Self::submit_and_await_commit, but includes all intermediate states.

Source

pub async fn submit_and_await_status_opt<'a>( &'a self, tx: &'a Transaction, estimate_predicates: Option<bool>, ) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>

Similar to Self::submit_and_await_commit_opt, but includes all intermediate states.

Source

pub async fn contract_storage_slots<'a>( &'a self, contract_id: &'a ContractId, ) -> Result<impl Stream<Item = Result<(Bytes32, Vec<u8>)>> + 'a>

Requests all storage slots for the contract_id.

Source

pub async fn contract_storage_balances<'a>( &'a self, contract_id: &'a ContractId, ) -> Result<impl Stream<Item = Result<ContractBalance>> + 'a>

Requests all storage balances for the contract_id.

Source

pub async fn contract_slots_values( &self, contract_id: &ContractId, block_height: Option<BlockHeight>, requested_storage_slots: Vec<Bytes32>, ) -> Result<Vec<(Bytes32, Vec<u8>)>>

Source

pub async fn contract_balance_values( &self, contract_id: &ContractId, block_height: Option<BlockHeight>, requested_storage_slots: Vec<AssetId>, ) -> Result<Vec<ContractBalance>>

Source

pub async fn start_session(&self) -> Result<String>

Source

pub async fn end_session(&self, id: &str) -> Result<bool>

Source

pub async fn reset(&self, id: &str) -> Result<bool>

Source

pub async fn execute(&self, id: &str, op: &Instruction) -> Result<bool>

Source

pub async fn register(&self, id: &str, register: u32) -> Result<Word>

Source

pub async fn memory(&self, id: &str, start: u32, size: u32) -> Result<Vec<u8>>

Source

pub async fn set_breakpoint( &self, session_id: &str, contract: ContractId, pc: u64, ) -> Result<()>

Source

pub async fn set_single_stepping( &self, session_id: &str, enable: bool, ) -> Result<()>

Source

pub async fn start_tx( &self, session_id: &str, tx: &Transaction, ) -> Result<RunResult>

Source

pub async fn continue_tx(&self, session_id: &str) -> Result<RunResult>

Source

pub async fn transaction( &self, id: &TxId, ) -> Result<Option<TransactionResponse>>

Source

pub async fn transaction_status(&self, id: &TxId) -> Result<TransactionStatus>

Get the status of a transaction

Source

pub async fn subscribe_transaction_status<'a>( &'a self, id: &'a TxId, ) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>

Subscribe to the status of a transaction

Source

pub async fn await_transaction_commit( &self, id: &TxId, ) -> Result<TransactionStatus>

Awaits for the transaction to be committed into a block

This will wait forever if needed, so consider wrapping this call with a tokio::time::timeout.

Source

pub async fn transactions( &self, request: PaginationRequest<String>, ) -> Result<PaginatedResult<TransactionResponse, String>>

returns a paginated set of transactions sorted by block height

Source

pub async fn transactions_by_owner( &self, owner: &Address, request: PaginationRequest<String>, ) -> Result<PaginatedResult<TransactionResponse, String>>

Returns a paginated set of transactions associated with a txo owner address.

Source

pub async fn receipts(&self, id: &TxId) -> Result<Option<Vec<Receipt>>>

Source

pub async fn produce_blocks( &self, blocks_to_produce: u32, start_timestamp: Option<u64>, ) -> Result<BlockHeight>

Source

pub async fn block(&self, id: &BlockId) -> Result<Option<Block>>

Source

pub async fn block_by_height( &self, height: BlockHeight, ) -> Result<Option<Block>>

Source

pub async fn da_compressed_block( &self, height: BlockHeight, ) -> Result<Option<Vec<u8>>>

Source

pub async fn blob(&self, id: BlobId) -> Result<Option<Blob>>

Retrieve a blob by its ID

Source

pub async fn blob_exists(&self, id: BlobId) -> Result<bool>

Check whether a blob with ID exists

Source

pub async fn blocks( &self, request: PaginationRequest<String>, ) -> Result<PaginatedResult<Block, String>>

Retrieve multiple blocks

Source

pub async fn coin(&self, id: &UtxoId) -> Result<Option<Coin>>

Source

pub async fn coins( &self, owner: &Address, asset_id: Option<&AssetId>, request: PaginationRequest<String>, ) -> Result<PaginatedResult<Coin, String>>

Retrieve a page of coins by their owner

Source

pub async fn coins_to_spend( &self, owner: &Address, spend_query: Vec<(AssetId, u128, Option<u16>)>, excluded_ids: Option<(Vec<UtxoId>, Vec<Nonce>)>, ) -> Result<Vec<Vec<CoinType>>>

Retrieve coins to spend in a transaction

Source

pub async fn contract(&self, id: &ContractId) -> Result<Option<Contract>>

Source

pub async fn contract_balance( &self, id: &ContractId, asset: Option<&AssetId>, ) -> Result<u64>

Source

pub async fn balance( &self, owner: &Address, asset_id: Option<&AssetId>, ) -> Result<u64>

Source

pub async fn balances( &self, owner: &Address, request: PaginationRequest<String>, ) -> Result<PaginatedResult<Balance, String>>

Source

pub async fn contract_balances( &self, contract: &ContractId, request: PaginationRequest<String>, ) -> Result<PaginatedResult<ContractBalance, String>>

Source

pub async fn message(&self, nonce: &Nonce) -> Result<Option<Message>>

Source

pub async fn messages( &self, owner: Option<&Address>, request: PaginationRequest<String>, ) -> Result<PaginatedResult<Message, String>>

Source

pub async fn contract_info( &self, contract: &ContractId, ) -> Result<Option<Contract>>

Source

pub async fn message_status(&self, nonce: &Nonce) -> Result<MessageStatus>

Source

pub async fn message_proof( &self, transaction_id: &TxId, nonce: &Nonce, commit_block_id: Option<&BlockId>, commit_block_height: Option<BlockHeight>, ) -> Result<MessageProof>

Request a merkle proof of an output message.

Source

pub async fn relayed_transaction_status( &self, id: &Bytes32, ) -> Result<Option<RelayedTransactionStatus>>

Source

pub async fn asset_info(&self, asset_id: &AssetId) -> Result<AssetDetail>

Trait Implementations§

Source§

impl Clone for FuelClient

Source§

fn clone(&self) -> FuelClient

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FuelClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<S> From<S> for FuelClient
where S: Into<SocketAddr>,

Source§

fn from(socket: S) -> Self

Converts to this type from the input type.
Source§

impl FromStr for FuelClient

Source§

type Err = Error

The associated error which can be returned from parsing.
Source§

fn from_str(str: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AnyDebug for T
where T: Any + Debug,

Source§

fn as_any_ref(&self) -> &(dyn Any + 'static)

Returns a reference to the underlying type as Any.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> StorageAsMut for T

Source§

fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>
where Type: Mappable,

Source§

fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>
where Type: Mappable,

Source§

impl<T> StorageAsRef for T

Source§

fn storage<Type>(&self) -> StorageRef<'_, Self, Type>
where Type: Mappable,

Source§

fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>
where Type: Mappable,

Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> IsFieldType<T> for T

Source§

impl<T> MaybeSendSync for T