Skip to content

Commit

Permalink
fix: proof result error for credit transfers in sdk (#2451)
Browse files Browse the repository at this point in the history
  • Loading branch information
pauldelucia authored Feb 4, 2025
1 parent 0743be2 commit 2b1c252
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions packages/rs-sdk/src/platform/transition/transfer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ pub trait TransferToIdentity: Waitable {
signing_transfer_key_to_use: Option<&IdentityPublicKey>,
signer: S,
settings: Option<PutSettings>,
) -> Result<u64, Error>;
) -> Result<(u64, u64), Error>;
}

#[async_trait::async_trait]
Expand All @@ -45,7 +45,7 @@ impl TransferToIdentity for Identity {
signing_transfer_key_to_use: Option<&IdentityPublicKey>,
signer: S,
settings: Option<PutSettings>,
) -> Result<u64, Error> {
) -> Result<(u64, u64), Error> {
let new_identity_nonce = sdk.get_identity_nonce(self.id(), true, settings).await?;
let user_fee_increase = settings.and_then(|settings| settings.user_fee_increase);
let state_transition = IdentityCreditTransferTransition::try_from_identity(
Expand All @@ -60,10 +60,21 @@ impl TransferToIdentity for Identity {
None,
)?;

let identity: PartialIdentity = state_transition.broadcast_and_wait(sdk, settings).await?;
let (sender, receiver): (PartialIdentity, PartialIdentity) =
state_transition.broadcast_and_wait(sdk, settings).await?;

identity.balance.ok_or(Error::DapiClientError(
"expected an identity balance after transfer".to_string(),
))
let sender_balance = sender.balance.ok_or_else(|| {
Error::DapiClientError(
"expected an identity balance after transfer (sender)".to_string(),
)
})?;

let receiver_balance = receiver.balance.ok_or_else(|| {
Error::DapiClientError(
"expected an identity balance after transfer (receiver)".to_string(),
)
})?;

Ok((sender_balance, receiver_balance))
}
}

0 comments on commit 2b1c252

Please sign in to comment.