@b3dotfun/sdk 0.1.70-alpha.2 → 0.1.70-alpha.21
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/README.md +3 -3
- package/constants/chains/b3Chain.js +3 -1
- package/dist/cjs/anyspend/constants/rpc.d.ts +3 -1
- package/dist/cjs/anyspend/constants/rpc.js +6 -2
- package/dist/cjs/anyspend/react/components/AnySpend.d.ts +9 -1
- package/dist/cjs/anyspend/react/components/AnySpend.js +123 -46
- package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +8 -10
- package/dist/cjs/anyspend/react/components/AnySpendDeposit.d.ts +15 -3
- package/dist/cjs/anyspend/react/components/AnySpendDeposit.js +78 -25
- package/dist/cjs/anyspend/react/components/AnySpendStakeB3.js +32 -13
- package/dist/cjs/anyspend/react/components/AnySpendStakeB3ExactIn.js +32 -10
- package/dist/cjs/anyspend/react/components/QRDeposit.d.ts +22 -3
- package/dist/cjs/anyspend/react/components/QRDeposit.js +25 -16
- package/dist/cjs/anyspend/react/components/checkout/CryptoPayPanel.js +18 -11
- package/dist/cjs/anyspend/react/components/common/PureTransferView.d.ts +30 -0
- package/dist/cjs/anyspend/react/components/common/PureTransferView.js +64 -0
- package/dist/cjs/anyspend/react/components/common/TokenBalance.js +4 -5
- package/dist/cjs/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +3 -3
- package/dist/cjs/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/cjs/anyspend/utils/address.d.ts +2 -1
- package/dist/cjs/anyspend/utils/address.js +12 -9
- package/dist/cjs/anyspend/utils/chain.d.ts +84 -1
- package/dist/cjs/anyspend/utils/chain.js +73 -3
- package/dist/cjs/anyspend/utils/token.d.ts +2 -0
- package/dist/cjs/anyspend/utils/token.js +15 -1
- package/dist/cjs/app.shared.d.ts +9 -1
- package/dist/cjs/app.shared.js +19 -0
- package/dist/cjs/global-account/app.native.d.ts +1 -1
- package/dist/cjs/global-account/better-auth-client.d.ts +3314 -36
- package/dist/cjs/global-account/better-auth-client.js +28 -3
- package/dist/cjs/global-account/bsmnt.d.ts +2 -2
- package/dist/cjs/global-account/bsmnt.native.d.ts +1 -1
- package/dist/cjs/global-account/client-manager.d.ts +7 -5
- package/dist/cjs/global-account/client-manager.js +51 -4
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +6 -11
- package/dist/cjs/global-account/react/components/B3Provider/B3ConfigProvider.d.ts +11 -0
- package/dist/cjs/global-account/react/components/B3Provider/B3ConfigProvider.js +12 -0
- package/dist/cjs/global-account/react/components/B3Provider/B3Provider.d.ts +12 -2
- package/dist/cjs/global-account/react/components/B3Provider/B3Provider.js +25 -3
- package/dist/cjs/global-account/react/components/B3Provider/BetterAuthProvider.js +45 -4
- package/dist/cjs/global-account/react/components/B3Provider/RelayKitProviderWrapper.d.ts +1 -2
- package/dist/cjs/global-account/react/components/B3Provider/RelayKitProviderWrapper.js +11 -5
- package/dist/cjs/global-account/react/components/ManageAccount/ContentTokens.js +23 -15
- package/dist/cjs/global-account/react/components/ManageAccount/NFTContent.js +2 -2
- package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +8 -6
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +1 -1
- package/dist/cjs/global-account/react/components/ManageAccount/TokenContent.js +17 -8
- package/dist/cjs/global-account/react/components/Send/Send.js +15 -11
- package/dist/cjs/global-account/react/components/SignInWithB3/BetterAuthSignIn.js +3 -1
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +1 -5
- package/dist/cjs/global-account/react/components/SignInWithB3/components/AuthButton.js +2 -1
- package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.js +1 -0
- package/dist/cjs/global-account/react/components/SignInWithB3/utils/signInUtils.d.ts +3 -2
- package/dist/cjs/global-account/react/components/SignInWithB3/utils/signInUtils.js +3 -3
- package/dist/cjs/global-account/react/components/index.d.ts +1 -1
- package/dist/cjs/global-account/react/components/index.js +3 -3
- package/dist/cjs/global-account/react/hooks/index.d.ts +2 -3
- package/dist/cjs/global-account/react/hooks/index.js +7 -10
- package/dist/cjs/global-account/react/hooks/useAuth.d.ts +5 -4
- package/dist/cjs/global-account/react/hooks/useAuth.js +1 -0
- package/dist/cjs/global-account/react/hooks/useAuthentication.d.ts +3 -2
- package/dist/cjs/global-account/react/hooks/useAuthentication.js +2 -1
- package/dist/cjs/global-account/react/hooks/useBetterAuth.d.ts +1657 -22
- package/dist/cjs/global-account/react/hooks/useBetterAuth.js +7 -7
- package/dist/cjs/global-account/react/hooks/useClient.d.ts +3 -3
- package/dist/cjs/global-account/react/hooks/useFirstEOA.d.ts +4 -7666
- package/dist/cjs/global-account/react/hooks/useFirstEOA.js +1 -0
- package/dist/cjs/global-account/react/hooks/useNativeBalance.js +2 -2
- package/dist/cjs/global-account/react/hooks/usePortfolioBalance.d.ts +15 -0
- package/dist/cjs/global-account/react/hooks/usePortfolioBalance.js +76 -0
- package/dist/cjs/global-account/react/hooks/usePortfolioCollectibles.d.ts +12 -0
- package/dist/cjs/global-account/react/hooks/usePortfolioCollectibles.js +178 -0
- package/dist/cjs/global-account/react/hooks/useSiwe.d.ts +1 -1
- package/dist/cjs/global-account/react/hooks/useSiwe.native.d.ts +1 -1
- package/dist/cjs/global-account/react/hooks/useTWAuth.d.ts +1 -1
- package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.d.ts +1 -0
- package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +37 -27
- package/dist/cjs/global-account/react/stores/useModalStore.d.ts +14 -2
- package/dist/cjs/global-account/types/b3-api.types.d.ts +5 -0
- package/dist/cjs/global-account/types/feature-flags.d.ts +5 -5
- package/dist/cjs/notifications/services/api.js +1 -0
- package/dist/cjs/shared/constants/chains/b3Chain.d.ts +30 -54
- package/dist/cjs/shared/constants/chains/b3Chain.js +5 -41
- package/dist/cjs/shared/constants/chains/supported.d.ts +1 -49
- package/dist/cjs/shared/constants/chains/supported.js +8 -36
- package/dist/cjs/shared/constants/index.d.ts +4 -0
- package/dist/cjs/shared/utils/chain-transformers.d.ts +4 -4
- package/dist/cjs/shared/utils/chain-transformers.js +38 -37
- package/dist/cjs/shared/utils/thirdweb-insights.js +2 -2
- package/dist/cjs/shared/utils/upload.d.ts +9 -0
- package/dist/cjs/shared/utils/upload.js +34 -0
- package/dist/cjs/shared/utils/zerionPositions.d.ts +96 -0
- package/dist/cjs/shared/utils/zerionPositions.js +188 -0
- package/dist/esm/anyspend/constants/rpc.d.ts +3 -1
- package/dist/esm/anyspend/constants/rpc.js +5 -1
- package/dist/esm/anyspend/react/components/AnySpend.d.ts +9 -1
- package/dist/esm/anyspend/react/components/AnySpend.js +124 -47
- package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +9 -11
- package/dist/esm/anyspend/react/components/AnySpendDeposit.d.ts +15 -3
- package/dist/esm/anyspend/react/components/AnySpendDeposit.js +80 -27
- package/dist/esm/anyspend/react/components/AnySpendStakeB3.js +33 -14
- package/dist/esm/anyspend/react/components/AnySpendStakeB3ExactIn.js +33 -11
- package/dist/esm/anyspend/react/components/QRDeposit.d.ts +22 -3
- package/dist/esm/anyspend/react/components/QRDeposit.js +27 -18
- package/dist/esm/anyspend/react/components/checkout/CryptoPayPanel.js +21 -14
- package/dist/esm/anyspend/react/components/common/PureTransferView.d.ts +30 -0
- package/dist/esm/anyspend/react/components/common/PureTransferView.js +61 -0
- package/dist/esm/anyspend/react/components/common/TokenBalance.js +6 -7
- package/dist/esm/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +3 -3
- package/dist/esm/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/esm/anyspend/utils/address.d.ts +2 -1
- package/dist/esm/anyspend/utils/address.js +9 -6
- package/dist/esm/anyspend/utils/chain.d.ts +84 -1
- package/dist/esm/anyspend/utils/chain.js +73 -5
- package/dist/esm/anyspend/utils/token.d.ts +2 -0
- package/dist/esm/anyspend/utils/token.js +13 -0
- package/dist/esm/app.shared.d.ts +9 -1
- package/dist/esm/app.shared.js +17 -0
- package/dist/esm/global-account/app.native.d.ts +1 -1
- package/dist/esm/global-account/better-auth-client.d.ts +3314 -36
- package/dist/esm/global-account/better-auth-client.js +27 -4
- package/dist/esm/global-account/bsmnt.d.ts +2 -2
- package/dist/esm/global-account/bsmnt.native.d.ts +1 -1
- package/dist/esm/global-account/client-manager.d.ts +7 -5
- package/dist/esm/global-account/client-manager.js +51 -5
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +6 -11
- package/dist/esm/global-account/react/components/B3Provider/B3ConfigProvider.d.ts +11 -0
- package/dist/esm/global-account/react/components/B3Provider/B3ConfigProvider.js +11 -0
- package/dist/esm/global-account/react/components/B3Provider/B3Provider.d.ts +12 -2
- package/dist/esm/global-account/react/components/B3Provider/B3Provider.js +26 -4
- package/dist/esm/global-account/react/components/B3Provider/BetterAuthProvider.js +46 -5
- package/dist/esm/global-account/react/components/B3Provider/RelayKitProviderWrapper.d.ts +1 -2
- package/dist/esm/global-account/react/components/B3Provider/RelayKitProviderWrapper.js +11 -5
- package/dist/esm/global-account/react/components/ManageAccount/ContentTokens.js +24 -16
- package/dist/esm/global-account/react/components/ManageAccount/NFTContent.js +3 -3
- package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +9 -7
- package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +1 -1
- package/dist/esm/global-account/react/components/ManageAccount/TokenContent.js +18 -9
- package/dist/esm/global-account/react/components/Send/Send.js +16 -12
- package/dist/esm/global-account/react/components/SignInWithB3/BetterAuthSignIn.js +3 -1
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +1 -5
- package/dist/esm/global-account/react/components/SignInWithB3/components/AuthButton.js +2 -1
- package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.js +1 -0
- package/dist/esm/global-account/react/components/SignInWithB3/utils/signInUtils.d.ts +3 -2
- package/dist/esm/global-account/react/components/SignInWithB3/utils/signInUtils.js +3 -3
- package/dist/esm/global-account/react/components/index.d.ts +1 -1
- package/dist/esm/global-account/react/components/index.js +1 -1
- package/dist/esm/global-account/react/hooks/index.d.ts +2 -3
- package/dist/esm/global-account/react/hooks/index.js +2 -3
- package/dist/esm/global-account/react/hooks/useAuth.d.ts +5 -4
- package/dist/esm/global-account/react/hooks/useAuth.js +1 -0
- package/dist/esm/global-account/react/hooks/useAuthentication.d.ts +3 -2
- package/dist/esm/global-account/react/hooks/useAuthentication.js +2 -1
- package/dist/esm/global-account/react/hooks/useBetterAuth.d.ts +1657 -22
- package/dist/esm/global-account/react/hooks/useBetterAuth.js +8 -8
- package/dist/esm/global-account/react/hooks/useClient.d.ts +3 -3
- package/dist/esm/global-account/react/hooks/useFirstEOA.d.ts +4 -7666
- package/dist/esm/global-account/react/hooks/useFirstEOA.js +1 -0
- package/dist/esm/global-account/react/hooks/useNativeBalance.js +1 -1
- package/dist/esm/global-account/react/hooks/usePortfolioBalance.d.ts +15 -0
- package/dist/esm/global-account/react/hooks/usePortfolioBalance.js +72 -0
- package/dist/esm/global-account/react/hooks/usePortfolioCollectibles.d.ts +12 -0
- package/dist/esm/global-account/react/hooks/usePortfolioCollectibles.js +175 -0
- package/dist/esm/global-account/react/hooks/useSiwe.d.ts +1 -1
- package/dist/esm/global-account/react/hooks/useSiwe.native.d.ts +1 -1
- package/dist/esm/global-account/react/hooks/useTWAuth.d.ts +1 -1
- package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.d.ts +1 -0
- package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +37 -27
- package/dist/esm/global-account/react/stores/useModalStore.d.ts +14 -2
- package/dist/esm/global-account/types/b3-api.types.d.ts +5 -0
- package/dist/esm/global-account/types/feature-flags.d.ts +5 -5
- package/dist/esm/notifications/services/api.js +1 -0
- package/dist/esm/shared/constants/chains/b3Chain.d.ts +30 -54
- package/dist/esm/shared/constants/chains/b3Chain.js +4 -38
- package/dist/esm/shared/constants/chains/supported.d.ts +1 -49
- package/dist/esm/shared/constants/chains/supported.js +7 -35
- package/dist/esm/shared/constants/index.d.ts +4 -0
- package/dist/esm/shared/utils/chain-transformers.d.ts +4 -4
- package/dist/esm/shared/utils/chain-transformers.js +38 -37
- package/dist/esm/shared/utils/thirdweb-insights.js +2 -2
- package/dist/esm/shared/utils/upload.d.ts +9 -0
- package/dist/esm/shared/utils/upload.js +31 -0
- package/dist/esm/shared/utils/zerionPositions.d.ts +96 -0
- package/dist/esm/shared/utils/zerionPositions.js +180 -0
- package/dist/styles/index.css +1 -1
- package/dist/types/anyspend/constants/rpc.d.ts +3 -1
- package/dist/types/anyspend/react/components/AnySpend.d.ts +9 -1
- package/dist/types/anyspend/react/components/AnySpendDeposit.d.ts +15 -3
- package/dist/types/anyspend/react/components/QRDeposit.d.ts +22 -3
- package/dist/types/anyspend/react/components/common/PureTransferView.d.ts +30 -0
- package/dist/types/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +3 -3
- package/dist/types/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/types/anyspend/utils/address.d.ts +2 -1
- package/dist/types/anyspend/utils/chain.d.ts +84 -1
- package/dist/types/anyspend/utils/token.d.ts +2 -0
- package/dist/types/app.shared.d.ts +9 -1
- package/dist/types/global-account/app.native.d.ts +1 -1
- package/dist/types/global-account/better-auth-client.d.ts +3314 -36
- package/dist/types/global-account/bsmnt.d.ts +2 -2
- package/dist/types/global-account/bsmnt.native.d.ts +1 -1
- package/dist/types/global-account/client-manager.d.ts +7 -5
- package/dist/types/global-account/react/components/B3Provider/B3ConfigProvider.d.ts +11 -0
- package/dist/types/global-account/react/components/B3Provider/B3Provider.d.ts +12 -2
- package/dist/types/global-account/react/components/B3Provider/RelayKitProviderWrapper.d.ts +1 -2
- package/dist/types/global-account/react/components/SignInWithB3/utils/signInUtils.d.ts +3 -2
- package/dist/types/global-account/react/components/index.d.ts +1 -1
- package/dist/types/global-account/react/hooks/index.d.ts +2 -3
- package/dist/types/global-account/react/hooks/useAuth.d.ts +5 -4
- package/dist/types/global-account/react/hooks/useAuthentication.d.ts +3 -2
- package/dist/types/global-account/react/hooks/useBetterAuth.d.ts +1657 -22
- package/dist/types/global-account/react/hooks/useClient.d.ts +3 -3
- package/dist/types/global-account/react/hooks/useFirstEOA.d.ts +4 -7666
- package/dist/types/global-account/react/hooks/usePortfolioBalance.d.ts +15 -0
- package/dist/types/global-account/react/hooks/usePortfolioCollectibles.d.ts +12 -0
- package/dist/types/global-account/react/hooks/useSiwe.d.ts +1 -1
- package/dist/types/global-account/react/hooks/useSiwe.native.d.ts +1 -1
- package/dist/types/global-account/react/hooks/useTWAuth.d.ts +1 -1
- package/dist/types/global-account/react/hooks/useUnifiedChainSwitchAndExecute.d.ts +1 -0
- package/dist/types/global-account/react/stores/useModalStore.d.ts +14 -2
- package/dist/types/global-account/types/b3-api.types.d.ts +5 -0
- package/dist/types/global-account/types/feature-flags.d.ts +5 -5
- package/dist/types/shared/constants/chains/b3Chain.d.ts +30 -54
- package/dist/types/shared/constants/chains/supported.d.ts +1 -49
- package/dist/types/shared/constants/index.d.ts +4 -0
- package/dist/types/shared/utils/chain-transformers.d.ts +4 -4
- package/dist/types/shared/utils/upload.d.ts +9 -0
- package/dist/types/shared/utils/zerionPositions.d.ts +96 -0
- package/node_modules/@b3/chain-registry/chains.json +1225 -0
- package/node_modules/@b3/chain-registry/dist/chains.json +1225 -0
- package/node_modules/@b3/chain-registry/dist/index.cjs +1676 -0
- package/node_modules/@b3/chain-registry/dist/index.d.cts +195 -0
- package/node_modules/@b3/chain-registry/dist/index.d.ts +195 -0
- package/node_modules/@b3/chain-registry/dist/index.mjs +1604 -0
- package/node_modules/@b3/chain-registry/dist/src/index.d.ts +193 -0
- package/node_modules/@b3/chain-registry/dist/src/index.js +408 -0
- package/node_modules/@b3/chain-registry/package.json +66 -0
- package/node_modules/@b3/chain-registry/src/index.test.ts +432 -0
- package/node_modules/@b3/chain-registry/src/index.ts +672 -0
- package/package.json +81 -30
- package/src/anyspend/README.md +2 -2
- package/src/anyspend/constants/rpc.ts +5 -2
- package/src/anyspend/docs/components.md +6 -6
- package/src/anyspend/docs/contributing.md +1 -1
- package/src/anyspend/docs/hooks.md +3 -3
- package/src/anyspend/docs/installation.md +2 -2
- package/src/anyspend/react/components/AnySpend.tsx +163 -47
- package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +10 -11
- package/src/anyspend/react/components/AnySpendDeposit.tsx +130 -31
- package/src/anyspend/react/components/AnySpendStakeB3.tsx +55 -14
- package/src/anyspend/react/components/AnySpendStakeB3ExactIn.tsx +55 -11
- package/src/anyspend/react/components/QRDeposit.tsx +101 -22
- package/src/anyspend/react/components/__tests__/QRDeposit.test.tsx +331 -0
- package/src/anyspend/react/components/checkout/CryptoPayPanel.tsx +38 -16
- package/src/anyspend/react/components/common/PureTransferView.tsx +212 -0
- package/src/anyspend/react/components/common/TokenBalance.tsx +10 -7
- package/src/anyspend/react/hooks/useAnyspendQuote.ts +13 -13
- package/src/anyspend/react/hooks/useCreateDepositFirstOrder.ts +4 -4
- package/src/anyspend/services/gas.test.ts +95 -18
- package/src/anyspend/types/api_req_res.ts +10 -5
- package/src/anyspend/utils/__tests__/address.test.ts +39 -0
- package/src/anyspend/utils/__tests__/deprecatedChains.test.ts +44 -0
- package/src/anyspend/utils/__tests__/toRegistryChainId.test.ts +17 -0
- package/src/anyspend/utils/address.ts +8 -6
- package/src/anyspend/utils/chain.ts +79 -3
- package/src/anyspend/utils/token.ts +14 -0
- package/src/app.shared.ts +21 -1
- package/src/global-account/app.native.ts +5 -1
- package/src/global-account/better-auth-client.ts +30 -4
- package/src/global-account/bsmnt.native.ts +5 -1
- package/src/global-account/bsmnt.ts +9 -2
- package/src/global-account/client-manager.ts +74 -9
- package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +6 -11
- package/src/global-account/react/components/B3Provider/B3ConfigProvider.tsx +12 -0
- package/src/global-account/react/components/B3Provider/B3Provider.tsx +40 -4
- package/src/global-account/react/components/B3Provider/BetterAuthProvider.tsx +51 -5
- package/src/global-account/react/components/B3Provider/RelayKitProviderWrapper.tsx +11 -11
- package/src/global-account/react/components/ManageAccount/ContentTokens.tsx +50 -21
- package/src/global-account/react/components/ManageAccount/NFTContent.tsx +5 -3
- package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +10 -6
- package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +1 -1
- package/src/global-account/react/components/ManageAccount/TokenContent.tsx +22 -9
- package/src/global-account/react/components/Send/Send.tsx +39 -15
- package/src/global-account/react/components/SignInWithB3/BetterAuthSignIn.tsx +12 -1
- package/src/global-account/react/components/SignInWithB3/SignInWithB3Flow.tsx +1 -4
- package/src/global-account/react/components/SignInWithB3/components/AuthButton.tsx +9 -1
- package/src/global-account/react/components/SignInWithB3/steps/LoginStepBetterAuth.tsx +1 -0
- package/src/global-account/react/components/SignInWithB3/utils/signInUtils.ts +4 -4
- package/src/global-account/react/components/index.ts +1 -1
- package/src/global-account/react/components/ui/button.tsx +1 -2
- package/src/global-account/react/hooks/__tests__/useUnifiedChainSwitchAndExecute.test.tsx +156 -0
- package/src/global-account/react/hooks/index.ts +2 -3
- package/src/global-account/react/hooks/useAuth.ts +5 -4
- package/src/global-account/react/hooks/useAuthentication.ts +5 -4
- package/src/global-account/react/hooks/useBetterAuth.ts +10 -10
- package/src/global-account/react/hooks/useClient.ts +11 -2
- package/src/global-account/react/hooks/useFirstEOA.tsx +9 -2
- package/src/global-account/react/hooks/useNativeBalance.tsx +1 -1
- package/src/global-account/react/hooks/usePortfolioBalance.ts +89 -0
- package/src/global-account/react/hooks/usePortfolioCollectibles.ts +212 -0
- package/src/global-account/react/hooks/useSiwe.native.tsx +1 -1
- package/src/global-account/react/hooks/useSiwe.tsx +1 -1
- package/src/global-account/react/hooks/useTWAuth.tsx +1 -1
- package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +47 -31
- package/src/global-account/react/stores/useModalStore.ts +14 -2
- package/src/global-account/types/b3-api.types.ts +5 -1
- package/src/notifications/services/api.ts +1 -0
- package/src/shared/constants/chains/b3Chain.ts +4 -43
- package/src/shared/constants/chains/supported.ts +9 -48
- package/src/shared/constants/index.ts +8 -0
- package/src/shared/react/hooks/__tests__/useCurrencyConversion.test.ts +54 -43
- package/src/shared/utils/__tests__/zerionPositions.test.ts +248 -0
- package/src/shared/utils/chain-transformers.ts +41 -39
- package/src/shared/utils/thirdweb-insights.ts +2 -2
- package/src/shared/utils/upload.ts +48 -0
- package/src/shared/utils/zerionPositions.ts +247 -0
- package/src/styles/index.css +27 -0
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Privy.d.ts +0 -10
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Privy.js +0 -46
- package/dist/cjs/global-account/react/hooks/useHandleConnectWithPrivy.d.ts +0 -11
- package/dist/cjs/global-account/react/hooks/useHandleConnectWithPrivy.js +0 -70
- package/dist/cjs/global-account/react/hooks/useSimBalance.d.ts +0 -59
- package/dist/cjs/global-account/react/hooks/useSimBalance.js +0 -98
- package/dist/cjs/global-account/react/hooks/useSimCollectibles.d.ts +0 -45
- package/dist/cjs/global-account/react/hooks/useSimCollectibles.js +0 -190
- package/dist/cjs/global-account/react/utils/simdune.d.ts +0 -7
- package/dist/cjs/global-account/react/utils/simdune.js +0 -21
- package/dist/cjs/global-account/types/chain-networks.d.ts +0 -44
- package/dist/cjs/global-account/types/chain-networks.js +0 -48
- package/dist/cjs/shared/generated/chain-networks.json +0 -684
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Privy.d.ts +0 -10
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Privy.js +0 -43
- package/dist/esm/global-account/react/hooks/useHandleConnectWithPrivy.d.ts +0 -11
- package/dist/esm/global-account/react/hooks/useHandleConnectWithPrivy.js +0 -67
- package/dist/esm/global-account/react/hooks/useSimBalance.d.ts +0 -59
- package/dist/esm/global-account/react/hooks/useSimBalance.js +0 -93
- package/dist/esm/global-account/react/hooks/useSimCollectibles.d.ts +0 -45
- package/dist/esm/global-account/react/hooks/useSimCollectibles.js +0 -187
- package/dist/esm/global-account/react/utils/simdune.d.ts +0 -7
- package/dist/esm/global-account/react/utils/simdune.js +0 -17
- package/dist/esm/global-account/types/chain-networks.d.ts +0 -44
- package/dist/esm/global-account/types/chain-networks.js +0 -45
- package/dist/esm/shared/generated/chain-networks.json +0 -684
- package/dist/types/global-account/react/components/SignInWithB3/SignInWithB3Privy.d.ts +0 -10
- package/dist/types/global-account/react/hooks/useHandleConnectWithPrivy.d.ts +0 -11
- package/dist/types/global-account/react/hooks/useSimBalance.d.ts +0 -59
- package/dist/types/global-account/react/hooks/useSimCollectibles.d.ts +0 -45
- package/dist/types/global-account/react/utils/simdune.d.ts +0 -7
- package/dist/types/global-account/types/chain-networks.d.ts +0 -44
- package/src/global-account/react/components/SignInWithB3/SignInWithB3Privy.tsx +0 -63
- package/src/global-account/react/hooks/useHandleConnectWithPrivy.tsx +0 -79
- package/src/global-account/react/hooks/useSimBalance.ts +0 -164
- package/src/global-account/react/hooks/useSimCollectibles.ts +0 -238
- package/src/global-account/react/utils/simdune.ts +0 -20
- package/src/global-account/types/chain-networks.ts +0 -54
- package/src/shared/generated/chain-networks.json +0 -684
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
getDefaultToken,
|
|
7
7
|
getExplorerTxUrl,
|
|
8
8
|
getHyperliquidUSDCToken,
|
|
9
|
+
isSameChainAndToken,
|
|
9
10
|
HYPERLIQUID_CHAIN_ID,
|
|
10
11
|
HYPERLIQUID_USDC_ADDRESS,
|
|
11
12
|
USDC_BASE,
|
|
@@ -71,6 +72,7 @@ import { LoginStep } from "@b3dotfun/sdk/global-account/react/components/SignInW
|
|
|
71
72
|
import { PanelOnramp } from "./common/PanelOnramp";
|
|
72
73
|
import { PanelOnrampPayment } from "./common/PanelOnrampPayment";
|
|
73
74
|
import { PointsDetailPanel } from "./common/PointsDetailPanel";
|
|
75
|
+
import { PureTransferView } from "./common/PureTransferView";
|
|
74
76
|
import { RecipientSelection } from "./common/RecipientSelection";
|
|
75
77
|
import { TabSection } from "./common/TabSection";
|
|
76
78
|
import { AnySpendCustomizationProvider, useAnySpendCustomization } from "./context/AnySpendCustomizationContext";
|
|
@@ -100,6 +102,7 @@ export enum PanelView {
|
|
|
100
102
|
DIRECT_TRANSFER_SUCCESS,
|
|
101
103
|
FIAT_KYC,
|
|
102
104
|
FIAT_AUTH,
|
|
105
|
+
PURE_TRANSFER_ADDRESS,
|
|
103
106
|
}
|
|
104
107
|
|
|
105
108
|
const ANYSPEND_RECIPIENTS_KEY = "anyspend_recipients";
|
|
@@ -110,6 +113,13 @@ export function AnySpend(props: {
|
|
|
110
113
|
sourceChainId?: number;
|
|
111
114
|
destinationTokenAddress?: string;
|
|
112
115
|
destinationTokenChainId?: number;
|
|
116
|
+
/**
|
|
117
|
+
* When false, the destination token is user-selectable even if a default destination token is
|
|
118
|
+
* provided (the provided destination is used only as the initial/default value). Used by the
|
|
119
|
+
* wallet-funding deposit flow so the user can change the receive token away from the default
|
|
120
|
+
* (Base USDC). Defaults to true (locked buy-mode display, current behavior).
|
|
121
|
+
*/
|
|
122
|
+
lockDestinationToken?: boolean;
|
|
113
123
|
recipientAddress?: string;
|
|
114
124
|
loadOrder?: string;
|
|
115
125
|
hideTransactionHistoryButton?: boolean;
|
|
@@ -166,6 +176,7 @@ function AnySpendInner({
|
|
|
166
176
|
sourceChainId,
|
|
167
177
|
destinationTokenAddress,
|
|
168
178
|
destinationTokenChainId,
|
|
179
|
+
lockDestinationToken = true,
|
|
169
180
|
mode = "modal",
|
|
170
181
|
defaultActiveTab = "crypto",
|
|
171
182
|
loadOrder,
|
|
@@ -191,6 +202,7 @@ function AnySpendInner({
|
|
|
191
202
|
sourceChainId?: number;
|
|
192
203
|
destinationTokenAddress?: string;
|
|
193
204
|
destinationTokenChainId?: number;
|
|
205
|
+
lockDestinationToken?: boolean;
|
|
194
206
|
mode?: "page" | "modal";
|
|
195
207
|
defaultActiveTab?: "crypto" | "fiat";
|
|
196
208
|
loadOrder?: string;
|
|
@@ -230,8 +242,10 @@ function AnySpendInner({
|
|
|
230
242
|
// in the same frame that onStatusResolved sets it (setState is async).
|
|
231
243
|
// When kycEnabled is false (default), pre-approve so the KYC gate is skipped.
|
|
232
244
|
const kycApprovedRef = useRef(!kycEnabled);
|
|
233
|
-
// Determine if we're in "buy mode" based on whether destination token props are provided
|
|
234
|
-
|
|
245
|
+
// Determine if we're in "buy mode" based on whether destination token props are provided.
|
|
246
|
+
// When lockDestinationToken is false, the provided destination is only a default and the user
|
|
247
|
+
// can change the receive token, so we stay out of buy mode (selectable swap mode).
|
|
248
|
+
const isBuyMode = !!(destinationTokenAddress && destinationTokenChainId) && lockDestinationToken;
|
|
235
249
|
|
|
236
250
|
// Add refs to track URL state
|
|
237
251
|
const initialUrlProcessed = useRef(false);
|
|
@@ -323,10 +337,16 @@ function AnySpendInner({
|
|
|
323
337
|
sessionStorage.setItem("anyspend_fiat_method", selectedFiatPaymentMethod);
|
|
324
338
|
}, [selectedFiatPaymentMethod]);
|
|
325
339
|
|
|
340
|
+
// Whether a default destination token was provided. When lockDestinationToken is false this is
|
|
341
|
+
// used only as the INITIAL/default value (the user can still change the receive token), so the
|
|
342
|
+
// wallet-funding deposit flow defaults to Base USDC but stays selectable.
|
|
343
|
+
const hasProvidedDestination = !!(destinationTokenAddress && destinationTokenChainId);
|
|
344
|
+
|
|
326
345
|
// Get initial chain IDs from URL or defaults
|
|
327
346
|
const initialSrcChainId = sourceChainId || parseInt(searchParams.get("fromChainId") || "0") || mainnet.id;
|
|
328
347
|
const initialDstChainId =
|
|
329
|
-
parseInt(searchParams.get("toChainId") || "0") ||
|
|
348
|
+
parseInt(searchParams.get("toChainId") || "0") ||
|
|
349
|
+
(isBuyMode ? destinationTokenChainId : hasProvidedDestination ? destinationTokenChainId : base.id);
|
|
330
350
|
|
|
331
351
|
// State for source chain/token selection
|
|
332
352
|
const [selectedSrcChainId, setSelectedSrcChainId] = useState<number>(initialSrcChainId);
|
|
@@ -368,19 +388,28 @@ function AnySpendInner({
|
|
|
368
388
|
const isHyperliquidUSDCAddress = (address?: string) =>
|
|
369
389
|
eqci(address, HYPERLIQUID_USDC_ADDRESS) || eqci(address, ZERO_ADDRESS);
|
|
370
390
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
391
|
+
// Build a token object from the provided destination props (handles the Hyperliquid USDC special case).
|
|
392
|
+
// The inline truthiness check lets TypeScript narrow both props to non-null, so it is `undefined`
|
|
393
|
+
// unless both props are provided — i.e. only meaningful when hasProvidedDestination/isBuyMode is true.
|
|
394
|
+
const providedDstToken: components["schemas"]["Token"] | undefined =
|
|
395
|
+
destinationTokenChainId && destinationTokenAddress
|
|
396
|
+
? destinationTokenChainId === HYPERLIQUID_CHAIN_ID && isHyperliquidUSDCAddress(destinationTokenAddress)
|
|
397
|
+
? getHyperliquidUSDCToken()
|
|
398
|
+
: {
|
|
399
|
+
symbol: "",
|
|
400
|
+
chainId: destinationTokenChainId,
|
|
401
|
+
address: destinationTokenAddress,
|
|
402
|
+
name: "",
|
|
403
|
+
decimals: 18,
|
|
404
|
+
metadata: {},
|
|
405
|
+
}
|
|
406
|
+
: undefined;
|
|
407
|
+
|
|
408
|
+
// In buy mode the provided destination is locked. Otherwise, if a default destination was provided
|
|
409
|
+
// (selectable deposit flow) seed it as the default; falling back to the chain's default token only
|
|
410
|
+
// when no destination prop is given (standard swap mode).
|
|
411
|
+
const defaultDstToken =
|
|
412
|
+
(isBuyMode || hasProvidedDestination) && providedDstToken ? providedDstToken : getDefaultToken(selectedDstChainId);
|
|
384
413
|
const dstTokenFromUrl = useTokenFromUrl({
|
|
385
414
|
defaultToken: defaultDstToken,
|
|
386
415
|
prefix: "to",
|
|
@@ -661,7 +690,10 @@ function AnySpendInner({
|
|
|
661
690
|
globalAddress,
|
|
662
691
|
});
|
|
663
692
|
|
|
664
|
-
const recipientProfile = useProfile({
|
|
693
|
+
const recipientProfile = useProfile({
|
|
694
|
+
address: effectiveRecipientAddress,
|
|
695
|
+
fresh: true,
|
|
696
|
+
});
|
|
665
697
|
const recipientName = recipientProfile.data?.name;
|
|
666
698
|
|
|
667
699
|
// Check token balance for crypto payments
|
|
@@ -781,12 +813,15 @@ function AnySpendInner({
|
|
|
781
813
|
anyspendQuote.data.currencyOut?.currency?.decimals
|
|
782
814
|
) {
|
|
783
815
|
if (isSrcInputDirty) {
|
|
784
|
-
//
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
816
|
+
// The user is driving the SOURCE (exact-in): reflect the quote's OUTPUT even
|
|
817
|
+
// when a fixed destinationTokenAmount pre-filled the receive. That lock only
|
|
818
|
+
// governs the INITIAL exact-out state (untouched source → compute the pay for
|
|
819
|
+
// the fixed receive). Once the user edits the pay, keeping the receive pinned
|
|
820
|
+
// shows a value that doesn't match the quote — the URL amount "overrides" the
|
|
821
|
+
// real output, an invalid mismatched swap.
|
|
822
|
+
const amount = anyspendQuote.data.currencyOut.amount;
|
|
823
|
+
const decimals = anyspendQuote.data.currencyOut.currency.decimals;
|
|
824
|
+
setDstAmount(formatTokenAmount(BigInt(amount), decimals, 6, false));
|
|
790
825
|
} else {
|
|
791
826
|
const amount = anyspendQuote.data.currencyIn.amount;
|
|
792
827
|
const decimals = anyspendQuote.data.currencyIn.currency.decimals;
|
|
@@ -794,15 +829,12 @@ function AnySpendInner({
|
|
|
794
829
|
}
|
|
795
830
|
} else {
|
|
796
831
|
if (isSrcInputDirty) {
|
|
797
|
-
|
|
798
|
-
if (!destinationTokenAmount) {
|
|
799
|
-
setDstAmount("");
|
|
800
|
-
}
|
|
832
|
+
setDstAmount("");
|
|
801
833
|
} else {
|
|
802
834
|
setSrcAmount("");
|
|
803
835
|
}
|
|
804
836
|
}
|
|
805
|
-
}, [anyspendQuote, isSrcInputDirty
|
|
837
|
+
}, [anyspendQuote, isSrcInputDirty]);
|
|
806
838
|
|
|
807
839
|
// Call onSuccess when order is executed
|
|
808
840
|
useOnOrderSuccess({ orderData: oat, orderId, onSuccess });
|
|
@@ -871,8 +903,7 @@ function AnySpendInner({
|
|
|
871
903
|
const isSameChainSameToken = useMemo(() => {
|
|
872
904
|
return (
|
|
873
905
|
activeTab === "crypto" &&
|
|
874
|
-
selectedSrcChainId
|
|
875
|
-
selectedSrcToken.address.toLowerCase() === selectedDstToken.address.toLowerCase()
|
|
906
|
+
isSameChainAndToken(selectedSrcChainId, selectedSrcToken.address, selectedDstChainId, selectedDstToken.address)
|
|
876
907
|
);
|
|
877
908
|
}, [activeTab, selectedSrcChainId, selectedDstChainId, selectedSrcToken.address, selectedDstToken.address]);
|
|
878
909
|
|
|
@@ -880,15 +911,36 @@ function AnySpendInner({
|
|
|
880
911
|
const isDirectTransfer = isSameChainSameToken && allowDirectTransfer;
|
|
881
912
|
|
|
882
913
|
// Determine button state and text
|
|
883
|
-
const btnInfo: {
|
|
914
|
+
const btnInfo: {
|
|
915
|
+
text: string;
|
|
916
|
+
disable: boolean;
|
|
917
|
+
error: boolean;
|
|
918
|
+
loading: boolean;
|
|
919
|
+
} = useMemo(() => {
|
|
884
920
|
// For fiat tab, check srcAmountOnRamp; for crypto tab, check activeInputAmountInWei
|
|
885
921
|
const hasAmount =
|
|
886
922
|
activeTab === "fiat" ? srcAmountOnRamp && parseFloat(srcAmountOnRamp) > 0 : activeInputAmountInWei !== "0";
|
|
887
|
-
if (!hasAmount)
|
|
923
|
+
if (!hasAmount)
|
|
924
|
+
return {
|
|
925
|
+
text: "Enter an amount",
|
|
926
|
+
disable: true,
|
|
927
|
+
error: false,
|
|
928
|
+
loading: false,
|
|
929
|
+
};
|
|
888
930
|
if (isSameChainSameToken && !allowDirectTransfer)
|
|
889
|
-
return {
|
|
931
|
+
return {
|
|
932
|
+
text: "Select a different token or chain",
|
|
933
|
+
disable: true,
|
|
934
|
+
error: false,
|
|
935
|
+
loading: false,
|
|
936
|
+
};
|
|
890
937
|
if (isLoadingAnyspendQuote && !isSameChainSameToken)
|
|
891
|
-
return {
|
|
938
|
+
return {
|
|
939
|
+
text: "Loading quote...",
|
|
940
|
+
disable: true,
|
|
941
|
+
error: false,
|
|
942
|
+
loading: true,
|
|
943
|
+
};
|
|
892
944
|
if (isCreatingOrder || isCreatingOnrampOrder || isSwitchingOrExecuting)
|
|
893
945
|
return {
|
|
894
946
|
text: isSwitchingOrExecuting ? "Transferring..." : "Creating order...",
|
|
@@ -897,15 +949,31 @@ function AnySpendInner({
|
|
|
897
949
|
loading: true,
|
|
898
950
|
};
|
|
899
951
|
if ((!anyspendQuote || !anyspendQuote.success) && !(isSameChainSameToken && allowDirectTransfer))
|
|
900
|
-
return {
|
|
952
|
+
return {
|
|
953
|
+
text: "No quote found",
|
|
954
|
+
disable: true,
|
|
955
|
+
error: false,
|
|
956
|
+
loading: false,
|
|
957
|
+
};
|
|
901
958
|
|
|
902
959
|
if (activeTab === "fiat") {
|
|
903
960
|
// For fiat: check recipient first, then payment method
|
|
904
|
-
if (!effectiveRecipientAddress)
|
|
961
|
+
if (!effectiveRecipientAddress)
|
|
962
|
+
return {
|
|
963
|
+
text: "Select recipient",
|
|
964
|
+
disable: false,
|
|
965
|
+
error: false,
|
|
966
|
+
loading: false,
|
|
967
|
+
};
|
|
905
968
|
|
|
906
969
|
// If no fiat payment method selected, show "Select payment method"
|
|
907
970
|
if (selectedFiatPaymentMethod === FiatPaymentMethod.NONE) {
|
|
908
|
-
return {
|
|
971
|
+
return {
|
|
972
|
+
text: "Select payment method",
|
|
973
|
+
disable: false,
|
|
974
|
+
error: false,
|
|
975
|
+
loading: false,
|
|
976
|
+
};
|
|
909
977
|
}
|
|
910
978
|
// If payment method is selected, show "Continue"
|
|
911
979
|
return { text: "Continue", disable: false, error: false, loading: false };
|
|
@@ -916,11 +984,22 @@ function AnySpendInner({
|
|
|
916
984
|
|
|
917
985
|
// If no payment method selected, show "Choose payment method"
|
|
918
986
|
if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.NONE) {
|
|
919
|
-
return {
|
|
987
|
+
return {
|
|
988
|
+
text: "Choose payment method",
|
|
989
|
+
disable: false,
|
|
990
|
+
error: false,
|
|
991
|
+
loading: false,
|
|
992
|
+
};
|
|
920
993
|
}
|
|
921
994
|
|
|
922
995
|
// Check recipient after payment method
|
|
923
|
-
if (!effectiveRecipientAddress)
|
|
996
|
+
if (!effectiveRecipientAddress)
|
|
997
|
+
return {
|
|
998
|
+
text: "Select recipient",
|
|
999
|
+
disable: false,
|
|
1000
|
+
error: false,
|
|
1001
|
+
loading: false,
|
|
1002
|
+
};
|
|
924
1003
|
|
|
925
1004
|
// If payment method selected, show appropriate action
|
|
926
1005
|
if (
|
|
@@ -928,10 +1007,22 @@ function AnySpendInner({
|
|
|
928
1007
|
effectiveCryptoPaymentMethod === CryptoPaymentMethodType.GLOBAL_WALLET
|
|
929
1008
|
) {
|
|
930
1009
|
const buttonText = isSameChainSameToken && allowDirectTransfer ? "Transfer" : "Swap";
|
|
931
|
-
return {
|
|
1010
|
+
return {
|
|
1011
|
+
text: buttonText,
|
|
1012
|
+
disable: false,
|
|
1013
|
+
error: false,
|
|
1014
|
+
loading: false,
|
|
1015
|
+
};
|
|
932
1016
|
}
|
|
933
1017
|
if (effectiveCryptoPaymentMethod === CryptoPaymentMethodType.TRANSFER_CRYPTO) {
|
|
934
|
-
|
|
1018
|
+
const transferText =
|
|
1019
|
+
isSameChainSameToken && allowDirectTransfer ? "Show deposit address" : "Continue to payment";
|
|
1020
|
+
return {
|
|
1021
|
+
text: transferText,
|
|
1022
|
+
disable: false,
|
|
1023
|
+
error: false,
|
|
1024
|
+
loading: false,
|
|
1025
|
+
};
|
|
935
1026
|
}
|
|
936
1027
|
}
|
|
937
1028
|
|
|
@@ -1037,10 +1128,18 @@ function AnySpendInner({
|
|
|
1037
1128
|
// Handle crypto swap creation
|
|
1038
1129
|
const handleCryptoSwap = async (method: CryptoPaymentMethodType) => {
|
|
1039
1130
|
try {
|
|
1040
|
-
|
|
1131
|
+
// TRANSFER_CRYPTO is the manual deposit-address flow — no connected wallet to send from.
|
|
1132
|
+
const isDirectTransfer =
|
|
1133
|
+
isSameChainSameToken && allowDirectTransfer && method !== CryptoPaymentMethodType.TRANSFER_CRYPTO;
|
|
1041
1134
|
|
|
1042
1135
|
invariant(effectiveRecipientAddress, "Recipient address is not found");
|
|
1043
1136
|
|
|
1137
|
+
// Same-token manual deposit → show recipient address + watch, no relayer order, no fee
|
|
1138
|
+
if (isSameChainSameToken && allowDirectTransfer && method === CryptoPaymentMethodType.TRANSFER_CRYPTO) {
|
|
1139
|
+
navigateToPanel(PanelView.PURE_TRANSFER_ADDRESS, "forward");
|
|
1140
|
+
return;
|
|
1141
|
+
}
|
|
1142
|
+
|
|
1044
1143
|
const srcAmountBigInt = parseUnits(srcAmount.replace(/,/g, ""), selectedSrcToken.decimals);
|
|
1045
1144
|
|
|
1046
1145
|
// Handle direct transfer (same chain/token) - bypass backend, transfer directly
|
|
@@ -1063,10 +1162,6 @@ function AnySpendInner({
|
|
|
1063
1162
|
// Regular swap flow - use backend
|
|
1064
1163
|
invariant(anyspendQuote, "Relay price is not found");
|
|
1065
1164
|
|
|
1066
|
-
// Debug: Check payment method values
|
|
1067
|
-
console.log("handleCryptoSwap - method parameter:", method);
|
|
1068
|
-
console.log("handleCryptoSwap - selectedCryptoPaymentMethod state:", selectedCryptoPaymentMethod);
|
|
1069
|
-
|
|
1070
1165
|
createOrder({
|
|
1071
1166
|
recipientAddress: effectiveRecipientAddress,
|
|
1072
1167
|
orderType: "swap",
|
|
@@ -1074,7 +1169,11 @@ function AnySpendInner({
|
|
|
1074
1169
|
dstChain: isBuyMode ? destinationTokenChainId : selectedDstChainId,
|
|
1075
1170
|
srcToken: selectedSrcToken,
|
|
1076
1171
|
dstToken: isBuyMode
|
|
1077
|
-
? {
|
|
1172
|
+
? {
|
|
1173
|
+
...selectedDstToken,
|
|
1174
|
+
chainId: destinationTokenChainId,
|
|
1175
|
+
address: destinationTokenAddress,
|
|
1176
|
+
}
|
|
1078
1177
|
: selectedDstToken,
|
|
1079
1178
|
srcAmount: srcAmountBigInt.toString(),
|
|
1080
1179
|
expectedDstAmount: anyspendQuote?.data?.currencyOut?.amount || "0",
|
|
@@ -1733,6 +1832,20 @@ function AnySpendInner({
|
|
|
1733
1832
|
</div>
|
|
1734
1833
|
);
|
|
1735
1834
|
|
|
1835
|
+
const pureTransferAddressView = (
|
|
1836
|
+
<PureTransferView
|
|
1837
|
+
mode={mode}
|
|
1838
|
+
recipientAddress={effectiveRecipientAddress ?? ""}
|
|
1839
|
+
chainId={selectedSrcChainId}
|
|
1840
|
+
token={selectedSrcToken}
|
|
1841
|
+
displayAmount={srcAmount && srcAmount !== "0" ? `${srcAmount} ${selectedSrcToken.symbol}` : undefined}
|
|
1842
|
+
isActive={activePanel === PanelView.PURE_TRANSFER_ADDRESS}
|
|
1843
|
+
onBack={navigateBack}
|
|
1844
|
+
onClose={() => setB3ModalOpen(false)}
|
|
1845
|
+
onTransferDetected={() => onSuccess?.()}
|
|
1846
|
+
/>
|
|
1847
|
+
);
|
|
1848
|
+
|
|
1736
1849
|
// Add tabs to the main component when no order is loaded
|
|
1737
1850
|
return (
|
|
1738
1851
|
<StyleRoot>
|
|
@@ -1813,6 +1926,9 @@ function AnySpendInner({
|
|
|
1813
1926
|
<div key="fiat-auth-view" className={cn(mode === "page" && "p-6")}>
|
|
1814
1927
|
{authView}
|
|
1815
1928
|
</div>,
|
|
1929
|
+
<div key="pure-transfer-address-view" className={cn(mode === "page" && "p-6")}>
|
|
1930
|
+
{pureTransferAddressView}
|
|
1931
|
+
</div>,
|
|
1816
1932
|
]}
|
|
1817
1933
|
</TransitionPanel>
|
|
1818
1934
|
</div>
|
|
@@ -2,7 +2,7 @@ import { getChainName, getExplorerTxUrl } from "@b3dotfun/sdk/anyspend";
|
|
|
2
2
|
import { useGasPrice } from "@b3dotfun/sdk/anyspend/react";
|
|
3
3
|
import { components } from "@b3dotfun/sdk/anyspend/types/api";
|
|
4
4
|
import { GetQuoteResponse } from "@b3dotfun/sdk/anyspend/types/api_req_res";
|
|
5
|
-
import { normalizeAddress } from "@b3dotfun/sdk/anyspend/utils";
|
|
5
|
+
import { isSameChainAndToken, normalizeAddress } from "@b3dotfun/sdk/anyspend/utils";
|
|
6
6
|
import {
|
|
7
7
|
Button,
|
|
8
8
|
ShinyButton,
|
|
@@ -218,16 +218,11 @@ function AnySpendCustomExactInInner({
|
|
|
218
218
|
const isSameChainSameToken = useMemo(() => {
|
|
219
219
|
return (
|
|
220
220
|
effectivePaymentType === "crypto" &&
|
|
221
|
-
|
|
222
|
-
|
|
221
|
+
selectedSrcToken != null &&
|
|
222
|
+
selectedDstToken != null &&
|
|
223
|
+
isSameChainAndToken(selectedSrcChainId, selectedSrcToken.address, selectedDstChainId, selectedDstToken.address)
|
|
223
224
|
);
|
|
224
|
-
}, [
|
|
225
|
-
effectivePaymentType,
|
|
226
|
-
selectedSrcChainId,
|
|
227
|
-
selectedDstChainId,
|
|
228
|
-
selectedSrcToken?.address,
|
|
229
|
-
selectedDstToken?.address,
|
|
230
|
-
]);
|
|
225
|
+
}, [effectivePaymentType, selectedSrcChainId, selectedDstChainId, selectedSrcToken, selectedDstToken]);
|
|
231
226
|
|
|
232
227
|
// Check if this is a direct transfer
|
|
233
228
|
const isDirectTransfer = isSameChainSameToken && allowDirectTransfer;
|
|
@@ -574,7 +569,11 @@ function AnySpendCustomExactInInner({
|
|
|
574
569
|
|
|
575
570
|
const handleCryptoOrder = async () => {
|
|
576
571
|
try {
|
|
577
|
-
|
|
572
|
+
// TRANSFER_CRYPTO is the manual deposit-address flow — no connected wallet to send from.
|
|
573
|
+
const isDirectTransfer =
|
|
574
|
+
isSameChainSameToken &&
|
|
575
|
+
allowDirectTransfer &&
|
|
576
|
+
effectiveCryptoPaymentMethod !== CryptoPaymentMethodType.TRANSFER_CRYPTO;
|
|
578
577
|
|
|
579
578
|
if (!isDirectTransfer) {
|
|
580
579
|
invariant(anyspendQuote, "Relay price is not found");
|