@0xsequence/marketplace-sdk 0.5.6 → 0.5.7

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.
Files changed (118) hide show
  1. package/dist/{chunk-J6F5QOW5.js → chunk-3OU7BADC.js} +9 -75
  2. package/dist/chunk-3OU7BADC.js.map +1 -0
  3. package/dist/{chunk-Y75XGZOB.js → chunk-5O3ZAEEX.js} +4 -2
  4. package/dist/chunk-5O3ZAEEX.js.map +1 -0
  5. package/dist/{chunk-4YR6AIXG.js → chunk-G2T7HCWE.js} +5 -7
  6. package/dist/chunk-G2T7HCWE.js.map +1 -0
  7. package/dist/chunk-GFADBQPX.js +2 -0
  8. package/dist/chunk-GFADBQPX.js.map +1 -0
  9. package/dist/{chunk-E2V2BMF6.js → chunk-L2K4DBH2.js} +152 -89
  10. package/dist/chunk-L2K4DBH2.js.map +1 -0
  11. package/dist/{chunk-7C7ADZ2H.js → chunk-OMCWTRBR.js} +9 -42
  12. package/dist/chunk-OMCWTRBR.js.map +1 -0
  13. package/dist/{chunk-7FN62HOP.js → chunk-UMYRZJVY.js} +11 -3
  14. package/dist/chunk-UMYRZJVY.js.map +1 -0
  15. package/dist/{chunk-UZIAX32Y.js → chunk-Y56IIYDF.js} +6 -4
  16. package/dist/{chunk-UZIAX32Y.js.map → chunk-Y56IIYDF.js.map} +1 -1
  17. package/dist/{chunk-AIGFG26L.js → chunk-YA3DWLDC.js} +32 -28
  18. package/dist/chunk-YA3DWLDC.js.map +1 -0
  19. package/dist/{chunk-RIGIV5XT.js → chunk-YYBU45PK.js} +10 -4
  20. package/dist/chunk-YYBU45PK.js.map +1 -0
  21. package/dist/{create-config-CtFGrwXc.d.ts → create-config-CILyA_Hy.d.ts} +1 -1
  22. package/dist/index.css +12 -6
  23. package/dist/index.d.ts +6 -5
  24. package/dist/index.js +13 -10
  25. package/dist/react/_internal/api/index.d.ts +2 -2
  26. package/dist/react/_internal/databeat/index.css.map +1 -1
  27. package/dist/react/_internal/databeat/index.js +7 -7
  28. package/dist/react/_internal/index.d.ts +4 -4
  29. package/dist/react/_internal/index.js +1 -1
  30. package/dist/react/_internal/wagmi/index.d.ts +2 -2
  31. package/dist/react/_internal/wagmi/index.js +1 -1
  32. package/dist/react/hooks/index.css.map +1 -1
  33. package/dist/react/hooks/index.d.ts +8 -15
  34. package/dist/react/hooks/index.js +6 -6
  35. package/dist/react/index.css +12 -6
  36. package/dist/react/index.css.map +1 -1
  37. package/dist/react/index.d.ts +4 -4
  38. package/dist/react/index.js +11 -10
  39. package/dist/react/ssr/index.d.ts +1 -0
  40. package/dist/react/ssr/index.js +10 -2
  41. package/dist/react/ssr/index.js.map +1 -1
  42. package/dist/react/ui/components/collectible-card/index.css +12 -6
  43. package/dist/react/ui/components/collectible-card/index.css.map +1 -1
  44. package/dist/react/ui/components/collectible-card/index.d.ts +2 -2
  45. package/dist/react/ui/components/collectible-card/index.js +11 -10
  46. package/dist/react/ui/icons/index.css.map +1 -1
  47. package/dist/react/ui/index.css +12 -6
  48. package/dist/react/ui/index.css.map +1 -1
  49. package/dist/react/ui/index.d.ts +2 -2
  50. package/dist/react/ui/index.js +11 -10
  51. package/dist/react/ui/modals/_internal/components/actionModal/index.css.map +1 -1
  52. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
  53. package/dist/react/ui/modals/_internal/components/actionModal/index.js +7 -7
  54. package/dist/react/ui/styles/index.css.map +1 -1
  55. package/dist/{sdk-config-xWkdBdrL.d.ts → sdk-config-Bs3H_le_.d.ts} +1 -0
  56. package/dist/{services-Cled3TJr.d.ts → services-C3lzi1sL.d.ts} +1 -1
  57. package/dist/styles/index.css +12 -6
  58. package/dist/styles/index.css.map +1 -1
  59. package/dist/styles/index.d.ts +3 -2
  60. package/dist/styles/index.js +4 -2
  61. package/dist/types/index.d.ts +1 -1
  62. package/dist/types/index.js +1 -1
  63. package/dist/{types-C4oGsbnK.d.ts → types-BVD42zE_.d.ts} +1 -1
  64. package/dist/utils/abi/index.js +5 -5
  65. package/dist/utils/index.d.ts +5 -6
  66. package/dist/utils/index.js +9 -9
  67. package/package.json +14 -14
  68. package/src/consts.ts +2 -0
  69. package/src/react/_internal/databeat/index.ts +11 -3
  70. package/src/react/_internal/wagmi/create-config.ts +11 -2
  71. package/src/react/_internal/wallet/__tests__/wallet.test.ts +343 -0
  72. package/src/react/_internal/wallet/useWallet.ts +22 -15
  73. package/src/react/_internal/wallet/wallet.ts +11 -9
  74. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +6 -14
  75. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +51 -154
  76. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +21 -19
  77. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +5 -14
  78. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +5 -10
  79. package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +69 -80
  80. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +12 -67
  81. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +7 -17
  82. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +7 -16
  83. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +8 -17
  84. package/src/react/hooks/__tests__/useListBalances.test.tsx +3 -8
  85. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +5 -10
  86. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +6 -11
  87. package/src/react/hooks/__tests__/useListCollections.test.tsx +5 -13
  88. package/src/react/hooks/__tests__/useMarketplaceConfig.test.tsx +5 -13
  89. package/src/react/hooks/__tests__/useRoyaltyPercentage.test.tsx +46 -78
  90. package/src/react/hooks/options/__mocks__/marketplaceConfig.msw.ts +9 -4
  91. package/src/react/hooks/useCurrencyBalance.tsx +4 -5
  92. package/src/react/hooks/useRoyaltyPercentage.tsx +16 -8
  93. package/src/react/ssr/__tests__/create-ssr-client.test.ts +118 -0
  94. package/src/react/ui/components/collectible-card/CollectibleCard.tsx +25 -6
  95. package/src/react/ui/components/collectible-card/Footer.tsx +46 -7
  96. package/src/react/ui/components/collectible-card/styles.css.ts +26 -2
  97. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +10 -28
  98. package/src/react/ui/modals/BuyModal/hooks/__tests__/useLoadData.test.tsx +9 -36
  99. package/src/react/ui/modals/BuyModal/modals/Modal1155.tsx +16 -5
  100. package/src/react/ui/modals/CreateListingModal/Modal.tsx +3 -2
  101. package/src/react/ui/modals/SellModal/Modal.tsx +1 -0
  102. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +8 -7
  103. package/src/types/sdk-config.ts +1 -0
  104. package/src/utils/index.ts +0 -1
  105. package/src/utils/price.ts +11 -0
  106. package/tsconfig.tsbuildinfo +1 -1
  107. package/dist/chunk-4YR6AIXG.js.map +0 -1
  108. package/dist/chunk-7C7ADZ2H.js.map +0 -1
  109. package/dist/chunk-7FN62HOP.js.map +0 -1
  110. package/dist/chunk-AIGFG26L.js.map +0 -1
  111. package/dist/chunk-E2V2BMF6.js.map +0 -1
  112. package/dist/chunk-J6F5QOW5.js.map +0 -1
  113. package/dist/chunk-RIGIV5XT.js.map +0 -1
  114. package/dist/chunk-Y75XGZOB.js.map +0 -1
  115. package/src/react/_internal/test/mocks/publicClient.ts +0 -39
  116. package/src/react/_internal/test/mocks/wagmi.ts +0 -61
  117. package/src/utils/__tests__/get-public-rpc-client.test.ts +0 -111
  118. package/src/utils/get-public-rpc-client.ts +0 -41
@@ -17,79 +17,6 @@ var compareAddress = (a = "", b = "") => {
17
17
  return a.toLowerCase() === b.toLowerCase();
18
18
  };
19
19
 
20
- // src/utils/get-public-rpc-client.ts
21
- import { allNetworks, findNetworkConfig } from "@0xsequence/network";
22
- import { http, createPublicClient } from "viem";
23
-
24
- // src/utils/_internal/error/base.ts
25
- var BaseError = class extends Error {
26
- details;
27
- shortMessage;
28
- name = "MarketplaceSdkBaseError";
29
- constructor(shortMessage, options = {}) {
30
- super();
31
- const details = "details" in options ? options.details : "";
32
- this.message = [
33
- shortMessage || "An error occurred.",
34
- "",
35
- ...details ? [`Details: ${details}`] : []
36
- ].join("\n");
37
- if ("cause" in options && options.cause) {
38
- this.cause = options.cause;
39
- }
40
- this.details = details || "";
41
- this.shortMessage = shortMessage;
42
- }
43
- };
44
-
45
- // src/utils/_internal/error/transaction.ts
46
- var TransactionError = class extends BaseError {
47
- name = "TransactionError";
48
- };
49
- var MissingConfigError = class extends TransactionError {
50
- name = "MissingConfigError";
51
- constructor(configName) {
52
- super(`Missing required config: ${configName}`, {
53
- details: "A required configuration parameter is missing."
54
- });
55
- }
56
- };
57
-
58
- // src/utils/get-public-rpc-client.ts
59
- var getPublicRpcClient = (chainId) => {
60
- if (chainId === void 0) {
61
- throw new MissingConfigError(
62
- `Network configuration for chainId: ${chainId}`
63
- );
64
- }
65
- const network = findNetworkConfig(allNetworks, chainId);
66
- if (!network) {
67
- throw new MissingConfigError(
68
- `Network configuration for chainId: ${chainId}`
69
- );
70
- }
71
- return createPublicClient({
72
- chain: {
73
- ...network,
74
- id: Number(chainId),
75
- name: network.name,
76
- nativeCurrency: { ...network.nativeToken },
77
- rpcUrls: {
78
- default: {
79
- http: [network.rpcUrl]
80
- },
81
- public: {
82
- http: [network.rpcUrl]
83
- }
84
- }
85
- },
86
- batch: {
87
- multicall: true
88
- },
89
- transport: http()
90
- });
91
- };
92
-
93
20
  // src/utils/network.ts
94
21
  import { networks } from "@0xsequence/network";
95
22
  var getPresentableChainName = (chainId) => {
@@ -110,6 +37,13 @@ var calculatePriceDifferencePercentage = ({
110
37
  const percentageDifference = difference / basePrice * 100;
111
38
  return percentageDifference.toFixed(2);
112
39
  };
40
+ var formatPrice = (amount, decimals) => {
41
+ const formattedUnits = Number(formatUnits(BigInt(amount), decimals));
42
+ return formattedUnits.toLocaleString("en-US", {
43
+ minimumFractionDigits: 0,
44
+ maximumFractionDigits: decimals
45
+ });
46
+ };
113
47
 
114
48
  // src/react/ui/components/marketplace-logos/marketplace-logos.tsx
115
49
  import { lazy, Suspense } from "react";
@@ -294,9 +228,9 @@ export {
294
228
  truncateMiddle,
295
229
  truncateEnd,
296
230
  compareAddress,
297
- getPublicRpcClient,
298
231
  getPresentableChainName,
299
232
  calculatePriceDifferencePercentage,
233
+ formatPrice,
300
234
  getMarketplaceDetails
301
235
  };
302
- //# sourceMappingURL=chunk-J6F5QOW5.js.map
236
+ //# sourceMappingURL=chunk-3OU7BADC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/address.ts","../src/utils/network.ts","../src/utils/price.ts","../src/react/ui/components/marketplace-logos/marketplace-logos.tsx","../src/utils/getMarketplaceDetails.ts"],"sourcesContent":["export const truncateMiddle = (\n\taddress: string,\n\tminPrefix = 20,\n\tminSuffix = 3,\n): string => {\n\tif (minPrefix + minSuffix >= 40) {\n\t\treturn address;\n\t}\n\treturn `${address.substring(0, 2 + minPrefix)}…${address.substring(address.length - minSuffix)}`;\n};\n\nexport const truncateEnd = (text: string | undefined, truncateAt: number) => {\n\tif (!text) return '';\n\n\tlet finalText = text;\n\n\tif (text.length >= truncateAt) {\n\t\tfinalText = `${text.slice(0, truncateAt)}...`;\n\t}\n\n\treturn finalText;\n};\n\nexport const compareAddress = (a = '', b = '') => {\n\treturn a.toLowerCase() === b.toLowerCase();\n};\n","import { networks, type ChainId as sequenceChainId } from '@0xsequence/network';\nimport type { ChainId } from '../react/_internal';\n\nexport const getPresentableChainName = (chainId: ChainId) => {\n\tconst id = Number(chainId) as sequenceChainId;\n\treturn networks[id]?.name;\n};\n","import { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\n};\n\nexport const calculatePriceDifferencePercentage = ({\n\tinputPriceRaw,\n\tbasePriceRaw,\n\tdecimals,\n}: CalculatePriceDifferencePercentageArgs) => {\n\tconst inputPrice = Number(formatUnits(inputPriceRaw, decimals));\n\tconst basePrice = Number(formatUnits(basePriceRaw, decimals));\n\tconst difference = inputPrice - basePrice;\n\tconst percentageDifference = (difference / basePrice) * 100;\n\n\treturn percentageDifference.toFixed(2);\n};\n\nexport const formatPrice = (\n\tamount: string | number | bigint,\n\tdecimals: number,\n): string => {\n\tconst formattedUnits = Number(formatUnits(BigInt(amount), decimals));\n\treturn formattedUnits.toLocaleString('en-US', {\n\t\tminimumFractionDigits: 0,\n\t\tmaximumFractionDigits: decimals,\n\t});\n};\n","import { type ComponentProps, lazy, Suspense } from 'react';\nimport { Image } from '@0xsequence/design-system';\n\n/* @__PURE__ */\nconst createMarketplaceLogo = (\n\timportFn: () => Promise<{ default: string }>,\n\talt: string,\n) => {\n\tconst LazyLogo = lazy(async () => {\n\t\tconst src = await importFn();\n\t\treturn {\n\t\t\tdefault: function MarketplaceLogo({\n\t\t\t\talt: altProp,\n\t\t\t\t...props\n\t\t\t}: ComponentProps<typeof Image>) {\n\t\t\t\treturn <Image src={src.default} alt={altProp || alt} {...props} />;\n\t\t\t},\n\t\t};\n\t});\n\n\treturn function MarketplaceLogo(props: ComponentProps<typeof Image>) {\n\t\treturn (\n\t\t\t<Suspense\n\t\t\t\tfallback={<div style={{ width: props.width, height: props.height }} />}\n\t\t\t>\n\t\t\t\t<LazyLogo {...props} />\n\t\t\t</Suspense>\n\t\t);\n\t};\n};\n\nexport const AlienSwapLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/alien_swap.png'),\n\t'AlienSwap Logo',\n);\nexport const AquaXyzLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/aqua-xyz.png'),\n\t'AquaXyz Logo',\n);\nexport const AuraLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/aura.png'),\n\t'Aura Logo',\n);\nexport const BlurLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/blur.png'),\n\t'Blur Logo',\n);\nexport const CoinbaseLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/coinbase.png'),\n\t'Coinbase Logo',\n);\nexport const ElementLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/element.png'),\n\t'Element Logo',\n);\nexport const FoundationLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/foundation.png'),\n\t'Foundation Logo',\n);\nexport const LooksRareLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/looks-rare.png'),\n\t'LooksRare Logo',\n);\nexport const MagicEdenLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/magic-eden.png'),\n\t'MagicEden Logo',\n);\nexport const ManifoldLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/manifold.png'),\n\t'Manifold Logo',\n);\nexport const MintifyLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/mintify.png'),\n\t'Mintify Logo',\n);\nexport const NftxLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/nftx.png'),\n\t'NFTX Logo',\n);\nexport const OkxLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/okx.png'),\n\t'OKX Logo',\n);\nexport const OpenSeaLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/open-sea.png'),\n\t'OpenSea Logo',\n);\nexport const RaribleLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/rarible.png'),\n\t'Rarible Logo',\n);\nexport const SequenceLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/sequence.png'),\n\t'Sequence Logo',\n);\nexport const SudoSwapLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/sudo-swap.png'),\n\t'SudoSwap Logo',\n);\nexport const SuperRareLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/super-rare.png'),\n\t'SuperRare Logo',\n);\nexport const X2y2Logo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/x2y2.png'),\n\t'X2Y2 Logo',\n);\nexport const ZoraLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/zora.png'),\n\t'Zora Logo',\n);\n","import { MarketplaceKind } from '../types';\nimport type { ComponentType } from 'react';\nimport type { Image } from '@0xsequence/design-system';\nimport {\n\tSequenceLogo,\n\tOpenSeaLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tLooksRareLogo,\n\tX2y2Logo,\n\tBlurLogo,\n\tAlienSwapLogo,\n} from '../react/ui/components/marketplace-logos';\n\ninterface Marketplace {\n\tlogo: ComponentType<React.ComponentProps<typeof Image>>;\n\tdisplayName: string;\n}\n\nconst MARKETPLACES: Record<string, Marketplace> = {\n\tsequence: {\n\t\tlogo: SequenceLogo,\n\t\tdisplayName: 'Sequence',\n\t},\n\topensea: {\n\t\tlogo: OpenSeaLogo,\n\t\tdisplayName: 'OpenSea',\n\t},\n\tmagiceden: {\n\t\tlogo: MagicEdenLogo,\n\t\tdisplayName: 'Magic Eden',\n\t},\n\tmintify: {\n\t\tlogo: MintifyLogo,\n\t\tdisplayName: 'Mintify',\n\t},\n\tlooksrare: {\n\t\tlogo: LooksRareLogo,\n\t\tdisplayName: 'Looks Rare',\n\t},\n\tx2y2: {\n\t\tlogo: X2y2Logo,\n\t\tdisplayName: 'X2Y2',\n\t},\n\tblur: {\n\t\tlogo: BlurLogo,\n\t\tdisplayName: 'Blur',\n\t},\n\talienswap: {\n\t\tlogo: AlienSwapLogo,\n\t\tdisplayName: 'AlienSwap',\n\t},\n} as const;\n\nconst KIND_TO_MARKETPLACE: Partial<\n\tRecord<MarketplaceKind, keyof typeof MARKETPLACES>\n> = {\n\t[MarketplaceKind.sequence_marketplace_v1]: 'sequence',\n\t[MarketplaceKind.sequence_marketplace_v2]: 'sequence',\n\t[MarketplaceKind.opensea]: 'opensea',\n\t[MarketplaceKind.mintify]: 'mintify',\n\t[MarketplaceKind.looks_rare]: 'looksrare',\n\t[MarketplaceKind.x2y2]: 'x2y2',\n\t[MarketplaceKind.blur]: 'blur',\n};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add suport for more marketplaces and improve detection of marketplace\nexport function getMarketplaceDetails({\n\toriginName,\n\tkind,\n}: MarketplaceDetailsProp) {\n\tif (\n\t\tkind === MarketplaceKind.sequence_marketplace_v1 ||\n\t\tkind === MarketplaceKind.sequence_marketplace_v2\n\t) {\n\t\treturn MARKETPLACES.sequence;\n\t}\n\n\tlet name = originName.toLowerCase();\n\n\ttry {\n\t\t//Check if the name can be parsed as a url\n\t\tnew URL(name);\n\t\t// if it can we are naively trying to extract the root domain\n\t\tname = getRootDomain(name) || name;\n\t} catch {}\n\n\tname = name.replace(/ /g, '');\n\n\tconst details = MARKETPLACES[name];\n\n\tif (details) {\n\t\treturn details;\n\t}\n\n\tif (KIND_TO_MARKETPLACE[kind]) {\n\t\treturn MARKETPLACES[KIND_TO_MARKETPLACE[kind]];\n\t}\n}\n\nfunction getRootDomain(url: string) {\n\tconst domain = url.replace(/^(https?:\\/\\/)?(www\\.)?/, '');\n\tconst parts = domain.split('.');\n\treturn parts[parts.length - 2] || parts[0];\n}\n"],"mappings":"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","names":[]}
@@ -3,9 +3,11 @@
3
3
  // src/consts.ts
4
4
  var SEQUENCE_MARKET_V1_ADDRESS = "0xB537a160472183f2150d42EB1c3DD6684A55f74c";
5
5
  var SEQUENCE_MARKET_V2_ADDRESS = "0xfdb42A198a932C8D3B506Ffa5e855bC4b348a712";
6
+ var DEFAULT_MARKETPLACE_FEE_PERCENTAGE = 2.5;
6
7
 
7
8
  export {
8
9
  SEQUENCE_MARKET_V1_ADDRESS,
9
- SEQUENCE_MARKET_V2_ADDRESS
10
+ SEQUENCE_MARKET_V2_ADDRESS,
11
+ DEFAULT_MARKETPLACE_FEE_PERCENTAGE
10
12
  };
11
- //# sourceMappingURL=chunk-Y75XGZOB.js.map
13
+ //# sourceMappingURL=chunk-5O3ZAEEX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/consts.ts"],"sourcesContent":["export const SEQUENCE_MARKET_V1_ADDRESS =\n\t'0xB537a160472183f2150d42EB1c3DD6684A55f74c';\n\nexport const SEQUENCE_MARKET_V2_ADDRESS =\n\t'0xfdb42A198a932C8D3B506Ffa5e855bC4b348a712';\n\nexport const DEFAULT_MARKETPLACE_FEE_PERCENTAGE = 2.5;\n"],"mappings":";;;AAAO,IAAM,6BACZ;AAEM,IAAM,6BACZ;AAEM,IAAM,qCAAqC;","names":[]}
@@ -8,10 +8,7 @@ import {
8
8
  import {
9
9
  useSwitchChainModal,
10
10
  useWallet
11
- } from "./chunk-AIGFG26L.js";
12
- import {
13
- getPublicRpcClient
14
- } from "./chunk-7C7ADZ2H.js";
11
+ } from "./chunk-YA3DWLDC.js";
15
12
  import {
16
13
  getProviderEl
17
14
  } from "./chunk-YOKGP2EQ.js";
@@ -53,16 +50,17 @@ import { useAccount } from "wagmi";
53
50
  // src/react/hooks/useCurrencyBalance.tsx
54
51
  import { skipToken, useQuery } from "@tanstack/react-query";
55
52
  import { erc20Abi, formatUnits, zeroAddress } from "viem";
53
+ import { usePublicClient } from "wagmi";
56
54
  function useCurrencyBalance({
57
55
  currencyAddress,
58
56
  chainId,
59
57
  userAddress
60
58
  }) {
59
+ const publicClient = usePublicClient({ chainId });
61
60
  return useQuery({
62
61
  queryKey: ["balance", currencyAddress, chainId, userAddress],
63
- queryFn: !!userAddress && !!chainId && !!currencyAddress ? async () => {
62
+ queryFn: !!userAddress && !!chainId && !!currencyAddress && !!publicClient ? async () => {
64
63
  if (!userAddress) return null;
65
- const publicClient = getPublicRpcClient(chainId);
66
64
  if (currencyAddress === zeroAddress) {
67
65
  const balance2 = await publicClient.getBalance({
68
66
  address: userAddress
@@ -471,4 +469,4 @@ export {
471
469
  openModal,
472
470
  closeModal
473
471
  };
474
- //# sourceMappingURL=chunk-4YR6AIXG.js.map
472
+ //# sourceMappingURL=chunk-G2T7HCWE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx","../src/react/ui/modals/_internal/components/waasFeeOptionsBox/index.tsx","../src/react/hooks/useCurrencyBalance.tsx","../src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx","../src/react/ui/components/_internals/custom-select/CustomSelect.tsx","../src/react/ui/components/_internals/custom-select/styles.css.ts","../src/react/ui/modals/_internal/components/waasFeeOptionsBox/store.ts","../src/react/ui/modals/_internal/components/waasFeeOptionsBox/styles.css.ts","../src/react/ui/modals/_internal/components/actionModal/store.ts"],"sourcesContent":["'use client';\n\nimport type React from 'react';\nimport { useState, type ComponentProps } from 'react';\n\nimport {\n\tBox,\n\tButton,\n\tCloseIcon,\n\tIconButton,\n\tSpinner,\n\tText,\n} from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport {\n\tClose,\n\tContent,\n\tOverlay,\n\tPortal,\n\tRoot,\n\tTitle,\n} from '@radix-ui/react-dialog';\nimport { getProviderEl } from '../../../../../_internal';\nimport {\n\tcloseButton,\n\tcta as ctaStyle,\n\tdialogContent,\n\tdialogOverlay,\n} from './styles.css';\nimport WaasFeeOptionsBox from '../waasFeeOptionsBox';\nimport { useSwitchChainModal } from '../switchChainModal';\nimport { useWallet } from '../../../../../_internal/wallet/useWallet';\n\nexport interface ActionModalProps {\n\tisOpen: boolean;\n\tonClose: () => void;\n\ttitle: string;\n\tchildren: React.ReactNode;\n\tctas: {\n\t\tlabel: string;\n\t\tonClick: (() => Promise<void>) | (() => void);\n\t\tpending?: boolean;\n\t\tdisabled?: boolean;\n\t\thidden?: boolean;\n\t\tvariant?: ComponentProps<typeof Button>['variant'];\n\t\ttestid?: string;\n\t}[];\n\tchainId: number;\n}\n\nexport const ActionModal = observer(\n\t({ isOpen, onClose, title, children, ctas, chainId }: ActionModalProps) => {\n\t\tconst [isSelectingFees, setIsSelectingFees] = useState(false);\n\t\tconst { show: showSwitchChainModal } = useSwitchChainModal();\n\t\tconst { wallet } = useWallet();\n\n\t\tconst checkChain = async ({ onSuccess }: { onSuccess: () => void }) => {\n\t\t\tconst walletChainId = await wallet?.getChainId();\n\t\t\tconst chainMismatch = walletChainId !== Number(chainId);\n\t\t\tif (chainMismatch) {\n\t\t\t\tshowSwitchChainModal({\n\t\t\t\t\tchainIdToSwitchTo: Number(chainId),\n\t\t\t\t\tonSuccess,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tonSuccess();\n\t\t\t}\n\t\t};\n\n\t\tif (wallet?.isWaaS) {\n\t\t\twallet.switchChain(Number(chainId));\n\t\t}\n\n\t\treturn (\n\t\t\t<Root open={isOpen && !!chainId}>\n\t\t\t\t<Portal container={getProviderEl()}>\n\t\t\t\t\t<Overlay className={dialogOverlay} />\n\t\t\t\t\t<Content className={dialogContent.narrow}>\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\tflexGrow={'1'}\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\tflexDirection=\"column\"\n\t\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\t\tposition={'relative'}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Title asChild>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tfontSize=\"medium\"\n\t\t\t\t\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\twidth=\"full\"\n\t\t\t\t\t\t\t\t\tcolor=\"text100\"\n\t\t\t\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Title>\n\n\t\t\t\t\t\t\t{children}\n\n\t\t\t\t\t\t\t<Box width=\"full\" display=\"flex\" flexDirection=\"column\" gap=\"2\">\n\t\t\t\t\t\t\t\t{ctas.map(\n\t\t\t\t\t\t\t\t\t(cta) =>\n\t\t\t\t\t\t\t\t\t\t!cta.hidden && (\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tkey={cta.label}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={ctaStyle}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={async () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tawait checkChain({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcta.onClick();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tvariant={cta.variant || 'primary'}\n\t\t\t\t\t\t\t\t\t\t\t\tpending={cta.pending}\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={cta.disabled || isSelectingFees}\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"full\"\n\t\t\t\t\t\t\t\t\t\t\t\tdata-testid={cta.testid}\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgap=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{cta.pending && <Spinner size=\"sm\" />}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{cta.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t</Box>\n\n\t\t\t\t\t\t<WaasFeeOptionsBox\n\t\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\t\tonFeeOptionsLoaded={() => setIsSelectingFees(true)}\n\t\t\t\t\t\t\tonFeeOptionConfirmed={() => setIsSelectingFees(false)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<Close className={closeButton} asChild onClick={onClose}>\n\t\t\t\t\t\t\t<IconButton size=\"xs\" aria-label=\"Close modal\" icon={CloseIcon} />\n\t\t\t\t\t\t</Close>\n\t\t\t\t\t</Content>\n\t\t\t\t</Portal>\n\t\t\t</Root>\n\t\t);\n\t},\n);\n","import {\n\tBox,\n\tButton,\n\tSkeleton,\n\tText,\n\tWarningIcon,\n} from '@0xsequence/design-system';\nimport { useWaasFeeOptions } from '@0xsequence/kit';\nimport { observer } from '@legendapp/state/react';\nimport { useEffect } from 'react';\nimport { type Hex, zeroAddress } from 'viem';\nimport { useAccount } from 'wagmi';\nimport { useCurrencyBalance } from '../../../../../hooks/useCurrencyBalance';\nimport WaasFeeOptionsSelect, {\n\ttype FeeOption,\n} from '../waasFeeOptionsSelect/WaasFeeOptionsSelect';\nimport { waasFeeOptionsModal$ } from './store';\nimport { feeOptionsWrapper } from './styles.css';\n\ntype WaasFeeOptionsBoxProps = {\n\tonFeeOptionsLoaded: () => void;\n\tonFeeOptionConfirmed: () => void;\n\tchainId: number;\n};\n\nconst WaasFeeOptionsBox = observer(\n\t({\n\t\tonFeeOptionsLoaded,\n\t\tonFeeOptionConfirmed,\n\t\tchainId,\n\t}: WaasFeeOptionsBoxProps) => {\n\t\tconst { address: userAddress } = useAccount();\n\t\tconst selectedFeeOption$ = waasFeeOptionsModal$.selectedFeeOption;\n\t\tconst [pendingFeeOptionConfirmation, confirmPendingFeeOption] =\n\t\t\tuseWaasFeeOptions();\n\t\tconst { data: currencyBalance, isLoading: currencyBalanceLoading } =\n\t\t\tuseCurrencyBalance({\n\t\t\t\tchainId,\n\t\t\t\tcurrencyAddress: (selectedFeeOption$.token.contractAddress.get() ||\n\t\t\t\t\tzeroAddress) as Hex,\n\t\t\t\tuserAddress: userAddress as Hex,\n\t\t\t});\n\n\t\t// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n\t\tuseEffect(() => {\n\t\t\tif (pendingFeeOptionConfirmation) {\n\t\t\t\tonFeeOptionsLoaded();\n\t\t\t}\n\t\t}, [pendingFeeOptionConfirmation]);\n\n\t\tconst selectedFeeOption = selectedFeeOption$.get();\n\t\tconst insufficientBalance = (() => {\n\t\t\tif (!selectedFeeOption?.value || !selectedFeeOption.token.decimals) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!currencyBalance?.value && currencyBalance?.value !== 0n) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst feeValue = BigInt(selectedFeeOption.value);\n\t\t\t\treturn currencyBalance.value === 0n || currencyBalance.value < feeValue;\n\t\t\t} catch {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t})();\n\n\t\tconst handleConfirmFeeOption = () => {\n\t\t\tif (!selectedFeeOption?.token || !pendingFeeOptionConfirmation?.id)\n\t\t\t\treturn;\n\n\t\t\tconfirmPendingFeeOption(\n\t\t\t\tpendingFeeOptionConfirmation?.id,\n\t\t\t\tselectedFeeOption.token.contractAddress || zeroAddress,\n\t\t\t);\n\n\t\t\tonFeeOptionConfirmed();\n\t\t};\n\n\t\tif (!pendingFeeOptionConfirmation) return null;\n\n\t\treturn (\n\t\t\t<Box className={feeOptionsWrapper}>\n\t\t\t\t<Text\n\t\t\t\t\tfontSize=\"medium\"\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\tmarginBottom=\"2\"\n\t\t\t\t>\n\t\t\t\t\tSelect a fee option\n\t\t\t\t</Text>\n\n\t\t\t\t<WaasFeeOptionsSelect\n\t\t\t\t\toptions={(pendingFeeOptionConfirmation?.options as FeeOption[]) || []}\n\t\t\t\t\tselectedFeeOption$={selectedFeeOption$}\n\t\t\t\t/>\n\n\t\t\t\t<Box\n\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t\t\twidth=\"full\"\n\t\t\t\t>\n\t\t\t\t\t{currencyBalanceLoading ? (\n\t\t\t\t\t\t<Skeleton style={{ height: 15 }} borderRadius=\"md\" width=\"1/3\" />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"2\">\n\t\t\t\t\t\t\t{insufficientBalance && (\n\t\t\t\t\t\t\t\t<WarningIcon color=\"negative\" size=\"xs\" />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\t\tfontWeight=\"semibold\"\n\t\t\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t\t\t\tcolor={insufficientBalance ? 'negative' : 'text100'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tYou have {currencyBalance?.formatted || '0'}{' '}\n\t\t\t\t\t\t\t\t{selectedFeeOption?.token.symbol}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t!selectedFeeOption?.token ||\n\t\t\t\t\t\t\tinsufficientBalance ||\n\t\t\t\t\t\t\tcurrencyBalanceLoading\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpending={currencyBalanceLoading}\n\t\t\t\t\t\tonClick={handleConfirmFeeOption}\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"2\">\n\t\t\t\t\t\t\t\tConfirm\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvariant={insufficientBalance ? 'danger' : 'primary'}\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t/>\n\t\t\t\t</Box>\n\t\t\t</Box>\n\t\t);\n\t},\n);\n\nexport default WaasFeeOptionsBox;\n","import { skipToken, useQuery } from '@tanstack/react-query';\nimport { type Address, erc20Abi, formatUnits, zeroAddress } from 'viem';\nimport { usePublicClient } from 'wagmi';\nexport function useCurrencyBalance({\n\tcurrencyAddress,\n\tchainId,\n\tuserAddress,\n}: {\n\tcurrencyAddress: Address | undefined;\n\tchainId: number | undefined;\n\tuserAddress: Address | undefined;\n}) {\n\tconst publicClient = usePublicClient({ chainId });\n\n\treturn useQuery({\n\t\tqueryKey: ['balance', currencyAddress, chainId, userAddress],\n\t\tqueryFn:\n\t\t\t!!userAddress && !!chainId && !!currencyAddress && !!publicClient\n\t\t\t\t? async () => {\n\t\t\t\t\t\tif (!userAddress) return null;\n\n\t\t\t\t\t\tif (currencyAddress === zeroAddress) {\n\t\t\t\t\t\t\tconst balance = await publicClient.getBalance({\n\t\t\t\t\t\t\t\taddress: userAddress,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tvalue: balance,\n\t\t\t\t\t\t\t\tformatted: formatUnits(balance, 18),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst [balance, decimals] = await Promise.all([\n\t\t\t\t\t\t\tpublicClient.readContract({\n\t\t\t\t\t\t\t\taddress: currencyAddress,\n\t\t\t\t\t\t\t\tabi: erc20Abi,\n\t\t\t\t\t\t\t\tfunctionName: 'balanceOf',\n\t\t\t\t\t\t\t\targs: [userAddress],\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tpublicClient.readContract({\n\t\t\t\t\t\t\t\taddress: currencyAddress,\n\t\t\t\t\t\t\t\tabi: erc20Abi,\n\t\t\t\t\t\t\t\tfunctionName: 'decimals',\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: balance,\n\t\t\t\t\t\t\tformatted: formatUnits(balance, decimals),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t: skipToken,\n\t});\n}\n","import { Box, Image, Text } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { useEffect } from 'react';\nimport { formatUnits, zeroAddress } from 'viem';\nimport {\n\tCustomSelect,\n\ttype SelectItem,\n} from '../../../../components/_internals/custom-select/CustomSelect';\n\nexport type FeeOption = {\n\tgasLimit: number;\n\tto: string;\n\ttoken: {\n\t\tchainId: number;\n\t\tcontractAddress: string | null;\n\t\tdecimals: number;\n\t\tlogoURL: string;\n\t\tname: string;\n\t\tsymbol: string;\n\t\ttokenID: string | null;\n\t\ttype: string;\n\t};\n\tvalue: string;\n};\n\nconst WaasFeeOptionsSelect = observer(\n\t({\n\t\toptions,\n\t\tselectedFeeOption$,\n\t}: {\n\t\toptions: FeeOption[];\n\t\tselectedFeeOption$: Observable<FeeOption | undefined>;\n\t}) => {\n\t\toptions = options.map((option) => ({\n\t\t\t...option,\n\t\t\ttoken: {\n\t\t\t\t...option.token,\n\t\t\t\tcontractAddress: option.token.contractAddress || zeroAddress,\n\t\t\t},\n\t\t}));\n\n\t\tconst feeOptions = options.map((option) => {\n\t\t\tconst value = option.token.contractAddress ?? '';\n\n\t\t\treturn FeeOptionSelectItem({ value, option });\n\t\t});\n\n\t\t// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n\t\tuseEffect(() => {\n\t\t\tif (options.length > 0 && !selectedFeeOption$.get())\n\t\t\t\tselectedFeeOption$.set(options[0]);\n\t\t}, [options]);\n\n\t\tif (options.length === 0 || !selectedFeeOption$.get()?.token) return null;\n\n\t\treturn (\n\t\t\t<CustomSelect\n\t\t\t\titems={feeOptions}\n\t\t\t\tonValueChange={(value) => {\n\t\t\t\t\tconst selectedOption = options.find(\n\t\t\t\t\t\t(option) => option.token.contractAddress === value,\n\t\t\t\t\t);\n\n\t\t\t\t\tselectedFeeOption$.set(selectedOption);\n\t\t\t\t}}\n\t\t\t\tdefaultValue={\n\t\t\t\t\tselectedFeeOption$.get()?.token.contractAddress\n\t\t\t\t\t\t? FeeOptionSelectItem({\n\t\t\t\t\t\t\t\tvalue: selectedFeeOption$.get()?.token.contractAddress ?? '',\n\t\t\t\t\t\t\t\toption: selectedFeeOption$.get() ?? options[0],\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nfunction FeeOptionSelectItem({\n\tvalue,\n\toption,\n}: {\n\tvalue: string;\n\toption: FeeOption;\n}) {\n\treturn {\n\t\tvalue,\n\t\tcontent: (\n\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"2\">\n\t\t\t\t<Image\n\t\t\t\t\tsrc={option.token.logoURL}\n\t\t\t\t\talt={option.token.symbol}\n\t\t\t\t\twidth=\"3\"\n\t\t\t\t\theight=\"3\"\n\t\t\t\t/>\n\n\t\t\t\t<Box display=\"flex\" gap=\"1\">\n\t\t\t\t\t<Text color=\"text100\" fontSize=\"small\" fontFamily=\"body\">\n\t\t\t\t\t\tFee\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tcolor=\"text50\"\n\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t\tfontWeight=\"semibold\"\n\t\t\t\t\t>\n\t\t\t\t\t\t(in {option.token.symbol})\n\t\t\t\t\t</Text>\n\n\t\t\t\t\t<Text color=\"text100\" fontSize=\"small\" fontFamily=\"body\">\n\t\t\t\t\t\t:\n\t\t\t\t\t</Text>\n\t\t\t\t</Box>\n\n\t\t\t\t<Text fontSize=\"small\" fontFamily=\"body\">\n\t\t\t\t\t{formatUnits(BigInt(option.value), option.token.decimals || 0)}\n\t\t\t\t</Text>\n\t\t\t</Box>\n\t\t),\n\t} as SelectItem;\n}\n\nexport default WaasFeeOptionsSelect;\n","import { CheckmarkIcon, ChevronDownIcon } from '@0xsequence/design-system';\nimport * as Select from '@radix-ui/react-select';\nimport React, { type ReactNode } from 'react';\nimport { content, item, itemIndicator, trigger } from './styles.css';\n\nexport interface SelectItem {\n\tvalue: string;\n\tcontent: ReactNode;\n\tdisabled?: boolean;\n}\n\ninterface CustomSelectProps {\n\titems: SelectItem[];\n\tonValueChange?: (value: string) => void;\n\tdefaultValue?: SelectItem;\n}\n\nconst CustomSelectItem = React.forwardRef<\n\tHTMLDivElement,\n\tSelect.SelectItemProps & { children: ReactNode }\n>(({ children, ...props }, forwardedRef) => {\n\treturn (\n\t\t<Select.Item className={item} {...props} ref={forwardedRef}>\n\t\t\t<Select.ItemText>{children}</Select.ItemText>\n\t\t\t<Select.ItemIndicator className={itemIndicator}>\n\t\t\t\t<CheckmarkIcon size=\"xs\" />\n\t\t\t</Select.ItemIndicator>\n\t\t</Select.Item>\n\t);\n});\n\nexport const CustomSelect: React.FC<CustomSelectProps> = ({\n\titems,\n\tonValueChange,\n\tdefaultValue,\n}) => {\n\treturn (\n\t\t<Select.Root\n\t\t\tonValueChange={onValueChange}\n\t\t\tdefaultValue={defaultValue?.value}\n\t\t>\n\t\t\t<Select.Trigger className={trigger}>\n\t\t\t\t<Select.Value />\n\t\t\t\t<Select.Icon>\n\t\t\t\t\t<ChevronDownIcon size=\"xs\" />\n\t\t\t\t</Select.Icon>\n\t\t\t</Select.Trigger>\n\n\t\t\t<Select.Portal>\n\t\t\t\t<Select.Content className={content}>\n\t\t\t\t\t<Select.Viewport>\n\t\t\t\t\t\t{items.map((item) => (\n\t\t\t\t\t\t\t<CustomSelectItem\n\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\tvalue={item.value}\n\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.content}\n\t\t\t\t\t\t\t</CustomSelectItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Select.Viewport>\n\t\t\t\t</Select.Content>\n\t\t\t</Select.Portal>\n\t\t</Select.Root>\n\t);\n};\n","import 'src/react/ui/components/_internals/custom-select/styles.css.ts.vanilla.css?source=LnN0eWxlc19pdGVtX18xZGR0dWprMjpob3ZlciB7CiAgYmFja2dyb3VuZDogdmFyKC0tc2VxLWNvbG9ycy1iYWNrZ3JvdW5kLW11dGVkKTsKfQ==';\nexport var content = 'fyvr11eg fyvr11es fyvr11f4 fyvr11fg fyvr11hc fyvr11i0 fyvr11g0 fyvr11go fyvr11q0 fyvr11qg fyvr12g3 fyvr12ar fyvr1203 fyvr125f fyvr12hr fyvr12cf fyvr121r fyvr1273 fyvr11vx fyvr11r0 fyvr11rt';\nexport var item = 'styles_item__1ddtujk2 fyvr11h0 fyvr11ho fyvr11fo fyvr11gc fyvr1v4 fyvr1x8 fyvr1zs fyvr111g fyvr11ik fyvr12k9 fyvr11l8 fyvr11ow fyvr14g fyvr11m4 fyvr11rc fyvr12nf';\nexport var itemIndicator = 'fyvr11lw fyvr1qk fyvr11lk fyvr11ow fyvr11no';\nexport var trigger = 'fyvr11hk fyvr11i8 fyvr11g8 fyvr11gw fyvr1zg fyvr111k fyvr11lk fyvr11ow fyvr11no fyvr11ik fyvr14g fyvr11cg fyvr11ur fyvr12k9 fyvr12nf fyvr12i9 fyvr11a4';","import { observable } from '@legendapp/state';\nimport type { FeeOption } from '../waasFeeOptionsSelect/WaasFeeOptionsSelect';\n\ntype WaasFeeOptionsModalState = {\n\tselectedFeeOption: FeeOption | undefined;\n};\n\nconst initialState = {\n\tselectedFeeOption: undefined,\n} as WaasFeeOptionsModalState;\n\nexport const waasFeeOptionsModal$ = observable(initialState);\n","import 'src/react/ui/modals/_internal/components/waasFeeOptionsBox/styles.css.ts.vanilla.css?source=LnN0eWxlc19mZWVPcHRpb25zV3JhcHBlcl9fMTI0aWswdzAgewogIGJvdHRvbTogLTE0MHB4Owp9Ci5zdHlsZXNfZGlhbG9nQ29udGVudF9fMTI0aWswdzIgewogIHRvcDogNTAlOwogIGxlZnQ6IDUwJTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICBwYWRkaW5nOiAyNHB4Owp9Ci5zdHlsZXNfY3RhX18xMjRpazB3MyB7CiAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50Owp9Ci5zdHlsZXNfY3RhX18xMjRpazB3MyA+IGRpdiB7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKfQ==';\nexport var cta = 'styles_cta__124ik0w3';\nexport var dialogContent = 'styles_dialogContent__124ik0w2 fyvr11hg fyvr11i4 fyvr11g4 fyvr11gs fyvr11l8 fyvr11ul fyvr11m0 fyvr11rv';\nexport var dialogOverlay = 'fyvr1m0 fyvr1o8 fyvr1qg fyvr1so fyvr11vl fyvr11m0 fyvr11rv';\nexport var feeOptionsWrapper = 'styles_feeOptionsWrapper__124ik0w0 fyvr11hg fyvr11i4 fyvr11g4 fyvr11gs fyvr1vc fyvr1xg fyvr1zk fyvr111o fyvr11lw fyvr11w9 fyvr11r0 fyvr12g fyvr1qg fyvr11l8 fyvr11mc fyvr11cg';","import { type Observable, observable } from '@legendapp/state';\nimport type { ChainId } from '../../../../../_internal';\nimport type { Address } from 'viem';\n\nexport interface ActionModalState {\n\tisOpen: boolean;\n\tchainId: ChainId | null;\n\tcollectionAddress: Address | null;\n}\n\nexport function createActionModalStore() {\n\treturn observable<ActionModalState>({\n\t\tisOpen: false,\n\t\tchainId: null,\n\t\tcollectionAddress: null,\n\t});\n}\n\nexport function openModal(store: Observable<ActionModalState>) {\n\tstore.isOpen.set(true);\n}\n\nexport function closeModal(store: Observable<ActionModalState>) {\n\tstore.isOpen.set(false);\n}\n"],"mappings":"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","names":["Box","Button","Text","observer","Content","Portal","Root","Box","Text","observer","useEffect","zeroAddress","balance","formatUnits","zeroAddress","item","jsx","jsxs","zeroAddress","formatUnits","jsx","jsxs","observer","zeroAddress","useEffect","Box","Text","jsx","jsxs","observer","Root","Portal","Content","Box","Text","cta","Button","observable"]}
@@ -0,0 +1,2 @@
1
+ "use client"
2
+ //# sourceMappingURL=chunk-GFADBQPX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}