Skip to content

Commit 8acd918

Browse files
🐛 Improve errors handling (#180)
1 parent 1f8c17d commit 8acd918

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

Runtime/codebase/SessionWallet.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,26 +172,33 @@ public TransactionInstruction RevokeSessionIX()
172172
/// Checks if the session token account has been initialized by checking if the account data is present on the blockchain.
173173
/// </summary>
174174
/// <returns>True if the session token account has been initialized, false otherwise.</returns>
175-
public async Task<bool> IsSessionTokenInitialized()
175+
public async Task<bool> IsSessionTokenInitialized(Commitment commitment = Commitment.Confirmed)
176176
{
177-
var sessionTokenData = await ActiveRpcClient.GetAccountInfoAsync(SessionTokenPDA);
178-
return sessionTokenData.Result.Value != null;
177+
var sessionTokenData = await ActiveRpcClient.GetAccountInfoAsync(SessionTokenPDA, commitment);
178+
return sessionTokenData?.Result?.Value != null;
179179
}
180180

181181
/// <summary>
182182
/// Checks if the session token is still valid by verifying if the session token account exists on the blockchain and if its validity period has not expired.
183183
/// </summary>
184184
/// <returns>True if the session token is still valid, false otherwise.</returns>
185-
public async Task<bool> IsSessionTokenValid()
185+
public async Task<bool> IsSessionTokenValid(Commitment commitment = Commitment.Confirmed)
186186
{
187-
var sessionTokenData = (await ActiveRpcClient.GetAccountInfoAsync(SessionTokenPDA)).Result.Value.Data[0];
187+
var sessionTokenDataResult = await ActiveRpcClient.GetAccountInfoAsync(SessionTokenPDA, commitment);
188+
var sessionTokenData = sessionTokenDataResult.Result?.Value?.Data?[0];
188189
if (sessionTokenData == null) return false;
189190
return SessionToken.Deserialize(Convert.FromBase64String(sessionTokenData)).ValidUntil > DateTimeOffset.UtcNow.ToUnixTimeSeconds();
190191
}
191192

192-
public async Task<PublicKey> Authority()
193+
/// <summary>
194+
/// Returns the authority of the session token account.
195+
/// </summary>
196+
/// <param name="commitment"></param>
197+
/// <returns></returns>
198+
public async Task<PublicKey> Authority(Commitment commitment = Commitment.Confirmed)
193199
{
194-
var sessionTokenData = (await ActiveRpcClient.GetAccountInfoAsync(SessionTokenPDA)).Result.Value.Data[0];
200+
var sessionTokenDataResult = await ActiveRpcClient.GetAccountInfoAsync(SessionTokenPDA, commitment);
201+
var sessionTokenData = sessionTokenDataResult.Result?.Value?.Data?[0];
195202
if (sessionTokenData == null) return null;
196203
return SessionToken.Deserialize(Convert.FromBase64String(sessionTokenData)).Authority;
197204
}

0 commit comments

Comments
 (0)