@sodax/dapp-kit 1.0.2-beta → 1.0.4-beta-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +37 -1
- package/dist/index.d.ts +37 -1
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +40 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/hooks/mm/index.ts +1 -0
- package/src/hooks/mm/useATokensBalances.ts +87 -0
package/dist/index.d.mts
CHANGED
|
@@ -424,6 +424,42 @@ type UseATokenParams = {
|
|
|
424
424
|
*/
|
|
425
425
|
declare function useAToken({ aToken, queryOptions }: UseATokenParams): UseQueryResult<XToken, Error>;
|
|
426
426
|
|
|
427
|
+
type UseATokensBalancesParams = {
|
|
428
|
+
aTokens: readonly Address[];
|
|
429
|
+
spokeProvider?: SpokeProvider;
|
|
430
|
+
userAddress?: string;
|
|
431
|
+
queryOptions?: UseQueryOptions<Map<Address, bigint>, Error>;
|
|
432
|
+
};
|
|
433
|
+
/**
|
|
434
|
+
* React hook to fetch and cache aToken balances for multiple aToken addresses in a single multicall.
|
|
435
|
+
*
|
|
436
|
+
* Accepts an array of aToken addresses, a spoke provider, and user address. The hook derives the user's
|
|
437
|
+
* hub wallet address and then fetches balanceOf for each aToken in a single multicall. Returns a Map
|
|
438
|
+
* of aToken address to balance, with querying/caching powered by React Query. This hook uses viem's
|
|
439
|
+
* multicall to batch all requests into a single RPC call for better performance.
|
|
440
|
+
*
|
|
441
|
+
* @param {UseATokensBalancesParams} params - Required params object:
|
|
442
|
+
* @property {readonly Address[]} aTokens - Array of aToken contract addresses to query balances for.
|
|
443
|
+
* @property {SpokeProvider} spokeProvider - The spoke provider to derive hub wallet address from.
|
|
444
|
+
* @property {string} userAddress - User's wallet address on the spoke chain.
|
|
445
|
+
* @property {UseQueryOptions<Map<Address, bigint>, Error>} queryOptions - React Query options to control query (e.g., staleTime, refetch, etc.).
|
|
446
|
+
*
|
|
447
|
+
* @returns {UseQueryResult<Map<Address, bigint>, Error>} React Query result object:
|
|
448
|
+
* - data: Map of aToken address to balance, if available
|
|
449
|
+
* - isLoading: Boolean loading state
|
|
450
|
+
* - error: Error, if API call fails
|
|
451
|
+
*
|
|
452
|
+
* @example
|
|
453
|
+
* const { data: aTokenBalances, isLoading, error } = useATokensBalances({
|
|
454
|
+
* aTokens: [aToken1, aToken2, aToken3],
|
|
455
|
+
* spokeProvider,
|
|
456
|
+
* userAddress: '0x...',
|
|
457
|
+
* queryOptions: {}
|
|
458
|
+
* });
|
|
459
|
+
* const aToken1Balance = aTokenBalances?.get(aToken1);
|
|
460
|
+
*/
|
|
461
|
+
declare function useATokensBalances({ aTokens, spokeProvider, userAddress, queryOptions, }: UseATokensBalancesParams): UseQueryResult<Map<Address, bigint>, Error>;
|
|
462
|
+
|
|
427
463
|
type UseReservesUsdFormatParams = {
|
|
428
464
|
queryOptions?: UseQueryOptions<(ReserveData & {
|
|
429
465
|
priceInMarketReferenceCurrency: string;
|
|
@@ -1756,4 +1792,4 @@ interface SodaxProviderProps {
|
|
|
1756
1792
|
}
|
|
1757
1793
|
declare const SodaxProvider: ({ children, testnet, config, rpcConfig }: SodaxProviderProps) => ReactElement;
|
|
1758
1794
|
|
|
1759
|
-
export { type BackendPaginationParams, MIGRATION_MODE_BNUSD, MIGRATION_MODE_ICX_SODA, type MigrationIntentParams, type MigrationMode, SodaxProvider, type UseATokenParams, type UseBorrowParams, type UseMMAllowanceParams, type UseMMApproveParams, type UseRepayParams, type UseReservesDataParams, type UseReservesUsdFormatParams, type UseSupplyParams, type UseUserFormattedSummaryParams, type UseUserReservesDataParams, type UseWithdrawParams, useAToken, useBackendAllMoneyMarketAssets, useBackendAllMoneyMarketBorrowers, useBackendIntentByHash, useBackendIntentByTxHash, useBackendMoneyMarketAsset, useBackendMoneyMarketAssetBorrowers, useBackendMoneyMarketAssetSuppliers, useBackendMoneyMarketPosition, useBackendOrderbook, useBackendUserIntents, useBorrow, useBridge, useBridgeAllowance, useBridgeApprove, useCancelLimitOrder, useCancelSwap, useCancelUnstake, useClaim, useConvertedAssets, useCreateLimitOrder, useDeriveUserWalletAddress, useEstimateGas, useGetBridgeableAmount, useGetBridgeableTokens, useHubProvider, useInstantUnstake, useInstantUnstakeAllowance, useInstantUnstakeApprove, useInstantUnstakeRatio, useMMAllowance, useMMApprove, useMigrate, useMigrationAllowance, useMigrationApprove, useQuote, useRepay, useRequestTrustline, useReservesData, useReservesUsdFormat, useSodaxContext, useSpokeProvider, useStake, useStakeAllowance, useStakeApprove, useStakeRatio, useStakingConfig, useStakingInfo, useStatus, useStellarTrustlineCheck, useSupply, useSwap, useSwapAllowance, useSwapApprove, useUnstake, useUnstakeAllowance, useUnstakeApprove, useUnstakingInfo, useUnstakingInfoWithPenalty, useUserFormattedSummary, useUserReservesData, useWithdraw };
|
|
1795
|
+
export { type BackendPaginationParams, MIGRATION_MODE_BNUSD, MIGRATION_MODE_ICX_SODA, type MigrationIntentParams, type MigrationMode, SodaxProvider, type UseATokenParams, type UseATokensBalancesParams, type UseBorrowParams, type UseMMAllowanceParams, type UseMMApproveParams, type UseRepayParams, type UseReservesDataParams, type UseReservesUsdFormatParams, type UseSupplyParams, type UseUserFormattedSummaryParams, type UseUserReservesDataParams, type UseWithdrawParams, useAToken, useATokensBalances, useBackendAllMoneyMarketAssets, useBackendAllMoneyMarketBorrowers, useBackendIntentByHash, useBackendIntentByTxHash, useBackendMoneyMarketAsset, useBackendMoneyMarketAssetBorrowers, useBackendMoneyMarketAssetSuppliers, useBackendMoneyMarketPosition, useBackendOrderbook, useBackendUserIntents, useBorrow, useBridge, useBridgeAllowance, useBridgeApprove, useCancelLimitOrder, useCancelSwap, useCancelUnstake, useClaim, useConvertedAssets, useCreateLimitOrder, useDeriveUserWalletAddress, useEstimateGas, useGetBridgeableAmount, useGetBridgeableTokens, useHubProvider, useInstantUnstake, useInstantUnstakeAllowance, useInstantUnstakeApprove, useInstantUnstakeRatio, useMMAllowance, useMMApprove, useMigrate, useMigrationAllowance, useMigrationApprove, useQuote, useRepay, useRequestTrustline, useReservesData, useReservesUsdFormat, useSodaxContext, useSpokeProvider, useStake, useStakeAllowance, useStakeApprove, useStakeRatio, useStakingConfig, useStakingInfo, useStatus, useStellarTrustlineCheck, useSupply, useSwap, useSwapAllowance, useSwapApprove, useUnstake, useUnstakeAllowance, useUnstakeApprove, useUnstakingInfo, useUnstakingInfoWithPenalty, useUserFormattedSummary, useUserReservesData, useWithdraw };
|
package/dist/index.d.ts
CHANGED
|
@@ -424,6 +424,42 @@ type UseATokenParams = {
|
|
|
424
424
|
*/
|
|
425
425
|
declare function useAToken({ aToken, queryOptions }: UseATokenParams): UseQueryResult<XToken, Error>;
|
|
426
426
|
|
|
427
|
+
type UseATokensBalancesParams = {
|
|
428
|
+
aTokens: readonly Address[];
|
|
429
|
+
spokeProvider?: SpokeProvider;
|
|
430
|
+
userAddress?: string;
|
|
431
|
+
queryOptions?: UseQueryOptions<Map<Address, bigint>, Error>;
|
|
432
|
+
};
|
|
433
|
+
/**
|
|
434
|
+
* React hook to fetch and cache aToken balances for multiple aToken addresses in a single multicall.
|
|
435
|
+
*
|
|
436
|
+
* Accepts an array of aToken addresses, a spoke provider, and user address. The hook derives the user's
|
|
437
|
+
* hub wallet address and then fetches balanceOf for each aToken in a single multicall. Returns a Map
|
|
438
|
+
* of aToken address to balance, with querying/caching powered by React Query. This hook uses viem's
|
|
439
|
+
* multicall to batch all requests into a single RPC call for better performance.
|
|
440
|
+
*
|
|
441
|
+
* @param {UseATokensBalancesParams} params - Required params object:
|
|
442
|
+
* @property {readonly Address[]} aTokens - Array of aToken contract addresses to query balances for.
|
|
443
|
+
* @property {SpokeProvider} spokeProvider - The spoke provider to derive hub wallet address from.
|
|
444
|
+
* @property {string} userAddress - User's wallet address on the spoke chain.
|
|
445
|
+
* @property {UseQueryOptions<Map<Address, bigint>, Error>} queryOptions - React Query options to control query (e.g., staleTime, refetch, etc.).
|
|
446
|
+
*
|
|
447
|
+
* @returns {UseQueryResult<Map<Address, bigint>, Error>} React Query result object:
|
|
448
|
+
* - data: Map of aToken address to balance, if available
|
|
449
|
+
* - isLoading: Boolean loading state
|
|
450
|
+
* - error: Error, if API call fails
|
|
451
|
+
*
|
|
452
|
+
* @example
|
|
453
|
+
* const { data: aTokenBalances, isLoading, error } = useATokensBalances({
|
|
454
|
+
* aTokens: [aToken1, aToken2, aToken3],
|
|
455
|
+
* spokeProvider,
|
|
456
|
+
* userAddress: '0x...',
|
|
457
|
+
* queryOptions: {}
|
|
458
|
+
* });
|
|
459
|
+
* const aToken1Balance = aTokenBalances?.get(aToken1);
|
|
460
|
+
*/
|
|
461
|
+
declare function useATokensBalances({ aTokens, spokeProvider, userAddress, queryOptions, }: UseATokensBalancesParams): UseQueryResult<Map<Address, bigint>, Error>;
|
|
462
|
+
|
|
427
463
|
type UseReservesUsdFormatParams = {
|
|
428
464
|
queryOptions?: UseQueryOptions<(ReserveData & {
|
|
429
465
|
priceInMarketReferenceCurrency: string;
|
|
@@ -1756,4 +1792,4 @@ interface SodaxProviderProps {
|
|
|
1756
1792
|
}
|
|
1757
1793
|
declare const SodaxProvider: ({ children, testnet, config, rpcConfig }: SodaxProviderProps) => ReactElement;
|
|
1758
1794
|
|
|
1759
|
-
export { type BackendPaginationParams, MIGRATION_MODE_BNUSD, MIGRATION_MODE_ICX_SODA, type MigrationIntentParams, type MigrationMode, SodaxProvider, type UseATokenParams, type UseBorrowParams, type UseMMAllowanceParams, type UseMMApproveParams, type UseRepayParams, type UseReservesDataParams, type UseReservesUsdFormatParams, type UseSupplyParams, type UseUserFormattedSummaryParams, type UseUserReservesDataParams, type UseWithdrawParams, useAToken, useBackendAllMoneyMarketAssets, useBackendAllMoneyMarketBorrowers, useBackendIntentByHash, useBackendIntentByTxHash, useBackendMoneyMarketAsset, useBackendMoneyMarketAssetBorrowers, useBackendMoneyMarketAssetSuppliers, useBackendMoneyMarketPosition, useBackendOrderbook, useBackendUserIntents, useBorrow, useBridge, useBridgeAllowance, useBridgeApprove, useCancelLimitOrder, useCancelSwap, useCancelUnstake, useClaim, useConvertedAssets, useCreateLimitOrder, useDeriveUserWalletAddress, useEstimateGas, useGetBridgeableAmount, useGetBridgeableTokens, useHubProvider, useInstantUnstake, useInstantUnstakeAllowance, useInstantUnstakeApprove, useInstantUnstakeRatio, useMMAllowance, useMMApprove, useMigrate, useMigrationAllowance, useMigrationApprove, useQuote, useRepay, useRequestTrustline, useReservesData, useReservesUsdFormat, useSodaxContext, useSpokeProvider, useStake, useStakeAllowance, useStakeApprove, useStakeRatio, useStakingConfig, useStakingInfo, useStatus, useStellarTrustlineCheck, useSupply, useSwap, useSwapAllowance, useSwapApprove, useUnstake, useUnstakeAllowance, useUnstakeApprove, useUnstakingInfo, useUnstakingInfoWithPenalty, useUserFormattedSummary, useUserReservesData, useWithdraw };
|
|
1795
|
+
export { type BackendPaginationParams, MIGRATION_MODE_BNUSD, MIGRATION_MODE_ICX_SODA, type MigrationIntentParams, type MigrationMode, SodaxProvider, type UseATokenParams, type UseATokensBalancesParams, type UseBorrowParams, type UseMMAllowanceParams, type UseMMApproveParams, type UseRepayParams, type UseReservesDataParams, type UseReservesUsdFormatParams, type UseSupplyParams, type UseUserFormattedSummaryParams, type UseUserReservesDataParams, type UseWithdrawParams, useAToken, useATokensBalances, useBackendAllMoneyMarketAssets, useBackendAllMoneyMarketBorrowers, useBackendIntentByHash, useBackendIntentByTxHash, useBackendMoneyMarketAsset, useBackendMoneyMarketAssetBorrowers, useBackendMoneyMarketAssetSuppliers, useBackendMoneyMarketPosition, useBackendOrderbook, useBackendUserIntents, useBorrow, useBridge, useBridgeAllowance, useBridgeApprove, useCancelLimitOrder, useCancelSwap, useCancelUnstake, useClaim, useConvertedAssets, useCreateLimitOrder, useDeriveUserWalletAddress, useEstimateGas, useGetBridgeableAmount, useGetBridgeableTokens, useHubProvider, useInstantUnstake, useInstantUnstakeAllowance, useInstantUnstakeApprove, useInstantUnstakeRatio, useMMAllowance, useMMApprove, useMigrate, useMigrationAllowance, useMigrationApprove, useQuote, useRepay, useRequestTrustline, useReservesData, useReservesUsdFormat, useSodaxContext, useSpokeProvider, useStake, useStakeAllowance, useStakeApprove, useStakeRatio, useStakingConfig, useStakingInfo, useStatus, useStellarTrustlineCheck, useSupply, useSwap, useSwapAllowance, useSwapApprove, useUnstake, useUnstakeAllowance, useUnstakeApprove, useUnstakingInfo, useUnstakingInfoWithPenalty, useUserFormattedSummary, useUserReservesData, useWithdraw };
|
package/dist/index.js
CHANGED
|
@@ -366,6 +366,45 @@ function useAToken({ aToken, queryOptions }) {
|
|
|
366
366
|
}
|
|
367
367
|
});
|
|
368
368
|
}
|
|
369
|
+
function useATokensBalances({
|
|
370
|
+
aTokens,
|
|
371
|
+
spokeProvider,
|
|
372
|
+
userAddress,
|
|
373
|
+
queryOptions
|
|
374
|
+
}) {
|
|
375
|
+
const { sodax } = useSodaxContext();
|
|
376
|
+
const defaultQueryOptions = {
|
|
377
|
+
queryKey: ["mm", "aTokensBalances", aTokens, spokeProvider?.chainConfig.chain.id, userAddress],
|
|
378
|
+
enabled: aTokens.length > 0 && aTokens.every((token) => viem.isAddress(token)) && !!spokeProvider && !!userAddress
|
|
379
|
+
};
|
|
380
|
+
queryOptions = {
|
|
381
|
+
...defaultQueryOptions,
|
|
382
|
+
...queryOptions
|
|
383
|
+
// override default query options if provided
|
|
384
|
+
};
|
|
385
|
+
return reactQuery.useQuery({
|
|
386
|
+
...queryOptions,
|
|
387
|
+
queryFn: async () => {
|
|
388
|
+
if (aTokens.length === 0) {
|
|
389
|
+
return /* @__PURE__ */ new Map();
|
|
390
|
+
}
|
|
391
|
+
if (!spokeProvider || !userAddress) {
|
|
392
|
+
throw new Error("Spoke provider and user address are required");
|
|
393
|
+
}
|
|
394
|
+
for (const aToken of aTokens) {
|
|
395
|
+
if (!viem.isAddress(aToken)) {
|
|
396
|
+
throw new Error(`Invalid aToken address: ${aToken}`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
const hubWalletAddress = await sdk.deriveUserWalletAddress(
|
|
400
|
+
sodax.hubProvider,
|
|
401
|
+
spokeProvider.chainConfig.chain.id,
|
|
402
|
+
userAddress
|
|
403
|
+
);
|
|
404
|
+
return await sodax.moneyMarket.data.getATokensBalances(aTokens, hubWalletAddress);
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
}
|
|
369
408
|
function useReservesUsdFormat(params) {
|
|
370
409
|
const { sodax } = useSodaxContext();
|
|
371
410
|
const defaultQueryOptions = { queryKey: ["mm", "reservesUsdFormat"] };
|
|
@@ -1426,6 +1465,7 @@ exports.MIGRATION_MODE_BNUSD = MIGRATION_MODE_BNUSD;
|
|
|
1426
1465
|
exports.MIGRATION_MODE_ICX_SODA = MIGRATION_MODE_ICX_SODA;
|
|
1427
1466
|
exports.SodaxProvider = SodaxProvider;
|
|
1428
1467
|
exports.useAToken = useAToken;
|
|
1468
|
+
exports.useATokensBalances = useATokensBalances;
|
|
1429
1469
|
exports.useBackendAllMoneyMarketAssets = useBackendAllMoneyMarketAssets;
|
|
1430
1470
|
exports.useBackendAllMoneyMarketBorrowers = useBackendAllMoneyMarketBorrowers;
|
|
1431
1471
|
exports.useBackendIntentByHash = useBackendIntentByHash;
|