@@ -32,7 +32,7 @@ pub trait TransferToIdentity: Waitable {
32
32
signing_transfer_key_to_use : Option < & IdentityPublicKey > ,
33
33
signer : S ,
34
34
settings : Option < PutSettings > ,
35
- ) -> Result < u64 , Error > ;
35
+ ) -> Result < ( u64 , u64 ) , Error > ;
36
36
}
37
37
38
38
#[ async_trait:: async_trait]
@@ -45,7 +45,7 @@ impl TransferToIdentity for Identity {
45
45
signing_transfer_key_to_use : Option < & IdentityPublicKey > ,
46
46
signer : S ,
47
47
settings : Option < PutSettings > ,
48
- ) -> Result < u64 , Error > {
48
+ ) -> Result < ( u64 , u64 ) , Error > {
49
49
let new_identity_nonce = sdk. get_identity_nonce ( self . id ( ) , true , settings) . await ?;
50
50
let user_fee_increase = settings. and_then ( |settings| settings. user_fee_increase ) ;
51
51
let state_transition = IdentityCreditTransferTransition :: try_from_identity (
@@ -60,10 +60,21 @@ impl TransferToIdentity for Identity {
60
60
None ,
61
61
) ?;
62
62
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 ?;
64
65
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) )
68
79
}
69
80
}
0 commit comments