diff --git a/sdk/src/wallet/operations/transaction/account.rs b/sdk/src/wallet/operations/transaction/account.rs index 72d6ec29c2..c95a826b17 100644 --- a/sdk/src/wallet/operations/transaction/account.rs +++ b/sdk/src/wallet/operations/transaction/account.rs @@ -51,17 +51,6 @@ where where crate::wallet::Error: From, { - let wallet_data = self.data().await; - let implicit_account_data = wallet_data - .unspent_outputs - .get(output_id) - .ok_or(Error::ImplicitAccountNotFound)?; - let implicit_account = if implicit_account_data.output.is_implicit_account() { - implicit_account_data.output.as_basic() - } else { - return Err(Error::ImplicitAccountNotFound); - }; - let key_source = match key_source.map(Into::into) { Some(key_source) => key_source, None => self.bip_path().await.ok_or(Error::MissingBipPath)?.into(), @@ -83,6 +72,17 @@ where } }; + let wallet_data = self.data().await; + let implicit_account_data = wallet_data + .unspent_outputs + .get(output_id) + .ok_or(Error::ImplicitAccountNotFound)?; + let implicit_account = if implicit_account_data.output.is_implicit_account() { + implicit_account_data.output.as_basic() + } else { + return Err(Error::ImplicitAccountNotFound); + }; + let account_id = AccountId::from(output_id); let account = AccountOutput::build_with_amount(implicit_account.amount(), account_id) .with_mana(implicit_account_data.output.available_mana(