@nexus-cross/dapp-ui 1.3.1 → 1.3.3-beta.1

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.cts CHANGED
@@ -306,6 +306,30 @@ interface StakeInfo {
306
306
  /** 최초 스테이킹 이후 경과 일수. 스테이킹 이력이 없으면 null. */
307
307
  days_since_first_stake: number | null;
308
308
  }
309
+ /**
310
+ * 주입형 staking 리워드 reader가 반환하는 온체인 값.
311
+ * 금액은 모두 raw(wei) BigInt로 다루고, 표기 시에만 decimals(18)로 환산한다.
312
+ */
313
+ interface StakingRewardsInfo {
314
+ /**
315
+ * 온체인 누적 미청구 리워드 `earned(account)` (raw, wei).
316
+ * posa 비활성 상태에서는 lastRewardBlock 이후 블록 기반 projection을 더한
317
+ * 추정치(= posa 포트폴리오 "Accrued Rewards"와 동일 값)를 반환한다.
318
+ */
319
+ earnedWei: bigint;
320
+ /** 온체인 스테이킹 원금 `balanceOf(account)` (raw, wei). 개인 APR 분모. */
321
+ stakedWei: bigint;
322
+ }
323
+ /**
324
+ * 주입형 staking 리워드 reader. host(wagmi 보유 측)가 연결 계정 기준으로
325
+ * POSA delegation pool 컨트랙트의 `earned()` / `balanceOf()`를 읽어 반환한다.
326
+ * dapp-ui는 viem/wagmi를 직접 쓰지 못하므로, posa 포트폴리오의 온체인
327
+ * "Accrued Rewards"와 동일한 수치를 표기하려면 이 reader가 주입돼야 한다.
328
+ * 미주입 시 StakeSection은 API `cumulative_earned`로 폴백한다.
329
+ *
330
+ * dapp-ui는 이 함수 시그니처에만 의존한다.
331
+ */
332
+ type StakingRewardsReaderFn = (account: string) => Promise<StakingRewardsInfo>;
309
333
  /** 네트워크 통계 중 포트폴리오에서 사용하는 필드 (`GET /network/stats`). */
310
334
  interface NetworkStats {
311
335
  /** 네트워크 APR (백분율 문자열, 예: "12.5") */
@@ -524,13 +548,13 @@ interface BridgeInfoRow {
524
548
  }
525
549
  interface BridgeLiquidityInfo {
526
550
  label?: string;
527
- value: string;
528
551
  status?: "low" | "normal" | "rebalancing";
529
552
  percentage?: number;
530
553
  }
531
554
  interface BridgeTxSummary {
532
555
  pathType?: BridgePathType;
533
556
  exchangeRate?: string;
557
+ priceImpact?: string;
534
558
  liquidity?: BridgeLiquidityInfo;
535
559
  bridgeInfo?: BridgeInfoRow[];
536
560
  swapInfo?: BridgeInfoRow[];
@@ -670,8 +694,11 @@ interface WalletInfoProps {
670
694
  preferredTokens?: PreferredToken[];
671
695
  onSelectWallet?: () => void;
672
696
  onCopyAddress?: (address: string, success: boolean) => void;
673
- /** WalletInfo 기본 액션 row의 Buy 클릭 핸들러. */
674
- onBuy?: () => void;
697
+ /**
698
+ * WalletInfo 기본 액션 row의 Buy 클릭 핸들러. Promise를 반환하면 reject 시
699
+ * Buy 카드가 `onBuyDisabledMessage`와 동일한 토스트로 실패를 안내한다.
700
+ */
701
+ onBuy?: () => void | Promise<void>;
675
702
  /**
676
703
  * Buy 카드를 시각적으로 비활성 상태로 표시하고, 사용자가 클릭하면 이
677
704
  * 메시지를 토스트로 띄운다. `onBuy`보다 우선. 예: on-ramp가 사용자 국가에서
@@ -742,6 +769,12 @@ interface WalletInfoProps {
742
769
  * 미주입 시 LP 섹션은 풀 정보만 표시한다.
743
770
  */
744
771
  lpBalanceReader?: LpBalanceReaderFn;
772
+ /**
773
+ * CROSS Staking 섹션의 온체인 `earned()` / `balanceOf()`를 보강하기 위한
774
+ * 주입형 reader. `showPortfolio=true`일 때 `WalletPortfolioBody`로 릴레이된다.
775
+ * 미주입 시 Staking 섹션은 API `cumulative_earned`로 폴백한다.
776
+ */
777
+ stakingRewardsReader?: StakingRewardsReaderFn;
745
778
  bridgeTokens?: BridgeToken[];
746
779
  bridgeHistory?: BridgeHistoryItem[];
747
780
  getBridgeQuote?: BridgeQuoteFn;
@@ -759,7 +792,7 @@ interface WalletInfoProps {
759
792
  style?: WalletInfoStyle;
760
793
  children: React.ReactNode;
761
794
  }
762
- declare function WalletInfoRoot({ env, theme, mobileBreakpoint, drawerDirection, modal, showBalance, showForgeToken, showGameToken, showQR, showBridge, qrLogoSrc, walletAddress, accountName, sendAccounts, profileImageUrl, connectorId, connectorName: connectorNameProp, connectorIconUrl: connectorIconUrlProp, preferredTokens, onSelectWallet, onCopyAddress, onBuy, onBuyDisabledMessage, onDisconnect, disconnectLabel, termsUrl, termsLabel, privacyUrl, privacyLabel, open: propOpen, onOpenChange, showPortfolio, portfolioTitle, showTotalAssets, totalAssetsLabel, sendTransaction, getTransactionReceipt, estimateGas, onOutlink, lpBalanceReader, bridgeTokens, bridgeHistory, getBridgeQuote, getBridgeToTokens, getBridgeApproval, approveBridge, submitBridge, onReceive, onBridge, onSend, style, children, }: WalletInfoProps): react_jsx_runtime.JSX.Element;
795
+ declare function WalletInfoRoot({ env, theme, mobileBreakpoint, drawerDirection, modal, showBalance, showForgeToken, showGameToken, showQR, showBridge, qrLogoSrc, walletAddress, accountName, sendAccounts, profileImageUrl, connectorId, connectorName: connectorNameProp, connectorIconUrl: connectorIconUrlProp, preferredTokens, onSelectWallet, onCopyAddress, onBuy, onBuyDisabledMessage, onDisconnect, disconnectLabel, termsUrl, termsLabel, privacyUrl, privacyLabel, open: propOpen, onOpenChange, showPortfolio, portfolioTitle, showTotalAssets, totalAssetsLabel, sendTransaction, getTransactionReceipt, estimateGas, onOutlink, lpBalanceReader, stakingRewardsReader, bridgeTokens, bridgeHistory, getBridgeQuote, getBridgeToTokens, getBridgeApproval, approveBridge, submitBridge, onReceive, onBridge, onSend, style, children, }: WalletInfoProps): react_jsx_runtime.JSX.Element;
763
796
  declare const WalletInfo: typeof WalletInfoRoot & {
764
797
  Trigger: typeof WalletInfoTrigger;
765
798
  Content: typeof WalletInfoContent;
@@ -966,9 +999,14 @@ interface WalletPortfolioProps {
966
999
  * host(wagmi 보유 측)로부터 주입받는 reader. 미주입 시 풀 정보만 표시한다.
967
1000
  */
968
1001
  lpBalanceReader?: LpBalanceReaderFn;
1002
+ /**
1003
+ * CROSS Staking 섹션이 온체인 `earned()` / `balanceOf()`를 보강하기 위해
1004
+ * host(wagmi 보유 측)로부터 주입받는 reader. 미주입 시 API 값으로 폴백한다.
1005
+ */
1006
+ stakingRewardsReader?: StakingRewardsReaderFn;
969
1007
  children: React.ReactNode;
970
1008
  }
971
- declare function WalletPortfolioRoot({ env, theme, walletAddress, open: propOpen, onOpenChange, onOutlink, lpBalanceReader, children, }: WalletPortfolioProps): react_jsx_runtime.JSX.Element;
1009
+ declare function WalletPortfolioRoot({ env, theme, walletAddress, open: propOpen, onOpenChange, onOutlink, lpBalanceReader, stakingRewardsReader, children, }: WalletPortfolioProps): react_jsx_runtime.JSX.Element;
972
1010
  declare const WalletPortfolio: typeof WalletPortfolioRoot & {
973
1011
  Trigger: typeof WalletPortfolioTrigger;
974
1012
  Content: typeof WalletPortfolioContent;
@@ -1002,8 +1040,13 @@ interface WalletPortfolioBodyProps {
1002
1040
  * host(wagmi 보유 측)로부터 주입받는 reader. 미주입 시 풀 정보만 표시한다.
1003
1041
  */
1004
1042
  lpBalanceReader?: LpBalanceReaderFn;
1043
+ /**
1044
+ * CROSS Staking 섹션이 온체인 `earned()` / `balanceOf()`를 보강하기 위해
1045
+ * host(wagmi 보유 측)로부터 주입받는 reader. 미주입 시 API 값으로 폴백한다.
1046
+ */
1047
+ stakingRewardsReader?: StakingRewardsReaderFn;
1005
1048
  }
1006
- declare function WalletPortfolioBody({ env, theme, walletAddress, onBack, showHeader, variant, className, onOutlink, lpBalanceReader, }: WalletPortfolioBodyProps): react_jsx_runtime.JSX.Element;
1049
+ declare function WalletPortfolioBody({ env, theme, walletAddress, onBack, showHeader, variant, className, onOutlink, lpBalanceReader, stakingRewardsReader, }: WalletPortfolioBodyProps): react_jsx_runtime.JSX.Element;
1007
1050
 
1008
1051
  declare function CROSSxIcon(): react_jsx_runtime.JSX.Element;
1009
1052
  declare function MetaMaskIcon(): react_jsx_runtime.JSX.Element;
@@ -1258,8 +1301,11 @@ interface ConnectButtonProps {
1258
1301
  onCopy?: () => void;
1259
1302
  /** 지갑 변경 chevron 클릭 핸들러. 지정하지 않으면 chevron이 숨김 처리된다. */
1260
1303
  onSelectWallet?: () => void;
1261
- /** WalletInfo 기본 액션 row의 Buy 클릭 핸들러. */
1262
- onBuy?: () => void;
1304
+ /**
1305
+ * WalletInfo 기본 액션 row의 Buy 클릭 핸들러. Promise를 반환하면 reject 시
1306
+ * Buy 카드가 `onBuyDisabledMessage`와 동일한 토스트로 실패를 안내한다.
1307
+ */
1308
+ onBuy?: () => void | Promise<void>;
1263
1309
  /**
1264
1310
  * Buy 카드를 시각적으로 비활성 상태로 표시하고, 사용자가 클릭하면 이 메시지를
1265
1311
  * 토스트로 띄운다. `onBuy`보다 우선. WalletInfoProps의 동일 prop으로 그대로
@@ -1422,4 +1468,4 @@ interface SkillsButtonProps {
1422
1468
  declare const DEFAULT_SKILLS_HREF = "https://skills.cross.nexus";
1423
1469
  declare function SkillsButton({ label, href, onClick, className, style, theme, disabled, isLoading, loadingLabel, openInNewTab, type, }: SkillsButtonProps): react_jsx_runtime.JSX.Element;
1424
1470
 
1425
- export { APPLE_ICON, AppLauncher, AppLauncherContent, type AppLauncherContentProps, type AppLauncherProps, AppLauncherTrigger, type AppLauncherTriggerProps, type AppLauncherTriggerStyle, type AppLauncherUsageMode, BINANCE_ICON, type BridgeAmountSource, type BridgeApprovalInfo, type BridgeApproveFn, type BridgeFailedInfo, BridgeFlow, type BridgeFlowProps, type BridgeGetApprovalFn, type BridgeGetToTokensFn, type BridgeHistoryItem, type BridgeInfoRow, type BridgeInfoTokenRef, type BridgeLiquidityInfo, type BridgePathType, type BridgeQuoteFn, type BridgeQuoteInput, type BridgeQuoteResult, type BridgeStatus, type BridgeStep, type BridgeSubmitFn, type BridgeSubmittedInfo, type BridgeToken, type BridgeTxSummary, CONNECTOR_REGISTRY, CROSSX_ICON, type ChainId, ConnectButton, type ConnectButtonProps, type ConnectButtonStyle, ConnectorId, type ConnectorMeta, DEFAULT_SKILLS_HREF, type DrawerDirection$1 as DrawerDirection, type Environment, type EstimateGasArgs, type EstimateGasFn, GOOGLE_ICON, type GameSwapPool, type GameSwapTokenRef, type GasEstimate, type GetTransactionReceiptArgs, type GetTransactionReceiptFn, type GlobalMenu, type GlobalMenuItem, type GlobalMenuItemUrl, type LpBalanceInfo, type LpBalanceReaderFn, METAMASK_ICON, type OnOutlink, type OutlinkCategory, type OutlinkContext, type OutlinkOrigin, type PreferredToken, type RecentSendAddress, SOCIAL_REGISTRY, type SendAccount, type SendAsset, SendFlow, type SendFlowProps, type SendPageProps, type SendStatus, type SendTransactionArgs, type SendTransactionFn, SkillsButton, type SkillsButtonProps, type SkillsButtonStyle, type SocialConfig, type SocialHandlers, type SocialId, TOKEN_STATS_QUERY_KEY, type Theme, type TokenBalance, type TokenBalanceResponse, type TokenStats, type TokenStatsResponse, type TransactionReceiptResult, USER_BALANCE_QUERY_KEY, WALLET_REGISTRY, type WalletConfig, WalletConnectModal, type WalletConnectModalContentProps, type WalletConnectModalProps, type WalletConnectModalStyle, type WalletConnectModalTriggerProps, type WalletHandlers, type WalletId, WalletInfo, type WalletInfoContentProps, type WalletInfoFooterProps, type WalletInfoNavProps, type WalletInfoProps, type WalletInfoStyle, type WalletInfoTriggerProps, WalletPortfolio, WalletPortfolioBody, type WalletPortfolioBodyProps, type WalletPortfolioContentProps, type WalletPortfolioProps, type WalletPortfolioTriggerProps, type WalletProvider, announceAppLauncherUsage, resolveEnvironment, useGlobalMenu, useTokenBalance, useTokenStats, useWalletDetect };
1471
+ export { APPLE_ICON, AppLauncher, AppLauncherContent, type AppLauncherContentProps, type AppLauncherProps, AppLauncherTrigger, type AppLauncherTriggerProps, type AppLauncherTriggerStyle, type AppLauncherUsageMode, BINANCE_ICON, type BridgeAmountSource, type BridgeApprovalInfo, type BridgeApproveFn, type BridgeFailedInfo, BridgeFlow, type BridgeFlowProps, type BridgeGetApprovalFn, type BridgeGetToTokensFn, type BridgeHistoryItem, type BridgeInfoRow, type BridgeInfoTokenRef, type BridgeLiquidityInfo, type BridgePathType, type BridgeQuoteFn, type BridgeQuoteInput, type BridgeQuoteResult, type BridgeStatus, type BridgeStep, type BridgeSubmitFn, type BridgeSubmittedInfo, type BridgeToken, type BridgeTxSummary, CONNECTOR_REGISTRY, CROSSX_ICON, type ChainId, ConnectButton, type ConnectButtonProps, type ConnectButtonStyle, ConnectorId, type ConnectorMeta, DEFAULT_SKILLS_HREF, type DrawerDirection$1 as DrawerDirection, type Environment, type EstimateGasArgs, type EstimateGasFn, GOOGLE_ICON, type GameSwapPool, type GameSwapTokenRef, type GasEstimate, type GetTransactionReceiptArgs, type GetTransactionReceiptFn, type GlobalMenu, type GlobalMenuItem, type GlobalMenuItemUrl, type LpBalanceInfo, type LpBalanceReaderFn, METAMASK_ICON, type OnOutlink, type OutlinkCategory, type OutlinkContext, type OutlinkOrigin, type PreferredToken, type RecentSendAddress, SOCIAL_REGISTRY, type SendAccount, type SendAsset, SendFlow, type SendFlowProps, type SendPageProps, type SendStatus, type SendTransactionArgs, type SendTransactionFn, SkillsButton, type SkillsButtonProps, type SkillsButtonStyle, type SocialConfig, type SocialHandlers, type SocialId, type StakingRewardsInfo, type StakingRewardsReaderFn, TOKEN_STATS_QUERY_KEY, type Theme, type TokenBalance, type TokenBalanceResponse, type TokenStats, type TokenStatsResponse, type TransactionReceiptResult, USER_BALANCE_QUERY_KEY, WALLET_REGISTRY, type WalletConfig, WalletConnectModal, type WalletConnectModalContentProps, type WalletConnectModalProps, type WalletConnectModalStyle, type WalletConnectModalTriggerProps, type WalletHandlers, type WalletId, WalletInfo, type WalletInfoContentProps, type WalletInfoFooterProps, type WalletInfoNavProps, type WalletInfoProps, type WalletInfoStyle, type WalletInfoTriggerProps, WalletPortfolio, WalletPortfolioBody, type WalletPortfolioBodyProps, type WalletPortfolioContentProps, type WalletPortfolioProps, type WalletPortfolioTriggerProps, type WalletProvider, announceAppLauncherUsage, resolveEnvironment, useGlobalMenu, useTokenBalance, useTokenStats, useWalletDetect };
package/dist/index.d.ts CHANGED
@@ -306,6 +306,30 @@ interface StakeInfo {
306
306
  /** 최초 스테이킹 이후 경과 일수. 스테이킹 이력이 없으면 null. */
307
307
  days_since_first_stake: number | null;
308
308
  }
309
+ /**
310
+ * 주입형 staking 리워드 reader가 반환하는 온체인 값.
311
+ * 금액은 모두 raw(wei) BigInt로 다루고, 표기 시에만 decimals(18)로 환산한다.
312
+ */
313
+ interface StakingRewardsInfo {
314
+ /**
315
+ * 온체인 누적 미청구 리워드 `earned(account)` (raw, wei).
316
+ * posa 비활성 상태에서는 lastRewardBlock 이후 블록 기반 projection을 더한
317
+ * 추정치(= posa 포트폴리오 "Accrued Rewards"와 동일 값)를 반환한다.
318
+ */
319
+ earnedWei: bigint;
320
+ /** 온체인 스테이킹 원금 `balanceOf(account)` (raw, wei). 개인 APR 분모. */
321
+ stakedWei: bigint;
322
+ }
323
+ /**
324
+ * 주입형 staking 리워드 reader. host(wagmi 보유 측)가 연결 계정 기준으로
325
+ * POSA delegation pool 컨트랙트의 `earned()` / `balanceOf()`를 읽어 반환한다.
326
+ * dapp-ui는 viem/wagmi를 직접 쓰지 못하므로, posa 포트폴리오의 온체인
327
+ * "Accrued Rewards"와 동일한 수치를 표기하려면 이 reader가 주입돼야 한다.
328
+ * 미주입 시 StakeSection은 API `cumulative_earned`로 폴백한다.
329
+ *
330
+ * dapp-ui는 이 함수 시그니처에만 의존한다.
331
+ */
332
+ type StakingRewardsReaderFn = (account: string) => Promise<StakingRewardsInfo>;
309
333
  /** 네트워크 통계 중 포트폴리오에서 사용하는 필드 (`GET /network/stats`). */
310
334
  interface NetworkStats {
311
335
  /** 네트워크 APR (백분율 문자열, 예: "12.5") */
@@ -524,13 +548,13 @@ interface BridgeInfoRow {
524
548
  }
525
549
  interface BridgeLiquidityInfo {
526
550
  label?: string;
527
- value: string;
528
551
  status?: "low" | "normal" | "rebalancing";
529
552
  percentage?: number;
530
553
  }
531
554
  interface BridgeTxSummary {
532
555
  pathType?: BridgePathType;
533
556
  exchangeRate?: string;
557
+ priceImpact?: string;
534
558
  liquidity?: BridgeLiquidityInfo;
535
559
  bridgeInfo?: BridgeInfoRow[];
536
560
  swapInfo?: BridgeInfoRow[];
@@ -670,8 +694,11 @@ interface WalletInfoProps {
670
694
  preferredTokens?: PreferredToken[];
671
695
  onSelectWallet?: () => void;
672
696
  onCopyAddress?: (address: string, success: boolean) => void;
673
- /** WalletInfo 기본 액션 row의 Buy 클릭 핸들러. */
674
- onBuy?: () => void;
697
+ /**
698
+ * WalletInfo 기본 액션 row의 Buy 클릭 핸들러. Promise를 반환하면 reject 시
699
+ * Buy 카드가 `onBuyDisabledMessage`와 동일한 토스트로 실패를 안내한다.
700
+ */
701
+ onBuy?: () => void | Promise<void>;
675
702
  /**
676
703
  * Buy 카드를 시각적으로 비활성 상태로 표시하고, 사용자가 클릭하면 이
677
704
  * 메시지를 토스트로 띄운다. `onBuy`보다 우선. 예: on-ramp가 사용자 국가에서
@@ -742,6 +769,12 @@ interface WalletInfoProps {
742
769
  * 미주입 시 LP 섹션은 풀 정보만 표시한다.
743
770
  */
744
771
  lpBalanceReader?: LpBalanceReaderFn;
772
+ /**
773
+ * CROSS Staking 섹션의 온체인 `earned()` / `balanceOf()`를 보강하기 위한
774
+ * 주입형 reader. `showPortfolio=true`일 때 `WalletPortfolioBody`로 릴레이된다.
775
+ * 미주입 시 Staking 섹션은 API `cumulative_earned`로 폴백한다.
776
+ */
777
+ stakingRewardsReader?: StakingRewardsReaderFn;
745
778
  bridgeTokens?: BridgeToken[];
746
779
  bridgeHistory?: BridgeHistoryItem[];
747
780
  getBridgeQuote?: BridgeQuoteFn;
@@ -759,7 +792,7 @@ interface WalletInfoProps {
759
792
  style?: WalletInfoStyle;
760
793
  children: React.ReactNode;
761
794
  }
762
- declare function WalletInfoRoot({ env, theme, mobileBreakpoint, drawerDirection, modal, showBalance, showForgeToken, showGameToken, showQR, showBridge, qrLogoSrc, walletAddress, accountName, sendAccounts, profileImageUrl, connectorId, connectorName: connectorNameProp, connectorIconUrl: connectorIconUrlProp, preferredTokens, onSelectWallet, onCopyAddress, onBuy, onBuyDisabledMessage, onDisconnect, disconnectLabel, termsUrl, termsLabel, privacyUrl, privacyLabel, open: propOpen, onOpenChange, showPortfolio, portfolioTitle, showTotalAssets, totalAssetsLabel, sendTransaction, getTransactionReceipt, estimateGas, onOutlink, lpBalanceReader, bridgeTokens, bridgeHistory, getBridgeQuote, getBridgeToTokens, getBridgeApproval, approveBridge, submitBridge, onReceive, onBridge, onSend, style, children, }: WalletInfoProps): react_jsx_runtime.JSX.Element;
795
+ declare function WalletInfoRoot({ env, theme, mobileBreakpoint, drawerDirection, modal, showBalance, showForgeToken, showGameToken, showQR, showBridge, qrLogoSrc, walletAddress, accountName, sendAccounts, profileImageUrl, connectorId, connectorName: connectorNameProp, connectorIconUrl: connectorIconUrlProp, preferredTokens, onSelectWallet, onCopyAddress, onBuy, onBuyDisabledMessage, onDisconnect, disconnectLabel, termsUrl, termsLabel, privacyUrl, privacyLabel, open: propOpen, onOpenChange, showPortfolio, portfolioTitle, showTotalAssets, totalAssetsLabel, sendTransaction, getTransactionReceipt, estimateGas, onOutlink, lpBalanceReader, stakingRewardsReader, bridgeTokens, bridgeHistory, getBridgeQuote, getBridgeToTokens, getBridgeApproval, approveBridge, submitBridge, onReceive, onBridge, onSend, style, children, }: WalletInfoProps): react_jsx_runtime.JSX.Element;
763
796
  declare const WalletInfo: typeof WalletInfoRoot & {
764
797
  Trigger: typeof WalletInfoTrigger;
765
798
  Content: typeof WalletInfoContent;
@@ -966,9 +999,14 @@ interface WalletPortfolioProps {
966
999
  * host(wagmi 보유 측)로부터 주입받는 reader. 미주입 시 풀 정보만 표시한다.
967
1000
  */
968
1001
  lpBalanceReader?: LpBalanceReaderFn;
1002
+ /**
1003
+ * CROSS Staking 섹션이 온체인 `earned()` / `balanceOf()`를 보강하기 위해
1004
+ * host(wagmi 보유 측)로부터 주입받는 reader. 미주입 시 API 값으로 폴백한다.
1005
+ */
1006
+ stakingRewardsReader?: StakingRewardsReaderFn;
969
1007
  children: React.ReactNode;
970
1008
  }
971
- declare function WalletPortfolioRoot({ env, theme, walletAddress, open: propOpen, onOpenChange, onOutlink, lpBalanceReader, children, }: WalletPortfolioProps): react_jsx_runtime.JSX.Element;
1009
+ declare function WalletPortfolioRoot({ env, theme, walletAddress, open: propOpen, onOpenChange, onOutlink, lpBalanceReader, stakingRewardsReader, children, }: WalletPortfolioProps): react_jsx_runtime.JSX.Element;
972
1010
  declare const WalletPortfolio: typeof WalletPortfolioRoot & {
973
1011
  Trigger: typeof WalletPortfolioTrigger;
974
1012
  Content: typeof WalletPortfolioContent;
@@ -1002,8 +1040,13 @@ interface WalletPortfolioBodyProps {
1002
1040
  * host(wagmi 보유 측)로부터 주입받는 reader. 미주입 시 풀 정보만 표시한다.
1003
1041
  */
1004
1042
  lpBalanceReader?: LpBalanceReaderFn;
1043
+ /**
1044
+ * CROSS Staking 섹션이 온체인 `earned()` / `balanceOf()`를 보강하기 위해
1045
+ * host(wagmi 보유 측)로부터 주입받는 reader. 미주입 시 API 값으로 폴백한다.
1046
+ */
1047
+ stakingRewardsReader?: StakingRewardsReaderFn;
1005
1048
  }
1006
- declare function WalletPortfolioBody({ env, theme, walletAddress, onBack, showHeader, variant, className, onOutlink, lpBalanceReader, }: WalletPortfolioBodyProps): react_jsx_runtime.JSX.Element;
1049
+ declare function WalletPortfolioBody({ env, theme, walletAddress, onBack, showHeader, variant, className, onOutlink, lpBalanceReader, stakingRewardsReader, }: WalletPortfolioBodyProps): react_jsx_runtime.JSX.Element;
1007
1050
 
1008
1051
  declare function CROSSxIcon(): react_jsx_runtime.JSX.Element;
1009
1052
  declare function MetaMaskIcon(): react_jsx_runtime.JSX.Element;
@@ -1258,8 +1301,11 @@ interface ConnectButtonProps {
1258
1301
  onCopy?: () => void;
1259
1302
  /** 지갑 변경 chevron 클릭 핸들러. 지정하지 않으면 chevron이 숨김 처리된다. */
1260
1303
  onSelectWallet?: () => void;
1261
- /** WalletInfo 기본 액션 row의 Buy 클릭 핸들러. */
1262
- onBuy?: () => void;
1304
+ /**
1305
+ * WalletInfo 기본 액션 row의 Buy 클릭 핸들러. Promise를 반환하면 reject 시
1306
+ * Buy 카드가 `onBuyDisabledMessage`와 동일한 토스트로 실패를 안내한다.
1307
+ */
1308
+ onBuy?: () => void | Promise<void>;
1263
1309
  /**
1264
1310
  * Buy 카드를 시각적으로 비활성 상태로 표시하고, 사용자가 클릭하면 이 메시지를
1265
1311
  * 토스트로 띄운다. `onBuy`보다 우선. WalletInfoProps의 동일 prop으로 그대로
@@ -1422,4 +1468,4 @@ interface SkillsButtonProps {
1422
1468
  declare const DEFAULT_SKILLS_HREF = "https://skills.cross.nexus";
1423
1469
  declare function SkillsButton({ label, href, onClick, className, style, theme, disabled, isLoading, loadingLabel, openInNewTab, type, }: SkillsButtonProps): react_jsx_runtime.JSX.Element;
1424
1470
 
1425
- export { APPLE_ICON, AppLauncher, AppLauncherContent, type AppLauncherContentProps, type AppLauncherProps, AppLauncherTrigger, type AppLauncherTriggerProps, type AppLauncherTriggerStyle, type AppLauncherUsageMode, BINANCE_ICON, type BridgeAmountSource, type BridgeApprovalInfo, type BridgeApproveFn, type BridgeFailedInfo, BridgeFlow, type BridgeFlowProps, type BridgeGetApprovalFn, type BridgeGetToTokensFn, type BridgeHistoryItem, type BridgeInfoRow, type BridgeInfoTokenRef, type BridgeLiquidityInfo, type BridgePathType, type BridgeQuoteFn, type BridgeQuoteInput, type BridgeQuoteResult, type BridgeStatus, type BridgeStep, type BridgeSubmitFn, type BridgeSubmittedInfo, type BridgeToken, type BridgeTxSummary, CONNECTOR_REGISTRY, CROSSX_ICON, type ChainId, ConnectButton, type ConnectButtonProps, type ConnectButtonStyle, ConnectorId, type ConnectorMeta, DEFAULT_SKILLS_HREF, type DrawerDirection$1 as DrawerDirection, type Environment, type EstimateGasArgs, type EstimateGasFn, GOOGLE_ICON, type GameSwapPool, type GameSwapTokenRef, type GasEstimate, type GetTransactionReceiptArgs, type GetTransactionReceiptFn, type GlobalMenu, type GlobalMenuItem, type GlobalMenuItemUrl, type LpBalanceInfo, type LpBalanceReaderFn, METAMASK_ICON, type OnOutlink, type OutlinkCategory, type OutlinkContext, type OutlinkOrigin, type PreferredToken, type RecentSendAddress, SOCIAL_REGISTRY, type SendAccount, type SendAsset, SendFlow, type SendFlowProps, type SendPageProps, type SendStatus, type SendTransactionArgs, type SendTransactionFn, SkillsButton, type SkillsButtonProps, type SkillsButtonStyle, type SocialConfig, type SocialHandlers, type SocialId, TOKEN_STATS_QUERY_KEY, type Theme, type TokenBalance, type TokenBalanceResponse, type TokenStats, type TokenStatsResponse, type TransactionReceiptResult, USER_BALANCE_QUERY_KEY, WALLET_REGISTRY, type WalletConfig, WalletConnectModal, type WalletConnectModalContentProps, type WalletConnectModalProps, type WalletConnectModalStyle, type WalletConnectModalTriggerProps, type WalletHandlers, type WalletId, WalletInfo, type WalletInfoContentProps, type WalletInfoFooterProps, type WalletInfoNavProps, type WalletInfoProps, type WalletInfoStyle, type WalletInfoTriggerProps, WalletPortfolio, WalletPortfolioBody, type WalletPortfolioBodyProps, type WalletPortfolioContentProps, type WalletPortfolioProps, type WalletPortfolioTriggerProps, type WalletProvider, announceAppLauncherUsage, resolveEnvironment, useGlobalMenu, useTokenBalance, useTokenStats, useWalletDetect };
1471
+ export { APPLE_ICON, AppLauncher, AppLauncherContent, type AppLauncherContentProps, type AppLauncherProps, AppLauncherTrigger, type AppLauncherTriggerProps, type AppLauncherTriggerStyle, type AppLauncherUsageMode, BINANCE_ICON, type BridgeAmountSource, type BridgeApprovalInfo, type BridgeApproveFn, type BridgeFailedInfo, BridgeFlow, type BridgeFlowProps, type BridgeGetApprovalFn, type BridgeGetToTokensFn, type BridgeHistoryItem, type BridgeInfoRow, type BridgeInfoTokenRef, type BridgeLiquidityInfo, type BridgePathType, type BridgeQuoteFn, type BridgeQuoteInput, type BridgeQuoteResult, type BridgeStatus, type BridgeStep, type BridgeSubmitFn, type BridgeSubmittedInfo, type BridgeToken, type BridgeTxSummary, CONNECTOR_REGISTRY, CROSSX_ICON, type ChainId, ConnectButton, type ConnectButtonProps, type ConnectButtonStyle, ConnectorId, type ConnectorMeta, DEFAULT_SKILLS_HREF, type DrawerDirection$1 as DrawerDirection, type Environment, type EstimateGasArgs, type EstimateGasFn, GOOGLE_ICON, type GameSwapPool, type GameSwapTokenRef, type GasEstimate, type GetTransactionReceiptArgs, type GetTransactionReceiptFn, type GlobalMenu, type GlobalMenuItem, type GlobalMenuItemUrl, type LpBalanceInfo, type LpBalanceReaderFn, METAMASK_ICON, type OnOutlink, type OutlinkCategory, type OutlinkContext, type OutlinkOrigin, type PreferredToken, type RecentSendAddress, SOCIAL_REGISTRY, type SendAccount, type SendAsset, SendFlow, type SendFlowProps, type SendPageProps, type SendStatus, type SendTransactionArgs, type SendTransactionFn, SkillsButton, type SkillsButtonProps, type SkillsButtonStyle, type SocialConfig, type SocialHandlers, type SocialId, type StakingRewardsInfo, type StakingRewardsReaderFn, TOKEN_STATS_QUERY_KEY, type Theme, type TokenBalance, type TokenBalanceResponse, type TokenStats, type TokenStatsResponse, type TransactionReceiptResult, USER_BALANCE_QUERY_KEY, WALLET_REGISTRY, type WalletConfig, WalletConnectModal, type WalletConnectModalContentProps, type WalletConnectModalProps, type WalletConnectModalStyle, type WalletConnectModalTriggerProps, type WalletHandlers, type WalletId, WalletInfo, type WalletInfoContentProps, type WalletInfoFooterProps, type WalletInfoNavProps, type WalletInfoProps, type WalletInfoStyle, type WalletInfoTriggerProps, WalletPortfolio, WalletPortfolioBody, type WalletPortfolioBodyProps, type WalletPortfolioContentProps, type WalletPortfolioProps, type WalletPortfolioTriggerProps, type WalletProvider, announceAppLauncherUsage, resolveEnvironment, useGlobalMenu, useTokenBalance, useTokenStats, useWalletDetect };