Skip to content

Commit 2b1c252

Browse files
authored
fix: proof result error for credit transfers in sdk (#2451)
1 parent 0743be2 commit 2b1c252

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

packages/rs-sdk/src/platform/transition/transfer.rs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ pub trait TransferToIdentity: Waitable {
3232
signing_transfer_key_to_use: Option<&IdentityPublicKey>,
3333
signer: S,
3434
settings: Option<PutSettings>,
35-
) -> Result<u64, Error>;
35+
) -> Result<(u64, u64), Error>;
3636
}
3737

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

63-
let identity: PartialIdentity = state_transition.broadcast_and_wait(sdk, settings).await?;
63+
let (sender, receiver): (PartialIdentity, PartialIdentity) =
64+
state_transition.broadcast_and_wait(sdk, settings).await?;
6465

65-
identity.balance.ok_or(Error::DapiClientError(
66-
"expected an identity balance after transfer".to_string(),
67-
))
66+
let sender_balance = sender.balance.ok_or_else(|| {
67+
Error::DapiClientError(
68+
"expected an identity balance after transfer (sender)".to_string(),
69+
)
70+
})?;
71+
72+
let receiver_balance = receiver.balance.ok_or_else(|| {
73+
Error::DapiClientError(
74+
"expected an identity balance after transfer (receiver)".to_string(),
75+
)
76+
})?;
77+
78+
Ok((sender_balance, receiver_balance))
6879
}
6980
}

0 commit comments

Comments
 (0)