feat(starknet): enhance token provider implementation and type safety #3132
+80
−49
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request Title: feat(starknet): enhance token provider implementation and type safety
Relates to
This PR relates to improving the Starknet plugin's token provider implementation and type safety.
Risks
Low - The changes are mostly improvements to existing code and type definitions, with no breaking changes to the API.
Background
What does this PR do?
fetchWithRetry
methodgetTokensInWallet
with proper Starknet support and cachingWhat kind of change is this?
Documentation changes needed?
My changes do not require a change to the project documentation as they are internal improvements to the codebase.
Testing
Where should a reviewer start?
packages/plugin-starknet/src/providers/token.ts
packages/plugin-starknet/src/types/declarations.d.ts
Detailed testing steps
Test token balance retrieval:
const walletProvider = new WalletProvider(runtime);
const provider = new TokenProvider(tokenAddress, walletProvider);
const balances = await provider.getTokensInWallet();
Verify caching behavior:
typescript
// First call should fetch from network
const firstCall = await provider.getTokensInWallet();
// Second call should return cached data
const secondCall = await provider.getTokensInWallet();
Test error handling:
typescript
// Should handle errors gracefully
try {
await provider.getTokensInWallet();
} catch (error) {
// Should provide meaningful error message
console.error(error);
}
Changes Summary
The PR focuses on improving code quality and maintainability while ensuring type safety throughout the Starknet plugin implementation.