@0xsequence/marketplace-sdk 0.0.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/README.md +8 -0
- package/dist/chunk-3TYUQEFM.js +115 -0
- package/dist/chunk-3TYUQEFM.js.map +1 -0
- package/dist/chunk-4ESPWOBV.js +13 -0
- package/dist/chunk-4ESPWOBV.js.map +1 -0
- package/dist/chunk-4PFMUVE4.js +78 -0
- package/dist/chunk-4PFMUVE4.js.map +1 -0
- package/dist/chunk-5WRI5ZAA.js +31 -0
- package/dist/chunk-5WRI5ZAA.js.map +1 -0
- package/dist/chunk-6S4FYXP6.js +43 -0
- package/dist/chunk-6S4FYXP6.js.map +1 -0
- package/dist/chunk-7OO74L2K.js +41 -0
- package/dist/chunk-7OO74L2K.js.map +1 -0
- package/dist/chunk-BBB3XUB4.js +213 -0
- package/dist/chunk-BBB3XUB4.js.map +1 -0
- package/dist/chunk-BCNFYVAL.js +1 -0
- package/dist/chunk-BCNFYVAL.js.map +1 -0
- package/dist/chunk-D7QQP6MS.js +2 -0
- package/dist/chunk-D7QQP6MS.js.map +1 -0
- package/dist/chunk-DBFOPEV6.js +23 -0
- package/dist/chunk-DBFOPEV6.js.map +1 -0
- package/dist/chunk-EDTC7UES.js +176 -0
- package/dist/chunk-EDTC7UES.js.map +1 -0
- package/dist/chunk-G3D572BT.js +249 -0
- package/dist/chunk-G3D572BT.js.map +1 -0
- package/dist/chunk-HGBEC3WX.js +1285 -0
- package/dist/chunk-HGBEC3WX.js.map +1 -0
- package/dist/chunk-MJ4YU7RW.js +2 -0
- package/dist/chunk-MJ4YU7RW.js.map +1 -0
- package/dist/chunk-NJ2GXOPW.js +2 -0
- package/dist/chunk-NJ2GXOPW.js.map +1 -0
- package/dist/chunk-O5JXKTWP.js +1029 -0
- package/dist/chunk-O5JXKTWP.js.map +1 -0
- package/dist/chunk-O642NH7U.js +15 -0
- package/dist/chunk-O642NH7U.js.map +1 -0
- package/dist/chunk-QOJXWHRZ.js +71 -0
- package/dist/chunk-QOJXWHRZ.js.map +1 -0
- package/dist/chunk-QVFMD6S2.js +21 -0
- package/dist/chunk-QVFMD6S2.js.map +1 -0
- package/dist/chunk-RNUHUVLC.js +214 -0
- package/dist/chunk-RNUHUVLC.js.map +1 -0
- package/dist/chunk-SM7V6ZWI.js +2740 -0
- package/dist/chunk-SM7V6ZWI.js.map +1 -0
- package/dist/chunk-STO74F2I.js +14 -0
- package/dist/chunk-STO74F2I.js.map +1 -0
- package/dist/chunk-TZGLKJRF.js +198 -0
- package/dist/chunk-TZGLKJRF.js.map +1 -0
- package/dist/chunk-UYRQ5MJQ.js +1027 -0
- package/dist/chunk-UYRQ5MJQ.js.map +1 -0
- package/dist/chunk-VPGWEMWL.js +162 -0
- package/dist/chunk-VPGWEMWL.js.map +1 -0
- package/dist/chunk-ZE2LNX65.js +394 -0
- package/dist/chunk-ZE2LNX65.js.map +1 -0
- package/dist/create-config-Dz0gCiQ0.d.ts +8 -0
- package/dist/get-query-client-D46hbjk6.d.ts +5 -0
- package/dist/index.css +232 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +76 -0
- package/dist/index.js.map +1 -0
- package/dist/marketplace-config-DZbtyrma.d.ts +57 -0
- package/dist/marketplace.gen-Ceofb9Cs.d.ts +904 -0
- package/dist/react/_internal/api/index.d.ts +51 -0
- package/dist/react/_internal/api/index.js +134 -0
- package/dist/react/_internal/api/index.js.map +1 -0
- package/dist/react/_internal/index.d.ts +22 -0
- package/dist/react/_internal/index.js +150 -0
- package/dist/react/_internal/index.js.map +1 -0
- package/dist/react/_internal/wagmi/index.d.ts +12 -0
- package/dist/react/_internal/wagmi/index.js +12 -0
- package/dist/react/_internal/wagmi/index.js.map +1 -0
- package/dist/react/hooks/index.d.ts +381 -0
- package/dist/react/hooks/index.js +82 -0
- package/dist/react/hooks/index.js.map +1 -0
- package/dist/react/index.css +233 -0
- package/dist/react/index.css.map +1 -0
- package/dist/react/index.d.ts +27 -0
- package/dist/react/index.js +113 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/ssr/index.d.ts +94 -0
- package/dist/react/ssr/index.js +351 -0
- package/dist/react/ssr/index.js.map +1 -0
- package/dist/react/ui/icons/index.css +25 -0
- package/dist/react/ui/icons/index.css.map +1 -0
- package/dist/react/ui/icons/index.d.ts +2 -0
- package/dist/react/ui/icons/index.js +12 -0
- package/dist/react/ui/icons/index.js.map +1 -0
- package/dist/react/ui/index.css +233 -0
- package/dist/react/ui/index.css.map +1 -0
- package/dist/react/ui/index.d.ts +112 -0
- package/dist/react/ui/index.js +34 -0
- package/dist/react/ui/index.js.map +1 -0
- package/dist/react/ui/modals/_internal/components/actionModal/index.css +44 -0
- package/dist/react/ui/modals/_internal/components/actionModal/index.css.map +1 -0
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +31 -0
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +39 -0
- package/dist/react/ui/modals/_internal/components/actionModal/index.js.map +1 -0
- package/dist/react/ui/styles/index.css +36 -0
- package/dist/react/ui/styles/index.css.map +1 -0
- package/dist/react/ui/styles/index.d.ts +5 -0
- package/dist/react/ui/styles/index.js +13 -0
- package/dist/react/ui/styles/index.js.map +1 -0
- package/dist/sdk-config-xWkdBdrL.d.ts +24 -0
- package/dist/services-BIwQ1C1c.d.ts +20 -0
- package/dist/styles/index.css +233 -0
- package/dist/styles/index.css.map +1 -0
- package/dist/styles/index.d.ts +58 -0
- package/dist/styles/index.js +5019 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/styles.css-BVaTR5nO.d.ts +3 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.js +39 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types-BrAQ8-w4.d.ts +12 -0
- package/dist/utils/abi/abi/standard/index.d.ts +25 -0
- package/dist/utils/abi/abi/standard/index.js +8 -0
- package/dist/utils/abi/abi/standard/index.js.map +1 -0
- package/dist/utils/abi/abi/token/index.d.ts +1125 -0
- package/dist/utils/abi/abi/token/index.js +13 -0
- package/dist/utils/abi/abi/token/index.js.map +1 -0
- package/dist/utils/abi/clients/index.d.ts +27 -0
- package/dist/utils/abi/clients/index.js +13 -0
- package/dist/utils/abi/clients/index.js.map +1 -0
- package/dist/utils/index.d.ts +23 -0
- package/dist/utils/index.js +37 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +74 -0
- package/src/consts.ts +2 -0
- package/src/index.ts +3 -0
- package/src/react/_internal/api/get-query-client.ts +32 -0
- package/src/react/_internal/api/index.ts +5 -0
- package/src/react/_internal/api/marketplace-api.ts +31 -0
- package/src/react/_internal/api/marketplace.gen.ts +1911 -0
- package/src/react/_internal/api/query-keys.ts +61 -0
- package/src/react/_internal/api/services.ts +101 -0
- package/src/react/_internal/consts.ts +1 -0
- package/src/react/_internal/get-provider.ts +6 -0
- package/src/react/_internal/index.ts +5 -0
- package/src/react/_internal/types.ts +13 -0
- package/src/react/_internal/wagmi/create-config.ts +62 -0
- package/src/react/_internal/wagmi/embedded.ts +87 -0
- package/src/react/_internal/wagmi/index.ts +3 -0
- package/src/react/_internal/wagmi/universal.ts +82 -0
- package/src/react/hooks/index.ts +17 -0
- package/src/react/hooks/options/marketplaceConfigOptions.ts +62 -0
- package/src/react/hooks/useBalanceOfCollectible.tsx +51 -0
- package/src/react/hooks/useCollectible.tsx +47 -0
- package/src/react/hooks/useCollection.tsx +42 -0
- package/src/react/hooks/useCollectionCounts.tsx +61 -0
- package/src/react/hooks/useConfig.tsx +15 -0
- package/src/react/hooks/useCurrencies.tsx +76 -0
- package/src/react/hooks/useFilters.tsx +39 -0
- package/src/react/hooks/useFloorOrder.tsx +28 -0
- package/src/react/hooks/useGenerateListingTransaction.tsx +63 -0
- package/src/react/hooks/useGenerateOfferTransaction.tsx +60 -0
- package/src/react/hooks/useGenerateSellTransaction.tsx +43 -0
- package/src/react/hooks/useHighestOffer.tsx +46 -0
- package/src/react/hooks/useListBalances.tsx +56 -0
- package/src/react/hooks/useListCollectibles.tsx +54 -0
- package/src/react/hooks/useListOffersForCollectible.tsx +53 -0
- package/src/react/hooks/useLowestListing.tsx +47 -0
- package/src/react/hooks/useMarketplaceConfig.tsx +10 -0
- package/src/react/hooks/useRoyaltyPercentage.tsx +45 -0
- package/src/react/hooks/useTransferTokens.tsx +81 -0
- package/src/react/index.ts +5 -0
- package/src/react/provider.tsx +24 -0
- package/src/react/ssr/create-ssr-client.ts +31 -0
- package/src/react/ssr/index.ts +1 -0
- package/src/react/ui/icons/ArrowUp.tsx +29 -0
- package/src/react/ui/icons/CalendarIcon.tsx +29 -0
- package/src/react/ui/icons/InfoIcon.tsx +36 -0
- package/src/react/ui/icons/InventoryIcon.tsx +41 -0
- package/src/react/ui/icons/MinusIcon.tsx +31 -0
- package/src/react/ui/icons/PlusIcon.tsx +29 -0
- package/src/react/ui/icons/PositiveCircleIcon.tsx +35 -0
- package/src/react/ui/icons/index.ts +7 -0
- package/src/react/ui/icons/styles.css.ts +35 -0
- package/src/react/ui/index.ts +6 -0
- package/src/react/ui/modals/Account/index.tsx +29 -0
- package/src/react/ui/modals/CreateListingModal/_store.ts +326 -0
- package/src/react/ui/modals/CreateListingModal/_utils/getCreateListingTransactionTitleMessage.ts +30 -0
- package/src/react/ui/modals/CreateListingModal/index.tsx +146 -0
- package/src/react/ui/modals/MakeOfferModal/_store.ts +296 -0
- package/src/react/ui/modals/MakeOfferModal/_utils/getMakeOfferTransactionTitleMessage.ts +28 -0
- package/src/react/ui/modals/MakeOfferModal/index.tsx +157 -0
- package/src/react/ui/modals/SellModal/_store.ts +274 -0
- package/src/react/ui/modals/SellModal/_utils/getSellTransactionTitleMessage.ts +28 -0
- package/src/react/ui/modals/SellModal/index.tsx +126 -0
- package/src/react/ui/modals/SellModal/utils.ts +38 -0
- package/src/react/ui/modals/SuccessfulPurchaseModal/_store.ts +58 -0
- package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +186 -0
- package/src/react/ui/modals/SuccessfulPurchaseModal/styles.css.ts +52 -0
- package/src/react/ui/modals/TransferModal/_store.ts +58 -0
- package/src/react/ui/modals/TransferModal/_utils/getTransferTransactionTitleMessage.ts +28 -0
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +102 -0
- package/src/react/ui/modals/TransferModal/_views/followWalletInstructions/index.tsx +130 -0
- package/src/react/ui/modals/TransferModal/index.tsx +92 -0
- package/src/react/ui/modals/TransferModal/messages.ts +14 -0
- package/src/react/ui/modals/TransferModal/styles.css.ts +20 -0
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +94 -0
- package/src/react/ui/modals/_internal/components/actionModal/index.ts +3 -0
- package/src/react/ui/modals/_internal/components/actionModal/store.ts +19 -0
- package/src/react/ui/modals/_internal/components/actionModal/styles.css.ts +15 -0
- package/src/react/ui/modals/_internal/components/alertMessage/index.tsx +21 -0
- package/src/react/ui/modals/_internal/components/alertMessage/styles.css.ts +22 -0
- package/src/react/ui/modals/_internal/components/calendar/index.tsx +59 -0
- package/src/react/ui/modals/_internal/components/calendarPopover/index.tsx +41 -0
- package/src/react/ui/modals/_internal/components/calendarPopover/styles.css.ts +16 -0
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +76 -0
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/styles.css.ts +33 -0
- package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +127 -0
- package/src/react/ui/modals/_internal/components/expirationDateSelect/styles.css.ts +25 -0
- package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +54 -0
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +72 -0
- package/src/react/ui/modals/_internal/components/priceInput/styles.css.ts +23 -0
- package/src/react/ui/modals/_internal/components/priceInput/types.ts +4 -0
- package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +168 -0
- package/src/react/ui/modals/_internal/components/quantityInput/styles.css.ts +30 -0
- package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +132 -0
- package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +41 -0
- package/src/react/ui/modals/_internal/components/switchChainModal/styles.css.ts +37 -0
- package/src/react/ui/modals/_internal/components/timeAgo/index.tsx +32 -0
- package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +58 -0
- package/src/react/ui/modals/_internal/components/tokenPreview/styles.css.ts +11 -0
- package/src/react/ui/modals/_internal/components/transaction-footer/index.tsx +48 -0
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +80 -0
- package/src/react/ui/modals/_internal/components/transactionHeader/index.tsx +30 -0
- package/src/react/ui/modals/_internal/components/transactionPreview/consts.ts +27 -0
- package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +111 -0
- package/src/react/ui/modals/_internal/components/transactionPreview/useTransactionPreviewTitle.tsx +24 -0
- package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +123 -0
- package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +87 -0
- package/src/react/ui/modals/_internal/components/transactionStatusModal/styles.css.ts +15 -0
- package/src/react/ui/modals/_internal/stores/accountModal.ts +3 -0
- package/src/react/ui/modals/modal-provider.tsx +27 -0
- package/src/react/ui/styles/index.ts +1 -0
- package/src/react/ui/styles/modal.css.ts +73 -0
- package/src/styles/index.ts +18 -0
- package/src/types/api-types.ts +48 -0
- package/src/types/index.ts +4 -0
- package/src/types/marketplace-config.ts +63 -0
- package/src/types/messages.ts +43 -0
- package/src/types/sdk-config.ts +23 -0
- package/src/types/types.ts +6 -0
- package/src/utils/abi/abi/standard/EIP2981.ts +15 -0
- package/src/utils/abi/abi/standard/index.ts +1 -0
- package/src/utils/abi/abi/token/ERC1155.ts +324 -0
- package/src/utils/abi/abi/token/ERC20.ts +185 -0
- package/src/utils/abi/abi/token/ERC721.ts +506 -0
- package/src/utils/abi/abi/token/index.ts +3 -0
- package/src/utils/abi/clients/ERC1155.ts +82 -0
- package/src/utils/abi/clients/ERC20.ts +101 -0
- package/src/utils/abi/clients/ERC721.ts +97 -0
- package/src/utils/abi/clients/index.ts +3 -0
- package/src/utils/address.ts +26 -0
- package/src/utils/get-public-rpc-client.ts +32 -0
- package/src/utils/index.ts +6 -0
- package/src/utils/network.ts +5 -0
- package/src/utils/price.ts +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/ui/modals/modal-provider.tsx","../src/react/ui/modals/_internal/components/switchChainModal/index.tsx","../src/react/ui/modals/_internal/components/switchChainModal/store.ts","../src/react/ui/modals/_internal/components/alertMessage/index.tsx","../src/utils/network.ts","../src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx","../src/react/ui/modals/_internal/components/transactionStatusModal/store.ts","../src/react/ui/modals/_internal/components/transactionStatusModal/styles.css.ts","../src/react/ui/modals/_internal/components/transactionPreview/index.tsx","../src/react/ui/modals/_internal/components/timeAgo/index.tsx","../src/react/ui/modals/_internal/components/transactionPreview/useTransactionPreviewTitle.tsx","../src/react/ui/modals/_internal/components/transactionPreview/consts.ts","../src/react/ui/modals/_internal/components/transaction-footer/index.tsx","../src/react/ui/modals/Account/index.tsx","../src/react/ui/modals/CreateListingModal/index.tsx","../src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx","../src/react/ui/modals/_internal/components/calendarPopover/index.tsx","../src/react/ui/modals/_internal/components/calendar/index.tsx","../src/react/ui/modals/_internal/components/floorPriceText/index.tsx","../src/react/ui/modals/_internal/components/priceInput/index.tsx","../src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx","../src/react/ui/modals/_internal/components/quantityInput/index.tsx","../src/react/ui/modals/_internal/components/tokenPreview/index.tsx","../src/react/ui/modals/_internal/components/transactionDetails/index.tsx","../src/react/ui/modals/CreateListingModal/_store.ts","../src/react/ui/modals/CreateListingModal/_utils/getCreateListingTransactionTitleMessage.ts","../src/react/ui/modals/MakeOfferModal/index.tsx","../src/react/ui/modals/MakeOfferModal/_store.ts","../src/react/ui/modals/MakeOfferModal/_utils/getMakeOfferTransactionTitleMessage.ts","../src/react/ui/modals/SellModal/_store.ts","../src/react/hooks/useGenerateSellTransaction.tsx","../src/react/ui/modals/SellModal/_utils/getSellTransactionTitleMessage.ts","../src/react/ui/modals/SellModal/index.tsx","../src/react/ui/modals/_internal/components/transactionHeader/index.tsx","../src/react/ui/modals/SuccessfulPurchaseModal/_store.ts","../src/react/ui/modals/SuccessfulPurchaseModal/index.tsx","../src/react/ui/modals/TransferModal/_store.ts","../src/react/ui/modals/TransferModal/index.tsx","../src/react/ui/modals/TransferModal/messages.ts","../src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx","../src/react/ui/modals/TransferModal/_views/followWalletInstructions/index.tsx","../src/react/ui/modals/TransferModal/_utils/getTransferTransactionTitleMessage.ts"],"sourcesContent":["import { observer } from '@legendapp/state/react';\nimport SwitchChainModal from './_internal/components/switchChainModal';\nimport TransactionStatusModal from './_internal/components/transactionStatusModal';\nimport { AccountModal } from './Account';\nimport { CreateListingModal } from './CreateListingModal';\nimport { MakeOfferModal } from './MakeOfferModal';\nimport { SellModal } from './SellModal';\nimport SuccessfulPurchaseModal from './SuccessfulPurchaseModal';\nimport { TransferModal } from './TransferModal';\nimport { _accountModalOpen$ } from './_internal/stores/accountModal';\n\nexport const ModalProvider = observer(() => {\n\treturn (\n\t\t<>\n\t\t\t<AccountModal />\n\t\t\t<CreateListingModal />\n\t\t\t<MakeOfferModal />\n\t\t\t<TransferModal />\n\t\t\t<SellModal />\n\t\t\t<SuccessfulPurchaseModal />\n\n\t\t\t{/* Helper modals */}\n\t\t\t<SwitchChainModal />\n\t\t\t<TransactionStatusModal />\n\t\t</>\n\t);\n});\n","import { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport { switchChainModal$ } from './store';\nimport {\n\tcloseButton,\n\tdialogOverlay,\n\tswitchChainCta,\n\tswitchChainModalContent,\n} from './styles.css';\nimport {\n\tButton,\n\tCloseIcon,\n\tIconButton,\n\tSpinner,\n\tText,\n} from '@0xsequence/design-system';\nimport AlertMessage from '../alertMessage';\nimport { observer } from '@legendapp/state/react';\nimport { useSwitchChain } from 'wagmi';\nimport { BaseError } from 'viem';\nimport { getPresentableChainName } from '../../../../../../utils/network';\n\nimport { UserRejectedRequestError } from 'viem';\nimport { SwitchChainNotSupportedError } from 'wagmi';\nimport type { SwitchChainMessageCallbacks } from '../../../../../../types/messages';\n\nexport type ShowSwitchChainModalArgs = {\n\tchainIdToSwitchTo: number;\n\tonSwitchChain: () => void;\n\tmessages?: SwitchChainMessageCallbacks;\n};\n\nexport const useSwitchChainModal = () => {\n\treturn {\n\t\tshow: (args: ShowSwitchChainModalArgs) => switchChainModal$.open(args),\n\t\tclose: () => switchChainModal$.close(),\n\t\tisSwitching$: switchChainModal$.state.isSwitching,\n\t};\n};\n\nconst SwitchChainModal = observer(() => {\n\tconst chainIdToSwitchTo = switchChainModal$.state.chainIdToSwitchTo.get();\n\tconst isSwitching$ = switchChainModal$.state.isSwitching;\n\tconst chainName = getPresentableChainName(chainIdToSwitchTo!);\n\tconst { switchChainAsync } = useSwitchChain();\n\tconst {\n\t\tonSwitchingNotSupported,\n\t\tonUserRejectedRequest,\n\t\tonUnknownError,\n\t\tonSuccess,\n\t}: Partial<SwitchChainMessageCallbacks> =\n\t\tswitchChainModal$.state.messages.get() || {};\n\n\tasync function handleSwitchChain() {\n\t\tisSwitching$.set(true);\n\n\t\ttry {\n\t\t\tawait switchChainAsync({ chainId: chainIdToSwitchTo! });\n\n\t\t\tswitchChainModal$.state.onSwitchChain();\n\t\t\tonSuccess && onSuccess();\n\n\t\t\tswitchChainModal$.close();\n\t\t} catch (error) {\n\t\t\tif (error instanceof BaseError) {\n\t\t\t\tconst name = error.name as BaseError['name'];\n\n\t\t\t\tswitch (name) {\n\t\t\t\t\tcase SwitchChainNotSupportedError.name:\n\t\t\t\t\t\tonSwitchingNotSupported && onSwitchingNotSupported();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase UserRejectedRequestError.name:\n\t\t\t\t\t\tonUserRejectedRequest && onUserRejectedRequest();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tonUnknownError && onUnknownError(error);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tonUnknownError && onUnknownError(error);\n\t\t\t}\n\t\t} finally {\n\t\t\tisSwitching$.set(false);\n\t\t}\n\t}\n\n\treturn (\n\t\t<Root open={switchChainModal$.isOpen.get()}>\n\t\t\t<Portal>\n\t\t\t\t<Overlay className={dialogOverlay} />\n\n\t\t\t\t<Content className={switchChainModalContent}>\n\t\t\t\t\t<Text fontSize=\"large\" fontWeight=\"bold\" color=\"text100\">\n\t\t\t\t\t\tWrong network\n\t\t\t\t\t</Text>\n\n\t\t\t\t\t<AlertMessage\n\t\t\t\t\t\ttype=\"warning\"\n\t\t\t\t\t\tmessage={`You need to switch to ${chainName} network before completing the transaction`}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\tname=\"switch-chain\"\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tlabel={isSwitching$.get() ? <Spinner /> : 'Switch Network'}\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tpending={isSwitching$.get()}\n\t\t\t\t\t\tshape=\"square\"\n\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\tisSwitching$.get()\n\t\t\t\t\t\t\t\t? switchChainCta.pending\n\t\t\t\t\t\t\t\t: switchChainCta.default\n\t\t\t\t\t\t}\n\t\t\t\t\t\tjustifySelf=\"flex-end\"\n\t\t\t\t\t\tonClick={handleSwitchChain}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Close\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tswitchChainModal$.delete();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={closeButton}\n\t\t\t\t\t\tasChild\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconButton size=\"xs\" aria-label=\"Close modal\" icon={CloseIcon} />\n\t\t\t\t\t</Close>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n});\n\nexport default SwitchChainModal;\n","import { observable } from '@legendapp/state';\nimport type { ShowSwitchChainModalArgs } from '.';\nimport type { SwitchChainMessageCallbacks } from '../../../../../../types/messages';\n\nexport interface SwitchChainModalState {\n\tisOpen: boolean;\n\topen: (args: ShowSwitchChainModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\tchainIdToSwitchTo?: number;\n\t\tonSwitchChain?: () => void;\n\t\tisSwitching: boolean;\n\t\tmessages?: SwitchChainMessageCallbacks;\n\t};\n}\n\nexport const initialState: SwitchChainModalState = {\n\tisOpen: false,\n\topen: ({ chainIdToSwitchTo, onSwitchChain, messages }) => {\n\t\tswitchChainModal$.state.set({\n\t\t\t...switchChainModal$.state.get(),\n\t\t\tchainIdToSwitchTo,\n\t\t\tonSwitchChain,\n\t\t\tmessages,\n\t\t});\n\t\tswitchChainModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tswitchChainModal$.isOpen.set(false);\n\t\tswitchChainModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t},\n\tstate: {\n\t\tchainIdToSwitchTo: undefined,\n\t\tonSwitchChain: () => {},\n\t\tisSwitching: false,\n\t},\n};\n\nexport const switchChainModal$ = observable(initialState);\n","import SvgInfoIcon from '../../../../icons/InfoIcon';\nimport { alertMessageBox, alertMessageBoxVariants } from './styles.css';\nimport { Box, Text, WarningIcon } from '@0xsequence/design-system';\n\ntype AlertMessageProps = {\n\tmessage: string;\n\ttype: 'warning' | 'info';\n};\n\nexport default function AlertMessage({ message, type }: AlertMessageProps) {\n\treturn (\n\t\t<Box className={`${alertMessageBox} ${alertMessageBoxVariants[type]}`}>\n\t\t\t<Text color=\"white\" fontSize=\"normal\" fontWeight=\"medium\">\n\t\t\t\t{message}\n\t\t\t</Text>\n\n\t\t\t{type === 'warning' && <WarningIcon size=\"sm\" color=\"white\" />}\n\t\t\t{type === 'info' && <SvgInfoIcon size=\"sm\" color=\"white\" />}\n\t\t</Box>\n\t);\n}\n","import { type ChainId, networks } from '@0xsequence/network';\n\nexport const getPresentableChainName = (chainId: ChainId) => {\n\treturn networks[chainId]?.name;\n};\n","import { observer } from '@legendapp/state/react';\nimport {\n\ttype ConfirmationStatus,\n\ttype StatusOrderType,\n\ttransactionStatusModal$,\n} from './store';\nimport { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport {\n\tcloseButton,\n\tdialogOverlay,\n\ttransactionStatusModalContent,\n} from './styles.css';\nimport {\n\tCloseIcon,\n\tIconButton,\n\tSkeleton,\n\tText,\n} from '@0xsequence/design-system';\nimport { useCollectible } from '@react-hooks/useCollectible';\nimport type { Hex } from 'viem';\nimport TransactionPreview from '../transactionPreview';\nimport type { Price, TokenMetadata } from '@types';\nimport TransactionFooter from '../transaction-footer';\nimport { useTransactionReceipt } from 'wagmi';\n\nexport type ShowTransactionStatusModalArgs = {\n\thash: Hex;\n\tprice?: Price;\n\tcollectionAddress: string;\n\tchainId: string;\n\ttokenId: string;\n\tgetTitle?: (props: ConfirmationStatus) => string;\n\tgetMessage?: (props: ConfirmationStatus) => string;\n\ttype: StatusOrderType;\n};\n\nexport const useTransactionStatusModal = () => {\n\treturn {\n\t\tshow: (args: ShowTransactionStatusModalArgs) =>\n\t\t\ttransactionStatusModal$.open(args),\n\t\tclose: () => transactionStatusModal$.close(),\n\t};\n};\n\nconst TransactionStatusModal = observer(() => {\n\tconst {\n\t\thash,\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\ttokenId,\n\t\tgetTitle,\n\t\tgetMessage,\n\t} = transactionStatusModal$.state.get();\n\tconst { data: collectible } = useCollectible({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId: tokenId,\n\t});\n\tconst {\n\t\tisLoading: isConfirming,\n\t\tisSuccess: isConfirmed,\n\t\tisError: isFailed,\n\t} = useTransactionReceipt({ hash });\n\tconst title = getTitle && getTitle({ isConfirmed, isConfirming, isFailed });\n\tconst message =\n\t\tgetMessage && getMessage({ isConfirmed, isConfirming, isFailed });\n\n\treturn (\n\t\t<Root open={transactionStatusModal$.isOpen.get()}>\n\t\t\t<Portal>\n\t\t\t\t<Overlay className={dialogOverlay} />\n\n\t\t\t\t<Content className={transactionStatusModalContent}>\n\t\t\t\t\t{title ? (\n\t\t\t\t\t\t<Text fontSize=\"large\" fontWeight=\"bold\" color=\"text100\">\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Skeleton width=\"16\" height=\"6\" />\n\t\t\t\t\t)}\n\n\t\t\t\t\t{message ? (\n\t\t\t\t\t\t<Text fontSize=\"small\" color=\"text80\">\n\t\t\t\t\t\t\t{message}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Skeleton width=\"20\" height=\"4\" />\n\t\t\t\t\t)}\n\n\t\t\t\t\t<TransactionPreview\n\t\t\t\t\t\tprice={price}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\tcollectible={collectible as TokenMetadata}\n\t\t\t\t\t\tisConfirming={isConfirming}\n\t\t\t\t\t\tisConfirmed={isConfirmed}\n\t\t\t\t\t\tisFailed={isFailed}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<TransactionFooter\n\t\t\t\t\t\ttransactionHash={hash!}\n\t\t\t\t\t\tisConfirming={isConfirming}\n\t\t\t\t\t\tisConfirmed={isConfirmed}\n\t\t\t\t\t\tisFailed={isFailed}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Close\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\ttransactionStatusModal$.close();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={closeButton}\n\t\t\t\t\t\tasChild\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconButton size=\"xs\" aria-label=\"Close modal\" icon={CloseIcon} />\n\t\t\t\t\t</Close>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n});\n\nexport default TransactionStatusModal;\n","import { observable } from '@legendapp/state';\nimport type { ShowTransactionStatusModalArgs } from '.';\nimport type { TransactionStatus } from '@0xsequence/indexer';\nimport type { Hex } from 'viem';\nimport type { StepType } from '@internal';\nimport type { Price } from '@types';\n\nexport type ConfirmationStatus = {\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n};\n\nexport type TransactionStatusExtended = TransactionStatus | 'PENDING';\n\nexport type StatusOrderType =\n\t| Pick<\n\t\t\ttypeof StepType,\n\t\t\t'sell' | 'createListing' | 'createOffer' | 'buy'\n\t >[keyof Pick<\n\t\t\ttypeof StepType,\n\t\t\t'sell' | 'createListing' | 'createOffer' | 'buy'\n\t >]\n\t| 'transfer';\n\nexport interface TransactionStatusModalState {\n\tisOpen: boolean;\n\topen: (args: ShowTransactionStatusModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\thash: Hex | undefined;\n\t\tstatus: TransactionStatusExtended;\n\t\ttype: StatusOrderType | undefined;\n\t\tprice: Price | undefined;\n\t\tcollectionAddress: string;\n\t\tchainId: string;\n\t\ttokenId: string;\n\t\tgetTitle?: (params: ConfirmationStatus) => string;\n\t\tgetMessage?: (params: ConfirmationStatus) => string;\n\t};\n}\n\nexport const initialState: TransactionStatusModalState = {\n\tisOpen: false,\n\topen: ({\n\t\thash,\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\ttokenId,\n\t\tgetTitle,\n\t\tgetMessage,\n\t\ttype,\n\t}) => {\n\t\ttransactionStatusModal$.state.set({\n\t\t\t...transactionStatusModal$.state.get(),\n\t\t\thash,\n\t\t\tprice,\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t\ttokenId,\n\t\t\tgetTitle,\n\t\t\tgetMessage,\n\t\t\ttype,\n\t\t});\n\t\ttransactionStatusModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\ttransactionStatusModal$.isOpen.set(false);\n\t\ttransactionStatusModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t},\n\tstate: {\n\t\thash: undefined,\n\t\tstatus: 'PENDING',\n\t\tprice: undefined,\n\t\tcollectionAddress: '',\n\t\tchainId: '',\n\t\ttokenId: '',\n\t\tgetTitle: undefined,\n\t\tgetMessage: undefined,\n\t\ttype: undefined,\n\t},\n};\n\nexport const transactionStatusModal$ = observable(initialState);\n","import 'src/react/ui/styles/modal.css.ts.vanilla.css?source=Lm1vZGFsX2RpYWxvZ0NvbnRlbnRCYXNlX18xeXBsNm50MSB7CiAgdG9wOiA1MCU7CiAgbGVmdDogNTAlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogIHBhZGRpbmc6IDI0cHg7Cn0KLm1vZGFsX2RpYWxvZ0NvbnRlbnRfbmFycm93X18xeXBsNm50MiB7CiAgd2lkdGg6IDM2MHB4Owp9Ci5tb2RhbF9kaWFsb2dDb250ZW50X3dpZGVfXzF5cGw2bnQzIHsKICB3aWR0aDogNTQwcHg7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzYwcHgpIHsKICAubW9kYWxfZGlhbG9nQ29udGVudF9uYXJyb3dfXzF5cGw2bnQyIHsKICAgIHdpZHRoOiAxMDAlOwogICAgYm90dG9tOiAwOwogICAgdHJhbnNmb3JtOiB1bnNldDsKICAgIHRvcDogdW5zZXQ7CiAgICBsZWZ0OiB1bnNldDsKICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgfQp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU0MHB4KSB7CiAgLm1vZGFsX2RpYWxvZ0NvbnRlbnRfd2lkZV9fMXlwbDZudDMgewogICAgd2lkdGg6IDEwMCU7CiAgICBib3R0b206IDA7CiAgICB0cmFuc2Zvcm06IHVuc2V0OwogICAgdG9wOiB1bnNldDsKICAgIGxlZnQ6IHVuc2V0OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICB9Cn0=';\nexport var closeButton = 'fyvr11lw fyvr1tc fyvr1mo';\nexport var dialogOverlay = 'fyvr1m0 fyvr1o8 fyvr1qg fyvr1so fyvr11xl fyvr11m0 fyvr11rs';\nexport var transactionStatusModalContent = 'modal_dialogContent_wide__1ypl6nt3 modal_dialogContentBase__1ypl6nt1 fyvr11hg fyvr11i4 fyvr11g4 fyvr11gs fyvr11l8 fyvr11wl fyvr11m0 fyvr11rs fyvr1vo fyvr1xs fyvr1zw fyvr1120 fyvr11lc fyvr11mc fyvr11cw';","import { Box, Image, NetworkImage, Text } from '@0xsequence/design-system';\nimport type { TokenMetadata } from '@internal';\nimport { useCollection } from '@react-hooks/useCollection';\nimport TimeAgo from '../timeAgo';\nimport { transactionStatusModal$ } from '../transactionStatusModal/store';\nimport { observer } from '@legendapp/state/react';\nimport { useTransactionPreviewTitle } from './useTransactionPreviewTitle';\nimport type { Price } from '@types';\nimport { formatUnits } from 'viem';\n\ntype TransactionPreviewProps = {\n\tprice?: Price;\n\tcollectionAddress: string;\n\tchainId: string;\n\tcollectible: TokenMetadata;\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n};\n\nconst TransactionPreview = observer(\n\t({\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectible,\n\t\tisConfirming,\n\t\tisConfirmed,\n\t\tisFailed,\n\t}: TransactionPreviewProps) => {\n\t\tconst { type } = transactionStatusModal$.state.get();\n\t\tconst title = useTransactionPreviewTitle(\n\t\t\t{ isConfirmed, isConfirming, isFailed },\n\t\t\ttype,\n\t\t);\n\t\tconst { data: collection } = useCollection({\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t});\n\n\t\tconst collectibleImage = collectible.image;\n\t\tconst collectibleName = collectible.name;\n\t\tconst collectionName = collection?.name;\n\t\tconst priceFormatted = price\n\t\t\t? formatUnits(BigInt(price!.amountRaw), price!.currency.decimals)\n\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t<Box padding=\"3\" background=\"backgroundSecondary\" borderRadius=\"md\">\n\t\t\t\t<Box display=\"flex\" alignItems=\"center\">\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\tfontWeight=\"medium\"\n\t\t\t\t\t\tmarginRight=\"1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\n\t\t\t\t\t<NetworkImage chainId={Number(chainId)} size=\"xs\" />\n\n\t\t\t\t\t{isConfirming && <TimeAgo date={new Date()} />}\n\t\t\t\t</Box>\n\n\t\t\t\t<Box display=\"flex\" alignItems=\"center\" marginTop=\"2\">\n\t\t\t\t\t<Image\n\t\t\t\t\t\tsrc={collectibleImage}\n\t\t\t\t\t\talt={collectibleName}\n\t\t\t\t\t\twidth=\"9\"\n\t\t\t\t\t\theight=\"9\"\n\t\t\t\t\t\tborderRadius=\"xs\"\n\t\t\t\t\t\tmarginRight=\"3\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Box\n\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\tflexDirection=\"column\"\n\t\t\t\t\t\talignItems=\"flex-start\"\n\t\t\t\t\t\tgap=\"0.5\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text color=\"text80\" fontSize=\"small\" fontWeight=\"medium\">\n\t\t\t\t\t\t\t{collectibleName}\n\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t<Text color=\"text100\" fontSize=\"small\">\n\t\t\t\t\t\t\t{collectionName}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Box>\n\n\t\t\t\t\t{price && (\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tflexGrow=\"1\"\n\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\t\t\tgap=\"1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<NetworkImage chainId={Number(chainId)} size=\"xs\" />\n\n\t\t\t\t\t\t\t<Text color=\"text80\" fontSize=\"small\" fontWeight=\"medium\">\n\t\t\t\t\t\t\t\t{priceFormatted} {price!.currency.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\t\t\t\t</Box>\n\t\t\t</Box>\n\t\t);\n\t},\n);\n\nexport default TransactionPreview;\n","import { Box, Text } from '@0xsequence/design-system';\nimport { formatDistanceToNow } from 'date-fns';\nimport { useState, useEffect } from 'react';\n\ntype TimeAgoProps = {\n\tdate: Date;\n};\n\nexport default function TimeAgo({ date }: TimeAgoProps) {\n\tconst [timeAgo, setTimeAgo] = useState<string>('');\n\n\tuseEffect(() => {\n\t\tconst interval = setInterval(() => {\n\t\t\tsetTimeAgo(formatDistanceToNow(date));\n\t\t}, 1000);\n\n\t\treturn () => clearInterval(interval);\n\t}, [date]);\n\n\treturn (\n\t\t<Box\n\t\t\tflexGrow=\"1\"\n\t\t\tdisplay=\"flex\"\n\t\t\talignItems=\"center\"\n\t\t\tjustifyContent=\"flex-end\"\n\t\t>\n\t\t\t<Text color=\"text50\" fontSize=\"small\">\n\t\t\t\t{timeAgo}\n\t\t\t</Text>\n\t\t</Box>\n\t);\n}\n","import { useMemo } from 'react';\nimport type {\n\tConfirmationStatus,\n\tStatusOrderType,\n} from '../transactionStatusModal/store';\nimport { TRANSACTION_TITLES } from './consts';\n\nexport function useTransactionPreviewTitle(\n\tstatus: ConfirmationStatus,\n\ttype?: StatusOrderType | undefined,\n): string {\n\treturn useMemo(() => {\n\t\tif (!type) return '';\n\n\t\tconst { isConfirming, isConfirmed, isFailed } = status;\n\t\tconst titles = TRANSACTION_TITLES[type];\n\n\t\tif (isConfirming) return titles.confirming;\n\t\tif (isConfirmed) return titles.confirmed;\n\t\tif (isFailed) return titles.failed;\n\n\t\treturn '';\n\t}, [status, type]);\n}\n","export const TRANSACTION_TITLES = {\n\tsell: {\n\t\tconfirming: 'Selling',\n\t\tconfirmed: 'Sold',\n\t\tfailed: 'Sale failed',\n\t},\n\tcreateListing: {\n\t\tconfirming: 'Creating listing',\n\t\tconfirmed: 'Listed',\n\t\tfailed: 'Listing failed',\n\t},\n\tcreateOffer: {\n\t\tconfirming: 'Creating offer',\n\t\tconfirmed: 'Offer created',\n\t\tfailed: 'Offer failed',\n\t},\n\tbuy: {\n\t\tconfirming: 'Buying',\n\t\tconfirmed: 'Bought',\n\t\tfailed: 'Purchase failed',\n\t},\n\ttransfer: {\n\t\tconfirming: 'Transferring',\n\t\tconfirmed: 'Transferred',\n\t\tfailed: 'Transfer failed',\n\t},\n} as const;\n","import { truncateMiddle } from '../../../../../../utils';\nimport SvgPositiveCircleIcon from '../../../../icons/PositiveCircleIcon';\nimport { Box, Spinner, Text } from '@0xsequence/design-system';\nimport type { Hex } from 'viem';\n\ntype TransactionFooterProps = {\n\ttransactionHash: Hex;\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n};\n\nexport default function TransactionFooter({\n\ttransactionHash,\n\tisConfirming,\n\tisConfirmed,\n\tisFailed,\n}: TransactionFooterProps) {\n\tconst icon =\n\t\t(isConfirming && <Spinner size=\"md\" />) ||\n\t\t(isConfirmed && <SvgPositiveCircleIcon size=\"md\" />);\n\n\tconst title =\n\t\t(isConfirming && 'Processing transaction') ||\n\t\t(isConfirmed && 'Transaction complete') ||\n\t\t(isFailed && 'Transaction failed');\n\treturn (\n\t\t<Box display=\"flex\" alignItems=\"center\">\n\t\t\t{icon}\n\n\t\t\t<Text color=\"text50\" fontSize=\"normal\" fontWeight=\"medium\" marginLeft=\"2\">\n\t\t\t\t{title}\n\t\t\t</Text>\n\n\t\t\t<Text\n\t\t\t\t// TODO: Replace \"polygonLight\" with the actual color from design system\n\t\t\t\tcolor=\"polygonLight\"\n\t\t\t\tflexGrow=\"1\"\n\t\t\t\ttextAlign=\"right\"\n\t\t\t\tfontSize=\"normal\"\n\t\t\t\tfontWeight=\"medium\"\n\t\t\t\tmarginLeft=\"2\"\n\t\t\t>\n\t\t\t\t{truncateMiddle(transactionHash, 4, 4)}\n\t\t\t</Text>\n\t\t</Box>\n\t);\n}\n","import { Box, Button, Modal, Text } from '@0xsequence/design-system';\nimport { observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { useAccount } from 'wagmi';\n\nconst accountModalOpen$ = observable(false);\n\nexport const useAccountModal = () => {\n\treturn {\n\t\tshow: () => accountModalOpen$.set(true),\n\t\thide: () => accountModalOpen$.set(false),\n\t\ttoggle: () => accountModalOpen$.toggle(),\n\t};\n};\n\nexport const AccountModal = observer(function AccountModal() {\n\tconst { address } = useAccount();\n\treturn (\n\t\taccountModalOpen$.get() && (\n\t\t\t<Modal>\n\t\t\t\t<Box>\n\t\t\t\t\t<Text>Wallet address</Text>\n\t\t\t\t\t<Text>{address}</Text>\n\t\t\t\t</Box>\n\t\t\t\t<Button label=\"Sign out\" />\n\t\t\t</Modal>\n\t\t)\n\t);\n});\n","import { Box } from '@0xsequence/design-system';\nimport { ContractType } from '@internal';\nimport { Show, observer } from '@legendapp/state/react';\nimport {\n\tActionModal,\n\ttype ActionModalProps,\n} from '../_internal/components/actionModal/ActionModal';\nimport ExpirationDateSelect from '../_internal/components/expirationDateSelect';\nimport FloorPriceText from '../_internal/components/floorPriceText';\nimport PriceInput from '../_internal/components/priceInput';\nimport QuantityInput from '../_internal/components/quantityInput';\nimport TokenPreview from '../_internal/components/tokenPreview';\nimport TransactionDetails from '../_internal/components/transactionDetails';\nimport { createListingModal$, useHydrate } from './_store';\nimport { useAccount } from 'wagmi';\nimport { useSwitchChainModal } from '../_internal/components/switchChainModal';\nimport type { Messages } from '../../../../types/messages';\n\nexport type ShowCreateListingModalArgs = {\n\tcollectionAddress: string;\n\tchainId: string;\n\tcollectibleId: string;\n\tmessages?: Messages;\n};\n\nexport const useCreateListingModal = () => {\n\tconst { chainId: accountChainId } = useAccount();\n\tconst { show: showSwitchNetworkModal } = useSwitchChainModal();\n\n\tconst openModal = (args: ShowCreateListingModalArgs) => {\n\t\tcreateListingModal$.open(args);\n\t};\n\n\tconst handleShowModal = (args: ShowCreateListingModalArgs) => {\n\t\tconst isSameChain = accountChainId === Number(args.chainId);\n\n\t\tif (!isSameChain) {\n\t\t\tshowSwitchNetworkModal({\n\t\t\t\tchainIdToSwitchTo: Number(args.chainId),\n\t\t\t\tonSwitchChain: () => openModal(args),\n\t\t\t\tmessages: args.messages?.switchChain,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\topenModal(args);\n\t};\n\n\treturn {\n\t\tshow: handleShowModal,\n\t\tclose: () => createListingModal$.close(),\n\t};\n};\n\nexport const CreateListingModal = () => {\n\treturn (\n\t\t<Show if={createListingModal$.isOpen}>\n\t\t\t<Modal />\n\t\t</Show>\n\t);\n};\n\nconst Modal = () => {\n\tuseHydrate();\n\treturn <ModalContent />;\n};\n\nconst ModalContent = observer(() => {\n\tconst {\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t\tcollectionName,\n\t\tcollectionType,\n\t\tlistingPrice,\n\t} = createListingModal$.state.get();\n\n\tconst { steps } = createListingModal$.get();\n\n\tconst ctas = [\n\t\t{\n\t\t\tlabel: 'Approve TOKEN',\n\t\t\tonClick: steps.tokenApproval.execute,\n\t\t\thidden: !steps.tokenApproval.isNeeded(),\n\t\t\tpending: steps.tokenApproval.pending,\n\t\t\tvariant: 'glass' as const,\n\t\t},\n\t\t{\n\t\t\tlabel: 'List item for sale',\n\t\t\tonClick: steps.createListing.execute,\n\t\t\tpending: steps.createListing.pending,\n\t\t\tdisabled:\n\t\t\t\tsteps.tokenApproval.isNeeded() || listingPrice.amountRaw === '0',\n\t\t},\n\t] satisfies ActionModalProps['ctas'];\n\n\treturn (\n\t\t<ActionModal\n\t\t\tstore={createListingModal$}\n\t\t\tonClose={() => createListingModal$.close()}\n\t\t\ttitle=\"List item for sale\"\n\t\t\tctas={ctas}\n\t\t>\n\t\t\t<TokenPreview\n\t\t\t\tcollectionName={collectionName}\n\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\tchainId={chainId}\n\t\t\t/>\n\n\t\t\t<Box display=\"flex\" flexDirection=\"column\" width=\"full\" gap=\"1\">\n\t\t\t\t<PriceInput\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t$listingPrice={createListingModal$.state.listingPrice}\n\t\t\t\t/>\n\t\t\t\t{!!listingPrice && (\n\t\t\t\t\t<FloorPriceText\n\t\t\t\t\t\ttokenId={collectibleId}\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\tprice={listingPrice}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Box>\n\n\t\t\t{collectionType === ContractType.ERC1155 && (\n\t\t\t\t<QuantityInput\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t\t$quantity={createListingModal$.state.quantity}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<ExpirationDateSelect $date={createListingModal$.state.expiry} />\n\n\t\t\t<TransactionDetails\n\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\tchainId={chainId}\n\t\t\t\tprice={createListingModal$.state.listingPrice.get()}\n\t\t\t/>\n\t\t</ActionModal>\n\t);\n});\n","import { useState } from 'react';\n\nimport { Box, Select, Text } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { addDays, isSameDay } from 'date-fns';\nimport CalendarPopover from '../calendarPopover';\nimport { rangeSelect } from './styles.css';\n\nexport const PRESET_RANGES = {\n\tTODAY: {\n\t\tlabel: 'Today',\n\t\tvalue: 'today',\n\t\toffset: 0,\n\t},\n\tTOMORROW: {\n\t\tlabel: 'Tomorrow',\n\t\tvalue: 'tomorrow',\n\t\toffset: 1,\n\t},\n\tIN_3_DAYS: {\n\t\tlabel: 'In 3 days',\n\t\tvalue: '3_days',\n\t\toffset: 3,\n\t},\n\tONE_WEEK: {\n\t\tlabel: '1 week',\n\t\tvalue: '1_week',\n\t\toffset: 7,\n\t},\n\tONE_MONTH: {\n\t\tlabel: '1 month',\n\t\tvalue: '1_month',\n\t\toffset: 30,\n\t},\n} as const;\n\nexport type rangeType =\n\t(typeof PRESET_RANGES)[keyof typeof PRESET_RANGES]['value'];\n\ntype ExpirationDateSelectProps = {\n\tclassName?: string;\n\t$date: Observable<Date>;\n};\n\nconst ExpirationDateSelect = observer(function ExpirationDateSelect({\n\tclassName,\n\t$date,\n}: ExpirationDateSelectProps) {\n\tconst [_, setRange] = useState<rangeType>('1_week');\n\tfunction handleSelectPresetRange(range: rangeType) {\n\t\tsetRange(range);\n\n\t\tconst presetRange = Object.values(PRESET_RANGES).find(\n\t\t\t(preset) => preset.value === range,\n\t\t);\n\n\t\tif (!presetRange) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newDate = addDays(new Date(), presetRange.offset);\n\n\t\t$date.set(newDate);\n\t}\n\n\tfunction handleDateValueChange(date: Date) {\n\t\tconst presetRange = Object.values(PRESET_RANGES).find((preset) =>\n\t\t\tisSameDay(new Date(date), addDays(new Date(), preset.offset)),\n\t\t);\n\n\t\tif (presetRange) {\n\t\t\tsetRange(presetRange.value);\n\t\t}\n\n\t\t$date.set(date);\n\t}\n\n\treturn (\n\t\t<Box width=\"full\" position=\"relative\">\n\t\t\t<Text\n\t\t\t\tfontSize={'small'}\n\t\t\t\tfontWeight={'medium'}\n\t\t\t\ttextAlign={'left'}\n\t\t\t\twidth={'full'}\n\t\t\t\tcolor={'text100'}\n\t\t\t>\n\t\t\t\tSet expiry\n\t\t\t</Text>\n\n\t\t\t<Box\n\t\t\t\tclassName={className}\n\t\t\t\twidth={'full'}\n\t\t\t\tdisplay={'flex'}\n\t\t\t\talignItems={'center'}\n\t\t\t\tgap={'2'}\n\t\t\t\tmarginTop={'0.5'}\n\t\t\t>\n\t\t\t\t<Box className={rangeSelect} position={'absolute'} right={'2'}>\n\t\t\t\t\t<Select\n\t\t\t\t\t\tname=\"expirationDate\"\n\t\t\t\t\t\toptions={Object.values(PRESET_RANGES)}\n\t\t\t\t\t\tdefaultValue={undefined}\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tObject.values(PRESET_RANGES).find((preset) =>\n\t\t\t\t\t\t\t\tisSameDay(\n\t\t\t\t\t\t\t\t\tnew Date($date.get()),\n\t\t\t\t\t\t\t\t\taddDays(new Date(), preset.offset),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)?.value\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\thandleSelectPresetRange(value as rangeType)\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Box>\n\n\t\t\t\t<CalendarPopover\n\t\t\t\t\tselectedDate={$date.get()}\n\t\t\t\t\tsetSelectedDate={(date) => handleDateValueChange(date)}\n\t\t\t\t/>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n});\n\nexport default ExpirationDateSelect;\n","'use client';\n\nimport { Button } from '@0xsequence/design-system';\nimport { Content, Portal, Root, Trigger } from '@radix-ui/react-popover';\nimport { format } from 'date-fns';\nimport SvgCalendarIcon from '../../../../icons/CalendarIcon';\nimport Calendar from '../calendar';\nimport { dateSelectButton, dateSelectPopoverContent } from './styles.css';\n\ntype CalendarPopoverProps = {\n\tselectedDate: Date;\n\tsetSelectedDate: (date: Date) => void;\n};\n\nexport default function CalendarPopover({\n\tselectedDate,\n\tsetSelectedDate,\n}: CalendarPopoverProps) {\n\treturn (\n\t\t<Root>\n\t\t\t<Trigger asChild>\n\t\t\t\t<Button\n\t\t\t\t\tleftIcon={SvgCalendarIcon}\n\t\t\t\t\tclassName={dateSelectButton}\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tlabel={format(selectedDate, 'dd/MM/yyyy HH:mm')}\n\t\t\t\t\tshape=\"square\"\n\t\t\t\t/>\n\t\t\t</Trigger>\n\t\t\t<Portal>\n\t\t\t\t<Content className={dateSelectPopoverContent} sideOffset={5}>\n\t\t\t\t\t<Calendar\n\t\t\t\t\t\tselectedDate={selectedDate}\n\t\t\t\t\t\tsetSelectedDate={setSelectedDate}\n\t\t\t\t\t\tmode=\"single\"\n\t\t\t\t\t/>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n}\n","'use client';\n\nimport { DayPicker, type PropsSingle } from 'react-day-picker';\nimport 'react-day-picker/style.css';\n\nexport type CalendarProps = React.PropsWithChildren<PropsSingle> & {\n\tselectedDate?: Date;\n\tsetSelectedDate?: (date: Date) => void;\n};\n\nfunction Calendar({ ...props }: CalendarProps) {\n\tconst { selectedDate, setSelectedDate } = props;\n\n\treturn (\n\t\t<DayPicker\n\t\t\tdisabled={{\n\t\t\t\tbefore: new Date(),\n\t\t\t}}\n\t\t\tselected={selectedDate as unknown as Date}\n\t\t\tonDayClick={setSelectedDate}\n\t\t\tdefaultMonth={selectedDate}\n\t\t\tmodifiersStyles={{\n\t\t\t\tselected: {\n\t\t\t\t\tcolor: 'hsl(var(--foreground))',\n\t\t\t\t\tbackground: 'hsl(var(--primary))',\n\t\t\t\t\tborder: 'none',\n\t\t\t\t},\n\t\t\t}}\n\t\t\tstyles={{\n\t\t\t\troot: {\n\t\t\t\t\twidth: 'max-content',\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\tcolor: 'hsl(var(--foreground))',\n\t\t\t\t\tbackground: 'hsl(var(--background))',\n\t\t\t\t\tborder: `1px solid hsl(var(--border))`,\n\t\t\t\t\tborderRadius: 'var(--radius)',\n\t\t\t\t\tpadding: '0.5rem',\n\t\t\t\t\tposition: 'relative',\n\t\t\t\t},\n\t\t\t\tday: {\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\twidth: '1rem',\n\t\t\t\t\theight: '1rem',\n\t\t\t\t},\n\t\t\t\tday_button: {\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\twidth: '1.8rem',\n\t\t\t\t\theight: '1.5rem',\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tborder: 'none',\n\t\t\t\t},\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\nCalendar.displayName = 'Calendar';\n\nexport default Calendar;\n","import { Text } from '@0xsequence/design-system';\nimport type { Price } from '@types';\nimport { calculatePriceDifferencePercentage } from '../../../../../../utils';\nimport { useLowestListing } from '@react-hooks/useLowestListing';\n\nexport default function FloorPriceText({\n\tchainId,\n\tcollectionAddress,\n\ttokenId,\n\tprice,\n}: {\n\tchainId: string;\n\tcollectionAddress: string;\n\ttokenId: string;\n\tprice: Price;\n}) {\n\tconst { data: listing, isLoading: listingLoading } = useLowestListing({\n\t\ttokenId: tokenId,\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tfilters: {\n\t\t\tcurrencies: [price.currency.contractAddress],\n\t\t},\n\t});\n\n\tconst floorPriceRaw = listing?.order?.priceAmount;\n\n\tif (!floorPriceRaw || listingLoading || price.amountRaw === '0') {\n\t\treturn null;\n\t}\n\n\tconst floorPriceDifference = calculatePriceDifferencePercentage({\n\t\tinputPriceRaw: BigInt(price.amountRaw),\n\t\tbasePriceRaw: BigInt(floorPriceRaw),\n\t\tdecimals: price.currency.decimals,\n\t});\n\n\tconst floorPriceDifferenceText =\n\t\tfloorPriceRaw === price.amountRaw\n\t\t\t? 'Same as floor price'\n\t\t\t: `${floorPriceDifference}% ${floorPriceRaw > price.amountRaw ? 'below' : 'above'} floor price`;\n\n\treturn (\n\t\t<Text\n\t\t\tfontSize={'small'}\n\t\t\tfontWeight={'medium'}\n\t\t\ttextAlign={'left'}\n\t\t\twidth={'full'}\n\t\t\tcolor={'text50'}\n\t\t>\n\t\t\t{floorPriceDifferenceText}\n\t\t</Text>\n\t);\n}\n","import { Box, NumericInput, TokenImage } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport type { Price } from '@types';\nimport { useState } from 'react';\nimport CurrencyOptionsSelect from '../currencyOptionsSelect';\nimport { priceInputWrapper } from './styles.css';\nimport { parseUnits } from 'viem';\n\ntype PriceInputProps = {\n\tcollectionAddress: string;\n\tchainId: string;\n\t$listingPrice: Observable<Price | undefined>;\n\terror?: string;\n};\n\nconst PriceInput = observer(function PriceInput({\n\tchainId,\n\tcollectionAddress,\n\t$listingPrice,\n\terror,\n}: PriceInputProps) {\n\tconst [inputPrice, setInputPrice] = useState('');\n\tconst changeListingPrice = (value: string) => {\n\t\tsetInputPrice(value);\n\t\tconst parsedAmount = parseUnits(\n\t\t\tvalue,\n\t\t\tNumber($listingPrice.currency.decimals.get()),\n\t\t);\n\t\t$listingPrice.amountRaw.set(parsedAmount.toString());\n\t};\n\n\treturn (\n\t\t<Box className={priceInputWrapper} position=\"relative\">\n\t\t\t<Box\n\t\t\t\tposition=\"absolute\"\n\t\t\t\tbottom=\"3\"\n\t\t\t\tleft=\"2\"\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\talignItems=\"center\"\n\t\t\t>\n\t\t\t\t<TokenImage src={$listingPrice.currency.imageUrl.get()} size=\"xs\" />\n\t\t\t</Box>\n\n\t\t\t<NumericInput\n\t\t\t\tname=\"listingPrice\"\n\t\t\t\tdecimals={$listingPrice?.currency.decimals.get()}\n\t\t\t\tlabel=\"Enter price\"\n\t\t\t\tlabelLocation=\"top\"\n\t\t\t\tplaceholder=\"0.00\"\n\t\t\t\tcontrols={\n\t\t\t\t\t<CurrencyOptionsSelect\n\t\t\t\t\t\t$selectedCurrency={$listingPrice?.currency}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tnumeric={true}\n\t\t\t\tvalue={inputPrice}\n\t\t\t\tonChange={(event) => changeListingPrice(event.target.value)}\n\t\t\t\twidth=\"full\"\n\t\t\t/>\n\t\t\t{error && (\n\t\t\t\t<Box color=\"negative\" fontSize=\"small\">\n\t\t\t\t\t{error}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t</Box>\n\t);\n});\n\nexport default PriceInput;\n","import { Box, Select, Skeleton } from '@0xsequence/design-system';\nimport type { ChainId } from '@internal';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { useCurrencies } from '@react-hooks/useCurrencies';\nimport type { Currency } from '@types';\nimport { useEffect, useState } from 'react';\nimport { currencySelect } from './styles.css';\n\n// TODO: this should be exported from design system\ntype SelectOption = {\n\tlabel: string;\n\tvalue: string;\n};\n\ntype CurrencyOptionsSelectProps = {\n\tcollectionAddress: string;\n\tchainId: ChainId;\n\t$selectedCurrency: Observable<Currency | null | undefined>;\n};\n\nconst CurrencyOptionsSelect = observer(function CurrencyOptionsSelect({\n\tchainId,\n\tcollectionAddress,\n\t$selectedCurrency,\n}: CurrencyOptionsSelectProps) {\n\tconst [value, setValue] = useState<string | null>(null);\n\tconst { data: currencies, isLoading: currenciesLoading } = useCurrencies({\n\t\tcollectionAddress,\n\t\tchainId,\n\t});\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tcurrencies &&\n\t\t\tcurrencies.length > 0 &&\n\t\t\t!$selectedCurrency.contractAddress.get()\n\t\t) {\n\t\t\t$selectedCurrency.set(currencies[0]);\n\t\t}\n\t}, [currencies]);\n\n\tif (!currencies || currenciesLoading) {\n\t\treturn <Skeleton borderRadius=\"lg\" width=\"20\" height=\"7\" marginRight=\"3\" />;\n\t}\n\n\tconst options = currencies.map(\n\t\t(currency) =>\n\t\t\t({\n\t\t\t\tlabel: currency.name,\n\t\t\t\tvalue: currency.contractAddress,\n\t\t\t}) satisfies SelectOption,\n\t);\n\n\tconst onChange = (value: string) => {\n\t\t// biome-ignore lint/style/noNonNullAssertion: This can not be undefined\n\t\tconst c = currencies.find(\n\t\t\t(currency) => currency.contractAddress === value,\n\t\t)!;\n\t\tsetValue(value);\n\t\t$selectedCurrency.set(c);\n\t};\n\n\treturn (\n\t\t<Box className={currencySelect}>\n\t\t\t<Select\n\t\t\t\tname=\"currencies\"\n\t\t\t\tvalue={value || options?.[0]?.value}\n\t\t\t\tonValueChange={(value) => onChange(value)}\n\t\t\t\toptions={options}\n\t\t\t/>\n\t\t</Box>\n\t);\n});\n\nexport default CurrencyOptionsSelect;\n","import { Box, IconButton, NumericInput } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { useCollectible } from '@react-hooks/useCollectible';\nimport SvgMinusIcon from '../../../../icons/MinusIcon';\nimport SvgPlusIcon from '../../../../icons/PlusIcon';\nimport { quantityInputWrapper } from './styles.css';\n\ntype QuantityInputProps = {\n\t$quantity: Observable<string>;\n\tchainId: string;\n\tcollectionAddress: string;\n\tcollectibleId: string;\n};\n\nexport default function QuantityInput({\n\t$quantity,\n\tchainId,\n\tcollectionAddress,\n\tcollectibleId,\n}: QuantityInputProps) {\n\tconst { data: collectable, isLoading: collectableLoading } = useCollectible({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tconst quantityDecimals =\n\t\tcollectable && ((collectable.decimals || 0) as number | undefined);\n\n\tfunction handleChangeQuantity(value: string) {\n\t\tif (!isValidInput(value)) return;\n\n\t\tconst formattedValue = formatQuantity(value);\n\t\tif (formattedValue !== null) {\n\t\t\t$quantity.set(formattedValue);\n\t\t}\n\t}\n\n\tfunction handleIncrement() {\n\t\tif (!isValidInput()) return;\n\n\t\tconst newQuantity = incrementQuantity();\n\t\tif (newQuantity !== null) {\n\t\t\t$quantity.set(newQuantity);\n\t\t}\n\t}\n\n\tfunction handleDecrement() {\n\t\tif (!isValidInput()) return;\n\n\t\tconst newQuantity = decrementQuantity();\n\t\tif (newQuantity !== null) {\n\t\t\t$quantity.set(newQuantity);\n\t\t}\n\t}\n\n\tfunction isValidInput(value?: string): boolean {\n\t\treturn (\n\t\t\tcollectable !== undefined &&\n\t\t\tquantityDecimals !== undefined &&\n\t\t\t(value === undefined || value !== '')\n\t\t);\n\t}\n\n\tfunction formatQuantity(value: string): string | null {\n\t\tif (quantityDecimals === 0 && value.includes('.')) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (quantityDecimals && quantityDecimals > 0) {\n\t\t\tconst decimalIndex = value.indexOf('.');\n\t\t\tif (\n\t\t\t\tdecimalIndex !== -1 &&\n\t\t\t\tvalue.length - decimalIndex > quantityDecimals + 1\n\t\t\t) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tconst quantity = $quantity.get();\n\n\tfunction incrementQuantity(): string | null {\n\t\tif (!isValidInput()) return null;\n\n\t\tif (!quantity) {\n\t\t\treturn quantityDecimals === 0\n\t\t\t\t? '1'\n\t\t\t\t: `1.${'0'.repeat(quantityDecimals!)}`;\n\t\t}\n\n\t\tconst newValue =\n\t\t\tquantityDecimals === 0\n\t\t\t\t? (Number.parseInt(quantity) + 1).toString()\n\t\t\t\t: (Number.parseFloat(quantity) + 1).toFixed(quantityDecimals);\n\n\t\treturn newValue;\n\t}\n\n\tfunction decrementQuantity(): string | null {\n\t\tif (!quantity) {\n\t\t\treturn '1';\n\t\t}\n\n\t\tconst newValue = Number.parseFloat(quantity) - 1;\n\t\tif (newValue < 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn quantityDecimals === 0\n\t\t\t? newValue.toString()\n\t\t\t: newValue.toFixed(quantityDecimals);\n\t}\n\n\tfunction getPlaceholder(decimals: number) {\n\t\tif (decimals === 0) {\n\t\t\treturn '0';\n\t\t} else {\n\t\t\treturn '0.' + '0'.repeat(decimals);\n\t\t}\n\t}\n\n\tif (collectableLoading) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Box className={quantityInputWrapper}>\n\t\t\t<NumericInput\n\t\t\t\tname={'quantity'}\n\t\t\t\tdecimals={quantityDecimals || 0}\n\t\t\t\tpaddingLeft={'1'}\n\t\t\t\tlabel={'Enter quantity'}\n\t\t\t\tlabelLocation=\"top\"\n\t\t\t\tplaceholder={getPlaceholder(quantityDecimals || 0)}\n\t\t\t\tcontrols={\n\t\t\t\t\t<Box\n\t\t\t\t\t\tdisplay={'flex'}\n\t\t\t\t\t\talignItems={'center'}\n\t\t\t\t\t\tgap={'1'}\n\t\t\t\t\t\tmarginRight={'2'}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tdisabled={Number.parseFloat(quantity) === 0 || !quantity}\n\t\t\t\t\t\t\tonClick={handleDecrement}\n\t\t\t\t\t\t\tbackground={'buttonGlass'}\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ticon={SvgMinusIcon}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tonClick={handleIncrement}\n\t\t\t\t\t\t\tbackground={'buttonGlass'}\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ticon={SvgPlusIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Box>\n\t\t\t\t}\n\t\t\t\tnumeric={true}\n\t\t\t\tvalue={$quantity.get()}\n\t\t\t\tonChange={(e) => handleChangeQuantity(e.target.value)}\n\t\t\t\twidth={'full'}\n\t\t\t/>\n\t\t</Box>\n\t);\n}\n","import { Box, Image, Skeleton, Text } from '@0xsequence/design-system';\nimport { useCollectible } from '@react-hooks/useCollectible';\nimport { tokenPreview } from './styles.css';\n\ntype TokenPreviewProps = {\n\tcollectionName?: string;\n\tcollectionAddress: string;\n\tcollectibleId: string;\n\tchainId: string;\n};\n\nexport default function TokenPreview({\n\tcollectionName,\n\tcollectionAddress,\n\tcollectibleId,\n\tchainId,\n}: TokenPreviewProps) {\n\tconst { data: collectable, isLoading: collectibleLoading } = useCollectible({\n\t\tchainId: chainId,\n\t\tcollectionAddress: collectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tif (collectibleLoading) {\n\t\treturn (\n\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"3\" width=\"full\">\n\t\t\t\t<Skeleton width={'9'} height={'9'} borderRadius={'xs'} />\n\n\t\t\t\t<Box display=\"flex\" flexGrow=\"1\" gap=\"1\" flexDirection=\"column\">\n\t\t\t\t\t<Skeleton width=\"1/3\" height=\"3\" />\n\t\t\t\t\t<Skeleton width=\"1/2\" height=\"3\" />\n\t\t\t\t</Box>\n\t\t\t</Box>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Box className={tokenPreview}>\n\t\t\t<Image\n\t\t\t\tsrc={collectable?.image}\n\t\t\t\talt={collectable?.name}\n\t\t\t\twidth={'9'}\n\t\t\t\theight={'9'}\n\t\t\t\tborderRadius={'xs'}\n\t\t\t/>\n\n\t\t\t<Box display={'flex'} flexDirection={'column'} marginLeft={'3'}>\n\t\t\t\t<Text fontSize={'small'} color={'text80'} fontWeight={'medium'}>\n\t\t\t\t\t{collectionName}\n\t\t\t\t</Text>\n\n\t\t\t\t<Text fontSize={'small'} fontWeight={'bold'} color={'text100'}>\n\t\t\t\t\t{collectable?.name}\n\t\t\t\t</Text>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","import { Box, NetworkImage, Skeleton, Text } from '@0xsequence/design-system';\nimport { useMarketplaceConfig } from '@react-hooks/useMarketplaceConfig';\nimport { useRoyaltyPercentage } from '@react-hooks/useRoyaltyPercentage';\nimport type { Price } from '@types';\nimport { formatUnits } from 'viem';\n\ntype TransactionDetailsProps = {\n\tcollectibleId: string;\n\tcollectionAddress: string;\n\tchainId: string;\n\tprice?: Price;\n};\n\n//TODO: Move this\nconst DEFAULT_MARKETPLACE_FEE_PERCENTAGE = 2.5;\n\nexport default function TransactionDetails({\n\tcollectibleId,\n\tcollectionAddress,\n\tchainId,\n\tprice,\n}: TransactionDetailsProps) {\n\tconst { data, isLoading: marketplaceConfigLoading } = useMarketplaceConfig();\n\n\tconst marketplaceFeePercentage =\n\t\tdata?.collections.find(\n\t\t\t(collection) => collection.collectionAddress === collectionAddress,\n\t\t)?.marketplaceFeePercentage || DEFAULT_MARKETPLACE_FEE_PERCENTAGE;\n\tconst { data: royaltyPercentage, isLoading: royaltyPercentageLoading } =\n\t\tuseRoyaltyPercentage({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tcollectibleId,\n\t\t});\n\n\tconst priceLoading =\n\t\t!price || marketplaceConfigLoading || royaltyPercentageLoading;\n\n\tlet formattedAmount =\n\t\tprice && formatUnits(BigInt(price.amountRaw), price.currency.decimals);\n\n\tif (royaltyPercentage !== undefined && formattedAmount) {\n\t\tformattedAmount = (\n\t\t\tNumber.parseFloat(formattedAmount) -\n\t\t\t(Number.parseFloat(formattedAmount) * Number(royaltyPercentage)) / 100\n\t\t).toString();\n\t}\n\n\tif (marketplaceFeePercentage !== undefined && formattedAmount) {\n\t\tformattedAmount = (\n\t\t\tNumber.parseFloat(formattedAmount) -\n\t\t\t(Number.parseFloat(formattedAmount) * marketplaceFeePercentage) / 100\n\t\t).toString();\n\t}\n\n\treturn (\n\t\t<Box\n\t\t\twidth=\"full\"\n\t\t\tdisplay={'flex'}\n\t\t\tjustifyContent={'space-between'}\n\t\t\talignItems={'center'}\n\t\t>\n\t\t\t<Text fontSize={'small'} color={'text50'}>\n\t\t\t\tTotal earnings\n\t\t\t</Text>\n\n\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"2\">\n\t\t\t\t<NetworkImage chainId={Number(chainId)} size=\"xs\" />\n\n\t\t\t\t{priceLoading ? (\n\t\t\t\t\t<Skeleton width=\"16\" height={'4'} />\n\t\t\t\t) : (\n\t\t\t\t\t<Text fontSize={'small'} color={'text100'}>\n\t\t\t\t\t\t{formattedAmount} {price.currency.symbol}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","import { observable, when } from '@legendapp/state';\nimport { useMount, useSelector } from '@legendapp/state/react';\nimport { useCollection } from '@react-hooks/useCollection';\nimport { useGenerateListingTransaction } from '@react-hooks/useGenerateListingTransaction';\nimport {\n\ttype Currency,\n\tOrderbookKind,\n\ttype Price,\n\ttype Step,\n\tStepType,\n\ttype WalletKind,\n} from '@types';\nimport { addDays } from 'date-fns/addDays';\nimport type { Hex } from 'viem';\nimport { useAccount, useSendTransaction } from 'wagmi';\nimport type { ShowCreateListingModalArgs } from '.';\nimport type { Messages } from '../../../../types/messages';\nimport { useTransactionStatusModal } from '../_internal/components/transactionStatusModal';\nimport {\n\tgetCreateListingTransactionMessage,\n\tgetCreateListingTransactionTitle,\n} from './_utils/getCreateListingTransactionTitleMessage';\nimport { useCollectible } from '@react-hooks/useCollectible';\nimport type { CollectionType } from '@internal';\n\nexport interface CreateListingModalState {\n\tisOpen: boolean;\n\topen: (args: ShowCreateListingModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\tcollectionName: string;\n\t\tcollectionType: CollectionType | undefined;\n\t\tlistingPrice: Price;\n\t\tquantity: string;\n\t\tcollectionAddress: string;\n\t\tchainId: string;\n\t\tcollectibleId: string;\n\t\texpiry: Date;\n\t\tmessages?: Messages;\n\t};\n\tsteps: {\n\t\tisLoading: () => boolean;\n\t\tstepsData: Step[] | undefined;\n\t\t_currentStep: null | 'tokenApproval' | 'createListing';\n\t\ttokenApproval: {\n\t\t\tisNeeded: () => boolean;\n\t\t\tpending: boolean;\n\t\t\tgetStep: () => Step | undefined;\n\t\t\texecute: () => void;\n\t\t};\n\t\tcreateListing: {\n\t\t\tpending: boolean;\n\t\t\texecute: () => void;\n\t\t};\n\t};\n\thash: Hex | undefined;\n}\n\nexport const initialState: CreateListingModalState = {\n\tisOpen: false,\n\topen: ({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId,\n\t\tmessages,\n\t}: ShowCreateListingModalArgs) => {\n\t\tcreateListingModal$.state.set({\n\t\t\t...createListingModal$.state.get(),\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t\tcollectibleId,\n\t\t\tmessages,\n\t\t});\n\t\tcreateListingModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tcreateListingModal$.isOpen.set(false);\n\t},\n\tstate: {\n\t\tcollectionName: '',\n\t\tlistingPrice: {\n\t\t\tamountRaw: '0',\n\t\t\tcurrency: {} as Currency,\n\t\t},\n\t\tquantity: '1',\n\t\texpiry: new Date(addDays(new Date(), 7).toJSON()),\n\t\tcollectionType: undefined,\n\t\tcollectionAddress: '',\n\t\tchainId: '',\n\t\tcollectibleId: '',\n\t},\n\tsteps: {\n\t\tisLoading: () => !!createListingModal$.steps.stepsData.get(),\n\t\tstepsData: undefined,\n\t\t_currentStep: null,\n\t\ttokenApproval: {} as CreateListingModalState['steps']['tokenApproval'],\n\t\tcreateListing: {} as CreateListingModalState['steps']['createListing'],\n\t},\n\thash: undefined,\n};\n\nexport const createListingModal$ = observable(initialState);\n\nconst exp = new Date(addDays(new Date(), 7).toJSON());\n\nexport const useHydrate = () => {\n\tconst chainId = useSelector(createListingModal$.state.chainId);\n\tconst collectionAddress = useSelector(\n\t\tcreateListingModal$.state.collectionAddress,\n\t);\n\tconst collectionType = useSelector(createListingModal$.state.collectionType);\n\tconst { data: collection, isSuccess: isSuccessCollection } = useCollection({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\n\twhen(isSuccessCollection, () => {\n\t\tcreateListingModal$.state.collectionName.set(collection!.name);\n\t\tcreateListingModal$.state.collectionType.set(\n\t\t\tcollection!.type as CollectionType,\n\t\t);\n\t});\n\n\tuseTokenApprovalHandler(chainId);\n\tuseCreateListingHandler(chainId);\n\tuseShowTransactionStatusModal();\n\n\tconst onListingSuccess = (data?: Step[]) => {\n\t\tcreateListingModal$.steps.stepsData.set(data);\n\t};\n\n\tconst { generateListingTransactionAsync } = useGenerateListingTransaction({\n\t\tchainId,\n\t\tonSuccess: onListingSuccess,\n\t});\n\n\tconst { connector, address: userAddress } = useAccount();\n\n\tuseMount(() => {\n\t\tconst setSteps = async () => {\n\t\t\tconst createListingTransactionSteps =\n\t\t\t\tawait generateListingTransactionAsync({\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\torderbook: OrderbookKind.sequence_marketplace_v1,\n\t\t\t\t\tlisting: {\n\t\t\t\t\t\ttokenId: '1',\n\t\t\t\t\t\tquantity: '1',\n\t\t\t\t\t\texpiry: exp,\n\t\t\t\t\t\tcurrencyAddress:\n\t\t\t\t\t\t\tcreateListingModal$.state.listingPrice.currency.contractAddress.get(),\n\t\t\t\t\t\tpricePerToken:\n\t\t\t\t\t\t\tcreateListingModal$.state.listingPrice.amountRaw.get() || '1',\n\t\t\t\t\t},\n\t\t\t\t\tcontractType: collectionType!,\n\t\t\t\t\twalletType: connector?.id as WalletKind,\n\t\t\t\t\towner: userAddress!,\n\t\t\t\t});\n\n\t\t\tcreateListingModal$.steps.stepsData.set(createListingTransactionSteps);\n\t\t};\n\n\t\twhen(isSuccessCollection && collectionType, setSteps);\n\t});\n};\n\nconst useTokenApprovalHandler = (chainId: string) => {\n\tconst { sendTransactionAsync, isPending, isSuccess } = useSendTransaction();\n\tconst {\n\t\tonUnknownError,\n\t\tonSuccess,\n\t}: { onUnknownError?: Function; onSuccess?: Function } =\n\t\tcreateListingModal$.state.get().messages?.approveToken || {};\n\n\tcreateListingModal$.steps.tokenApproval.set({\n\t\tisNeeded: () => !!createListingModal$.steps.tokenApproval.getStep(),\n\t\tgetStep: () =>\n\t\t\tcreateListingModal$.steps.stepsData\n\t\t\t\t?.get()\n\t\t\t\t?.find((s) => s.id === StepType.tokenApproval),\n\t\tpending:\n\t\t\tcreateListingModal$.steps._currentStep.get() === 'tokenApproval' &&\n\t\t\tisPending,\n\t\texecute: () => {\n\t\t\tconst step = createListingModal$.steps.tokenApproval.getStep();\n\t\t\tif (!step) return;\n\t\t\tcreateListingModal$.steps._currentStep.set('tokenApproval');\n\n\t\t\ttry {\n\t\t\t\tsendTransactionAsync({\n\t\t\t\t\tto: step.to as Hex,\n\t\t\t\t\tchainId: Number(chainId),\n\t\t\t\t\tdata: step.data as Hex,\n\t\t\t\t\tvalue: BigInt(step.value || '0'),\n\t\t\t\t});\n\n\t\t\t\tonSuccess && onSuccess();\n\t\t\t} catch (error) {\n\t\t\t\tonUnknownError && onUnknownError(error);\n\t\t\t}\n\t\t},\n\t});\n\n\tif (\n\t\tisSuccess &&\n\t\tcreateListingModal$.steps._currentStep.get() === 'tokenApproval'\n\t) {\n\t\tcreateListingModal$.steps._currentStep.set(null);\n\t}\n};\n\nconst useCreateListingHandler = (chainId: string) => {\n\tconst { collectibleId, collectionAddress } = createListingModal$.state.get();\n\tconst { connector, address } = useAccount();\n\tconst {\n\t\tgenerateListingTransactionAsync,\n\t\tisPending: generateListingTransactionPending,\n\t\terror: generateListingTransactionError,\n\t} = useGenerateListingTransaction({ chainId });\n\tconst { data: collectible } = useCollectible({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t});\n\tconst {\n\t\tonUnknownError,\n\t\tonSuccess,\n\t}: { onUnknownError?: Function; onSuccess?: Function } =\n\t\tcreateListingModal$.state.get().messages?.sellCollectible || {};\n\n\tconst { sendTransactionAsync, isPending: sendTransactionPending } =\n\t\tuseSendTransaction();\n\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\n\tcreateListingModal$.steps.createListing.set({\n\t\tpending:\n\t\t\tcreateListingModal$.steps._currentStep.get() === 'createListing' &&\n\t\t\t(generateListingTransactionPending || sendTransactionPending),\n\t\texecute: () => {\n\t\t\tcreateListingModal$.steps._currentStep.set('createListing');\n\t\t\tgenerateListingTransactionAsync({\n\t\t\t\tcollectionAddress: createListingModal$.state.collectionAddress.get(),\n\t\t\t\tcontractType: createListingModal$.state.collectionType.get()!,\n\t\t\t\torderbook: OrderbookKind.sequence_marketplace_v1,\n\t\t\t\twalletType: connector?.id as WalletKind,\n\t\t\t\tlisting: {\n\t\t\t\t\ttokenId: createListingModal$.state.collectibleId.get(),\n\t\t\t\t\tquantity: createListingModal$.state.quantity.get(),\n\t\t\t\t\texpiry: createListingModal$.state.expiry.get(),\n\t\t\t\t\tcurrencyAddress:\n\t\t\t\t\t\tcreateListingModal$.state.listingPrice.currency.contractAddress.get(),\n\t\t\t\t\tpricePerToken:\n\t\t\t\t\t\tcreateListingModal$.state.listingPrice.amountRaw.get() || '1',\n\t\t\t\t},\n\t\t\t\towner: address!,\n\t\t\t})\n\t\t\t\t.then(async (steps) => {\n\t\t\t\t\tconst step = steps.find((s) => s.id === StepType.createListing);\n\t\t\t\t\tif (!step) throw new Error('No steps found');\n\t\t\t\t\tconst hash = await sendTransactionAsync({\n\t\t\t\t\t\tto: step.to as Hex,\n\t\t\t\t\t\tchainId: Number(chainId),\n\t\t\t\t\t\tdata: step.data as Hex,\n\t\t\t\t\t\tvalue: BigInt(step.value || '0'),\n\t\t\t\t\t});\n\n\t\t\t\t\tcreateListingModal$.hash.set(hash);\n\n\t\t\t\t\tcreateListingModal$.steps._currentStep.set(null);\n\n\t\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\t\thash: hash!,\n\t\t\t\t\t\tprice: createListingModal$.state.listingPrice.get(),\n\t\t\t\t\t\tcollectionAddress,\n\t\t\t\t\t\tchainId,\n\t\t\t\t\t\ttokenId: collectibleId,\n\t\t\t\t\t\tgetTitle: getCreateListingTransactionTitle,\n\t\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\t\tgetCreateListingTransactionMessage(\n\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\tcollectible?.name || '',\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\ttype: 'transfer',\n\t\t\t\t\t});\n\n\t\t\t\t\tcreateListingModal$.close();\n\n\t\t\t\t\tonSuccess && onSuccess();\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tonUnknownError && onUnknownError(error);\n\t\t\t\t});\n\t\t},\n\t});\n\n\tif (generateListingTransactionError) {\n\t\tonUnknownError && onUnknownError(generateListingTransactionError);\n\t}\n};\n\nconst useShowTransactionStatusModal = () => {\n\tconst { hash } = createListingModal$.get();\n\tconst { collectibleId, chainId, collectionAddress } =\n\t\tcreateListingModal$.state.get();\n\tconst { data: collectible } = useCollectible({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId,\n\t});\n\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\n\twhen(!!hash, () => {\n\t\tshowTransactionStatusModal({\n\t\t\thash: hash!,\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t\tprice: createListingModal$.state.listingPrice.get(),\n\t\t\ttokenId: collectibleId,\n\t\t\tgetTitle: getCreateListingTransactionTitle,\n\t\t\tgetMessage: (params) =>\n\t\t\t\tgetCreateListingTransactionMessage(params, collectible?.name || ''),\n\t\t\ttype: StepType.createListing,\n\t\t});\n\t});\n};\n","import type { ConfirmationStatus } from '../../_internal/components/transactionStatusModal/store';\n\nexport const getCreateListingTransactionTitle = (\n\tparams: ConfirmationStatus,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn 'Listing has processed';\n\t}\n\n\tif (params.isFailed) {\n\t\treturn 'Listing has failed';\n\t}\n\n\treturn 'Listing is processing';\n};\n\nexport const getCreateListingTransactionMessage = (\n\tparams: ConfirmationStatus,\n\tcollectibleName: string,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn `You just listed ${collectibleName}. It’s been confirmed on the blockchain!`;\n\t}\n\n\tif (params.isFailed) {\n\t\treturn `Your listing of ${collectibleName} has failed. Please try again.`;\n\t}\n\n\treturn `You just listed ${collectibleName}. It should be confirmed on the blockchain shortly.`;\n};\n","import { ContractType } from '@internal';\nimport { Show, observer } from '@legendapp/state/react';\nimport { type Hex, erc20Abi, parseUnits } from 'viem';\nimport { useAccount, useReadContract } from 'wagmi';\nimport {\n\tActionModal,\n\ttype ActionModalProps,\n} from '../_internal/components/actionModal/ActionModal';\nimport ExpirationDateSelect from '../_internal/components/expirationDateSelect';\nimport FloorPriceText from '../_internal/components/floorPriceText';\nimport PriceInput from '../_internal/components/priceInput';\nimport QuantityInput from '../_internal/components/quantityInput';\nimport TokenPreview from '../_internal/components/tokenPreview';\nimport { makeOfferModal$, useHydrate } from './_store';\nimport { useSwitchChainModal } from '../_internal/components/switchChainModal';\nimport type { Messages } from '../../../../types/messages';\n\nexport type ShowMakeOfferModalArgs = {\n\tcollectionAddress: string;\n\tchainId: string;\n\tcollectibleId: string;\n\tmessages?: Messages;\n};\n\nexport const useMakeOfferModal = () => {\n\tconst { chainId: accountChainId } = useAccount();\n\tconst { show: showSwitchNetworkModal } = useSwitchChainModal();\n\n\tconst openModal = (args: ShowMakeOfferModalArgs) => {\n\t\tmakeOfferModal$.open(args);\n\t};\n\n\tconst handleShowModal = (args: ShowMakeOfferModalArgs) => {\n\t\tconst isSameChain = accountChainId === Number(args.chainId);\n\n\t\tif (!isSameChain) {\n\t\t\tshowSwitchNetworkModal({\n\t\t\t\tchainIdToSwitchTo: Number(args.chainId),\n\t\t\t\tonSwitchChain: () => openModal(args),\n\t\t\t\tmessages: args.messages?.switchChain,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\topenModal(args);\n\t};\n\n\treturn {\n\t\tshow: handleShowModal,\n\t\tclose: () => makeOfferModal$.close(),\n\t};\n};\n\nexport const MakeOfferModal = () => {\n\treturn (\n\t\t<Show if={makeOfferModal$.isOpen}>\n\t\t\t<Modal />\n\t\t</Show>\n\t);\n};\n\nconst Modal = () => {\n\tuseHydrate();\n\treturn <ModalContent />;\n};\n\nconst ModalContent = observer(() => {\n\tconst {\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t\tcollectionName,\n\t\tcollectionType,\n\t\tofferPrice,\n\t} = makeOfferModal$.state.get();\n\n\tconst { steps } = makeOfferModal$.get();\n\n\tconst { address: accountAddress } = useAccount();\n\tconst { data: balance, isSuccess: isBalanceSuccess } = useReadContract({\n\t\taddress:\n\t\t\tmakeOfferModal$.state.offerPrice.currency.contractAddress.get() as Hex,\n\t\tabi: erc20Abi,\n\t\tfunctionName: 'balanceOf',\n\t\targs: [accountAddress as Hex],\n\t});\n\n\tlet balanceError = '';\n\tif (\n\t\tisBalanceSuccess &&\n\t\tparseUnits(offerPrice.amountRaw, offerPrice.currency.decimals) >\n\t\t\t(balance || 0)\n\t) {\n\t\tbalanceError = 'Insufficient balance';\n\t}\n\n\tconst ctas = [\n\t\t{\n\t\t\tlabel: 'Approve TOKEN',\n\t\t\tonClick: steps.tokenApproval.execute,\n\t\t\thidden: !steps.tokenApproval.isNeeded(),\n\t\t\tpending: steps.tokenApproval.pending,\n\t\t\tvariant: 'glass' as const,\n\t\t},\n\t\t{\n\t\t\tlabel: 'Make offer',\n\t\t\tonClick: steps.createOffer.execute,\n\t\t\tpending: steps.createOffer.pending,\n\t\t\tdisabled: steps.tokenApproval.isNeeded() || offerPrice.amountRaw === '0',\n\t\t},\n\t] satisfies ActionModalProps['ctas'];\n\n\treturn (\n\t\t<ActionModal\n\t\t\tstore={makeOfferModal$}\n\t\t\tonClose={() => {\n\t\t\t\tmakeOfferModal$.close();\n\t\t\t}}\n\t\t\ttitle=\"Make an offer\"\n\t\t\tctas={ctas}\n\t\t>\n\t\t\t<TokenPreview\n\t\t\t\tcollectionName={collectionName}\n\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\tchainId={chainId}\n\t\t\t/>\n\n\t\t\t<PriceInput\n\t\t\t\tchainId={chainId}\n\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t$listingPrice={makeOfferModal$.state.offerPrice}\n\t\t\t\terror={balanceError}\n\t\t\t/>\n\n\t\t\t{collectionType === ContractType.ERC1155 && (\n\t\t\t\t<QuantityInput\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t$quantity={makeOfferModal$.state.quantity}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{!!offerPrice && (\n\t\t\t\t<FloorPriceText\n\t\t\t\t\ttokenId={collectibleId}\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tprice={offerPrice}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<ExpirationDateSelect $date={makeOfferModal$.state.expiry} />\n\t\t</ActionModal>\n\t);\n});\n","import { observable, when } from '@legendapp/state';\nimport { useMount, useSelector } from '@legendapp/state/react';\nimport { useCollection } from '@react-hooks/useCollection';\nimport { useGenerateOfferTransaction } from '@react-hooks/useGenerateOfferTransaction';\nimport {\n\ttype Currency,\n\tOrderbookKind,\n\ttype Price,\n\ttype Step,\n\tStepType,\n\ttype WalletKind,\n} from '@types';\nimport { addDays } from 'date-fns/addDays';\nimport { parseUnits, type Hex } from 'viem';\nimport { useAccount, useSendTransaction } from 'wagmi';\nimport type { ShowMakeOfferModalArgs } from '.';\nimport type { Messages } from '../../../../types/messages';\nimport { useTransactionStatusModal } from '../_internal/components/transactionStatusModal';\nimport {\n\tgetMakeOfferTransactionMessage,\n\tgetMakeOfferTransactionTitle,\n} from './_utils/getMakeOfferTransactionTitleMessage';\nimport { useCollectible } from '@react-hooks/useCollectible';\nimport type { CollectionType } from '@internal';\n\nexport interface MakeOfferModalState {\n\tisOpen: boolean;\n\topen: (args: ShowMakeOfferModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\tcollectionName: string;\n\t\tcollectionType: CollectionType | undefined;\n\t\tofferPrice: Price;\n\t\tquantity: string;\n\t\tcollectionAddress: string;\n\t\tchainId: string;\n\t\tcollectibleId: string;\n\t\texpiry: Date;\n\t\tmessages?: Messages;\n\t};\n\tsteps: {\n\t\tisLoading: () => boolean;\n\t\tstepsData: Step[] | undefined;\n\t\t_currentStep: null | 'tokenApproval' | 'createOffer';\n\t\ttokenApproval: {\n\t\t\tisNeeded: () => boolean;\n\t\t\tpending: boolean;\n\t\t\tgetStep: () => Step | undefined;\n\t\t\texecute: () => void;\n\t\t};\n\t\tcreateOffer: {\n\t\t\tpending: boolean;\n\t\t\texecute: () => void;\n\t\t};\n\t};\n\thash: Hex | undefined;\n}\n\nexport const initialState: MakeOfferModalState = {\n\tisOpen: false,\n\topen: ({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId,\n\t\tmessages,\n\t}: ShowMakeOfferModalArgs) => {\n\t\tmakeOfferModal$.state.set({\n\t\t\t...makeOfferModal$.state.get(),\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t\tcollectibleId,\n\t\t\tmessages,\n\t\t});\n\t\tmakeOfferModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tmakeOfferModal$.isOpen.set(false);\n\t},\n\tstate: {\n\t\tcollectionName: '',\n\t\tofferPrice: {\n\t\t\tamountRaw: '0',\n\t\t\tcurrency: {} as Currency,\n\t\t},\n\t\tquantity: '1',\n\t\texpiry: new Date(addDays(new Date(), 7).toJSON()),\n\t\tcollectionType: undefined,\n\t\tcollectionAddress: '',\n\t\tchainId: '',\n\t\tcollectibleId: '',\n\t},\n\tsteps: {\n\t\tisLoading: () => !!makeOfferModal$.steps.stepsData.get(),\n\t\tstepsData: undefined,\n\t\t_currentStep: null,\n\t\ttokenApproval: {} as MakeOfferModalState['steps']['tokenApproval'],\n\t\tcreateOffer: {} as MakeOfferModalState['steps']['createOffer'],\n\t},\n\thash: undefined,\n};\n\nexport const makeOfferModal$ = observable(initialState);\n\nconst exp = new Date(addDays(new Date(), 7).toJSON());\n\nexport const useHydrate = () => {\n\tconst chainId = useSelector(makeOfferModal$.state.chainId);\n\tconst collectionAddress = useSelector(\n\t\tmakeOfferModal$.state.collectionAddress,\n\t);\n\tconst currencyAddress = useSelector(\n\t\tmakeOfferModal$.state.offerPrice.currency.contractAddress,\n\t);\n\tconst collectionType = useSelector(makeOfferModal$.state.collectionType);\n\tconst { data: collection, isSuccess: isSuccessCollection } = useCollection({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\n\twhen(isSuccessCollection, () => {\n\t\tmakeOfferModal$.state.collectionName.set(collection!.name);\n\t\tmakeOfferModal$.state.collectionType.set(\n\t\t\tcollection!.type as CollectionType,\n\t\t);\n\t});\n\n\tuseTokenApprovalHandler(chainId);\n\tuseCreateOfferHandler(chainId);\n\n\tconst onOfferSuccess = (data?: Step[]) => {\n\t\tmakeOfferModal$.steps.stepsData.set(data);\n\t};\n\n\tconst { generateOfferTransactionAsync } = useGenerateOfferTransaction({\n\t\tchainId,\n\t\tonSuccess: onOfferSuccess,\n\t});\n\n\tconst { connector, address: userAddress } = useAccount();\n\n\tuseMount(() => {\n\t\tconst setSteps = async () => {\n\t\t\tconst makeOfferTransactionData = await generateOfferTransactionAsync({\n\t\t\t\tcollectionAddress,\n\t\t\t\torderbook: OrderbookKind.sequence_marketplace_v1,\n\t\t\t\toffer: {\n\t\t\t\t\ttokenId: '1',\n\t\t\t\t\tquantity: '1',\n\t\t\t\t\texpiry: exp,\n\t\t\t\t\tcurrencyAddress,\n\t\t\t\t\tpricePerToken:\n\t\t\t\t\t\tmakeOfferModal$.state.offerPrice.amountRaw.get() || '1',\n\t\t\t\t},\n\t\t\t\tmaker: userAddress!,\n\t\t\t\tcontractType: collectionType!,\n\t\t\t\twalletType: connector?.id as WalletKind,\n\t\t\t});\n\t\t\tmakeOfferModal$.steps.stepsData.set(makeOfferTransactionData);\n\t\t};\n\n\t\twhen(isSuccessCollection && collectionType && currencyAddress, setSteps);\n\t});\n};\n\nconst useTokenApprovalHandler = (chainId: string) => {\n\tconst { sendTransactionAsync, isPending, isSuccess } = useSendTransaction();\n\tconst {\n\t\tonUnknownError,\n\t\tonSuccess,\n\t}: { onUnknownError?: Function; onSuccess?: Function } =\n\t\tmakeOfferModal$.state.get().messages?.approveToken || {};\n\n\tmakeOfferModal$.steps.tokenApproval.set({\n\t\tisNeeded: () => !!makeOfferModal$.steps.tokenApproval.getStep(),\n\t\tgetStep: () =>\n\t\t\tmakeOfferModal$.steps.stepsData\n\t\t\t\t?.get()\n\t\t\t\t?.find((s) => s.id === StepType.tokenApproval),\n\t\tpending:\n\t\t\tmakeOfferModal$.steps._currentStep.get() === 'tokenApproval' && isPending,\n\t\texecute: () => {\n\t\t\tconst step = makeOfferModal$.steps.tokenApproval.getStep();\n\t\t\tif (!step) return;\n\t\t\tmakeOfferModal$.steps._currentStep.set('tokenApproval');\n\t\t\ttry {\n\t\t\t\tsendTransactionAsync({\n\t\t\t\t\tto: step.to as Hex,\n\t\t\t\t\tchainId: Number(chainId),\n\t\t\t\t\tdata: step.data as Hex,\n\t\t\t\t\tvalue: BigInt(step.value || '0'),\n\t\t\t\t});\n\n\t\t\t\tonSuccess && onSuccess();\n\t\t\t} catch (error) {\n\t\t\t\tonUnknownError && onUnknownError(error);\n\t\t\t}\n\t\t},\n\t});\n\n\tif (\n\t\tisSuccess &&\n\t\tmakeOfferModal$.steps._currentStep.get() === 'tokenApproval'\n\t) {\n\t\tmakeOfferModal$.steps._currentStep.set(null);\n\t}\n};\n\nconst useCreateOfferHandler = (chainId: string) => {\n\tconst { collectibleId, collectionAddress } = makeOfferModal$.state.get();\n\tconst { connector, address } = useAccount();\n\tconst {\n\t\tgenerateOfferTransactionAsync,\n\t\tisPending: generateOfferTransactionPending,\n\t\terror: generateOfferTransactionError,\n\t} = useGenerateOfferTransaction({ chainId });\n\tconst { data: collectible } = useCollectible({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tconst {\n\t\tonUnknownError,\n\t\tonSuccess,\n\t}: { onUnknownError?: Function; onSuccess?: Function } =\n\t\tmakeOfferModal$.state.get().messages?.sellCollectible || {};\n\n\tconst { sendTransactionAsync, isPending: sendTransactionPending } =\n\t\tuseSendTransaction();\n\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\n\tmakeOfferModal$.steps.createOffer.set({\n\t\tpending:\n\t\t\tmakeOfferModal$.steps._currentStep.get() === 'createOffer' &&\n\t\t\t(generateOfferTransactionPending || sendTransactionPending),\n\t\texecute: () => {\n\t\t\tmakeOfferModal$.steps._currentStep.set('createOffer');\n\t\t\tgenerateOfferTransactionAsync({\n\t\t\t\tcollectionAddress: makeOfferModal$.state.collectionAddress.get(),\n\t\t\t\tmaker: address!,\n\t\t\t\tcontractType: makeOfferModal$.state.collectionType.get()!,\n\t\t\t\torderbook: OrderbookKind.sequence_marketplace_v1,\n\t\t\t\twalletType: connector?.id as WalletKind,\n\t\t\t\toffer: {\n\t\t\t\t\ttokenId: makeOfferModal$.state.collectibleId.get(),\n\t\t\t\t\tquantity: makeOfferModal$.state.quantity.get(),\n\t\t\t\t\texpiry: makeOfferModal$.state.expiry.get(),\n\t\t\t\t\tcurrencyAddress:\n\t\t\t\t\t\tmakeOfferModal$.state.offerPrice.currency.contractAddress.get(),\n\t\t\t\t\tpricePerToken: parseUnits(\n\t\t\t\t\t\tmakeOfferModal$.state.offerPrice.amountRaw.get(),\n\t\t\t\t\t\tmakeOfferModal$.state.offerPrice.currency.decimals.get(),\n\t\t\t\t\t).toString(),\n\t\t\t\t},\n\t\t\t})\n\t\t\t\t.then(async (steps) => {\n\t\t\t\t\tconst step = steps.find((s) => s.id === StepType.createOffer);\n\t\t\t\t\tif (!step) throw new Error('No steps found');\n\t\t\t\t\tconst hash = await sendTransactionAsync({\n\t\t\t\t\t\tto: step.to as Hex,\n\t\t\t\t\t\tchainId: Number(chainId),\n\t\t\t\t\t\tdata: step.data as Hex,\n\t\t\t\t\t\tvalue: BigInt(step.value || '0'),\n\t\t\t\t\t});\n\n\t\t\t\t\tmakeOfferModal$.hash.set(hash);\n\n\t\t\t\t\tmakeOfferModal$.steps._currentStep.set(null);\n\n\t\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\t\thash: hash!,\n\t\t\t\t\t\tprice: makeOfferModal$.state.offerPrice.get(),\n\t\t\t\t\t\tcollectionAddress,\n\t\t\t\t\t\tchainId,\n\t\t\t\t\t\ttokenId: collectibleId,\n\t\t\t\t\t\tgetTitle: getMakeOfferTransactionTitle,\n\t\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\t\tgetMakeOfferTransactionMessage(params, collectible?.name || ''),\n\t\t\t\t\t\ttype: StepType.createOffer,\n\t\t\t\t\t});\n\n\t\t\t\t\tmakeOfferModal$.close();\n\n\t\t\t\t\tonSuccess && onSuccess();\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tonUnknownError && onUnknownError(error);\n\t\t\t\t});\n\t\t},\n\t});\n\n\tif (generateOfferTransactionError) {\n\t\tonUnknownError && onUnknownError(generateOfferTransactionError);\n\t}\n};\n","import type { ConfirmationStatus } from '../../_internal/components/transactionStatusModal/store';\n\nexport const getMakeOfferTransactionTitle = (params: ConfirmationStatus) => {\n\tif (params.isConfirmed) {\n\t\treturn 'Your offer has processed';\n\t}\n\n\tif (params.isFailed) {\n\t\treturn 'Your offer has failed';\n\t}\n\n\treturn 'Your offer is processing';\n};\n\nexport const getMakeOfferTransactionMessage = (\n\tparams: ConfirmationStatus,\n\tcollectibleName: string,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn `You just made offer for ${collectibleName}. It’s been confirmed on the blockchain!`;\n\t}\n\n\tif (params.isFailed) {\n\t\treturn `Your offer for ${collectibleName} has failed. Please try again.`;\n\t}\n\n\treturn `You just made offer for ${collectibleName}. It should be confirmed on the blockchain shortly.`;\n};\n","import { observable, when } from '@legendapp/state';\nimport {\n\tMarketplaceKind,\n\tStepType,\n\ttype Order,\n\ttype Step,\n\ttype WalletKind,\n} from '@types';\nimport { useMount, useSelector } from '@legendapp/state/react';\nimport { useGenerateSellTransaction } from '@react-hooks/useGenerateSellTransaction';\nimport { useAccount, useSendTransaction } from 'wagmi';\nimport type { Hex } from 'viem';\nimport type { ShowSellModalArgs } from '.';\nimport type { Messages } from '../../../../types/messages';\nimport { useTransactionStatusModal } from '../_internal/components/transactionStatusModal';\nimport {\n\tgetSellTransactionMessage,\n\tgetSellTransactionTitle,\n} from './_utils/getSellTransactionTitleMessage';\nimport { useCollectible } from '@react-hooks/useCollectible';\nimport { useCurrencies } from '@react-hooks/useCurrencies';\n\nexport interface SellModalState {\n\tisOpen: boolean;\n\topen: (args: ShowSellModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\tcollectionAddress: string;\n\t\tchainId: string;\n\t\ttokenId: string;\n\t\torder: Order | undefined;\n\t\tmessages?: Messages;\n\t};\n\tsteps: {\n\t\tisLoading: () => boolean;\n\t\tstepsData: Step[] | undefined;\n\t\t_currentStep: null | 'tokenApproval' | 'sell';\n\t\ttokenApproval: {\n\t\t\tisNeeded: () => boolean;\n\t\t\tpending: boolean;\n\t\t\tgetStep: () => Step | undefined;\n\t\t\texecute: () => void;\n\t\t};\n\t\tsell: {\n\t\t\tpending: boolean;\n\t\t\texecute: () => void;\n\t\t};\n\t};\n\thash: Hex | undefined;\n}\n\nexport const initialState: SellModalState = {\n\tisOpen: false,\n\topen: ({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\ttokenId,\n\t\torder,\n\t\tmessages,\n\t}: ShowSellModalArgs) => {\n\t\tsellModal$.state.set({\n\t\t\t...sellModal$.state.get(),\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t\ttokenId,\n\t\t\torder,\n\t\t\tmessages,\n\t\t});\n\t\tsellModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tsellModal$.isOpen.set(false);\n\t\tsellModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t},\n\tstate: {\n\t\tcollectionAddress: '',\n\t\tchainId: '',\n\t\ttokenId: '',\n\t\torder: undefined,\n\t},\n\tsteps: {\n\t\tisLoading: () => !!sellModal$.steps.stepsData.get(),\n\t\tstepsData: undefined,\n\t\t_currentStep: null,\n\t\ttokenApproval: {} as SellModalState['steps']['tokenApproval'],\n\t\tsell: {} as SellModalState['steps']['sell'],\n\t},\n\thash: undefined,\n};\n\nexport const sellModal$ = observable(initialState);\n\nexport const useHydrate = () => {\n\tconst chainId = useSelector(sellModal$.state.chainId);\n\n\tconst collectionAddress = useSelector(sellModal$.state.collectionAddress);\n\n\tconst order = useSelector(sellModal$.state.order);\n\n\tuseTokenApprovalHandler(chainId);\n\tuseSellHandler(chainId);\n\n\tconst { generateSellTransactionAsync } = useGenerateSellTransaction({\n\t\tchainId,\n\t});\n\n\tconst { connector, address } = useAccount();\n\n\tuseMount(() => {\n\t\tconst setSteps = async () => {\n\t\t\tconst sellTransactionData = await generateSellTransactionAsync({\n\t\t\t\twalletType: connector?.walletType as WalletKind,\n\t\t\t\tcollectionAddress: collectionAddress,\n\t\t\t\tseller: address as string,\n\t\t\t\tmarketplace: MarketplaceKind.sequence_marketplace_v1,\n\t\t\t\tordersData: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...order!,\n\t\t\t\t\t\torderId: order!.orderId,\n\t\t\t\t\t\tquantity: '1',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tadditionalFees: [],\n\t\t\t});\n\t\t\tsellModal$.steps.stepsData.set(sellTransactionData.steps);\n\t\t};\n\n\t\twhen(() => !!order && !!connector, setSteps);\n\t});\n};\n\nconst useTokenApprovalHandler = (chainId: string) => {\n\tconst { sendTransactionAsync, isPending, isSuccess } = useSendTransaction();\n\tconst {\n\t\tonUnknownError,\n\t\tonSuccess,\n\t}: { onUnknownError?: Function; onSuccess?: Function } =\n\t\tsellModal$.state.get().messages?.approveToken || {};\n\n\tsellModal$.steps.tokenApproval.set({\n\t\tisNeeded: () => !!sellModal$.steps.tokenApproval.getStep(),\n\t\tgetStep: () =>\n\t\t\tsellModal$.steps.stepsData\n\t\t\t\t?.get()\n\t\t\t\t?.find((s) => s.id === StepType.tokenApproval),\n\t\tpending:\n\t\t\tsellModal$.steps._currentStep.get() === 'tokenApproval' && isPending,\n\t\texecute: async () => {\n\t\t\tconst step = sellModal$.steps.tokenApproval.getStep();\n\t\t\tif (!step) return;\n\t\t\tsellModal$.steps._currentStep.set('tokenApproval');\n\t\t\ttry {\n\t\t\t\tawait sendTransactionAsync({\n\t\t\t\t\tto: step.to as Hex,\n\t\t\t\t\tchainId: Number(chainId),\n\t\t\t\t\tdata: step.data as Hex,\n\t\t\t\t\tvalue: BigInt(step.value || '0'),\n\t\t\t\t});\n\t\t\t\tonSuccess && onSuccess();\n\t\t\t} catch (error) {\n\t\t\t\tonUnknownError && onUnknownError(error);\n\t\t\t}\n\t\t},\n\t});\n\n\tif (isSuccess && sellModal$.steps._currentStep.get() === 'tokenApproval') {\n\t\tsellModal$.steps._currentStep.set(null);\n\t}\n};\n\nconst useSellHandler = (chainId: string) => {\n\tconst { address } = useAccount();\n\tconst { tokenId, collectionAddress } = sellModal$.state.get();\n\tconst {\n\t\tgenerateSellTransactionAsync,\n\t\tisPending: generateSellTransactionPending,\n\t\terror: generateSellTransactionError,\n\t} = useGenerateSellTransaction({\n\t\tchainId,\n\t});\n\tconst { data: collectible } = useCollectible({\n\t\tchainId,\n\t\tcollectibleId: tokenId,\n\t\tcollectionAddress,\n\t});\n\tconst { data: currencies } = useCurrencies({ chainId });\n\tconst {\n\t\tonUnknownError,\n\t\tonSuccess,\n\t}: { onUnknownError?: Function; onSuccess?: Function } =\n\t\tsellModal$.state.get().messages?.sellCollectible || {};\n\n\tconst { sendTransactionAsync, isPending: sendTransactionPending } =\n\t\tuseSendTransaction();\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\n\tfunction setSellStep() {\n\t\tsellModal$.steps.sell.set({\n\t\t\tpending:\n\t\t\t\tsellModal$.steps._currentStep.get() === 'sell' &&\n\t\t\t\t(generateSellTransactionPending || sendTransactionPending),\n\t\t\texecute: () => {\n\t\t\t\tsellModal$.steps._currentStep.set('sell');\n\t\t\t\tconst { collectionAddress, order } = sellModal$.state.get();\n\t\t\t\tgenerateSellTransactionAsync({\n\t\t\t\t\tcollectionAddress: collectionAddress,\n\t\t\t\t\tseller: address as string,\n\t\t\t\t\tmarketplace: order!.marketplace,\n\t\t\t\t\tordersData: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...order!,\n\t\t\t\t\t\t\tquantity: '1',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tadditionalFees: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tamount: String(order!.feeBps),\n\t\t\t\t\t\t\treceiver: order!.feeBreakdown[0].recipientAddress,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t})\n\t\t\t\t\t.then(async (response) => {\n\t\t\t\t\t\tconst step = response.steps.find((s) => s.id === StepType.sell);\n\t\t\t\t\t\tif (!step) throw new Error('No steps found');\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst hash = await sendTransactionAsync({\n\t\t\t\t\t\t\t\tto: step.to as Hex,\n\t\t\t\t\t\t\t\tchainId: Number(chainId),\n\t\t\t\t\t\t\t\tdata: step.data as Hex,\n\t\t\t\t\t\t\t\tvalue: BigInt(step.value || '0'),\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tsellModal$.hash.set(hash);\n\n\t\t\t\t\t\t\tsellModal$.steps._currentStep.set(null);\n\n\t\t\t\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\t\t\t\thash: hash!,\n\t\t\t\t\t\t\t\tprice: {\n\t\t\t\t\t\t\t\t\tamountRaw: order!.priceAmount,\n\t\t\t\t\t\t\t\t\tcurrency: currencies!.find(\n\t\t\t\t\t\t\t\t\t\t(currency) =>\n\t\t\t\t\t\t\t\t\t\t\tcurrency.contractAddress === order!.priceCurrencyAddress,\n\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\tcollectionAddress,\n\t\t\t\t\t\t\t\tchainId,\n\t\t\t\t\t\t\t\ttokenId,\n\t\t\t\t\t\t\t\tgetTitle: getSellTransactionTitle,\n\t\t\t\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\t\t\t\tgetSellTransactionMessage(params, collectible?.name || ''),\n\t\t\t\t\t\t\t\ttype: StepType.sell,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tsellModal$.close();\n\n\t\t\t\t\t\t\tonSuccess && onSuccess();\n\t\t\t\t\t\t} catch (error) {}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tonUnknownError && onUnknownError(error);\n\t\t\t\t\t});\n\t\t\t},\n\t\t});\n\t}\n\n\twhen(currencies && collectible, setSellStep);\n\n\tif (generateSellTransactionError) {\n\t\tonUnknownError && onUnknownError(generateSellTransactionError);\n\t}\n};\n","import {\n\ttype ChainId,\n\ttype GenerateSellTransactionArgs,\n\tgetMarketplaceClient,\n} from '@internal';\nimport { useMutation } from '@tanstack/react-query';\nimport type { SdkConfig } from '@types';\nimport { useConfig } from './useConfig';\n\nexport type UseGenerateSellTransactionArgs = {\n\tchainId: ChainId;\n\tonSuccess?: () => void | Promise<void>;\n};\n\nexport const generateSellTransaction = async (\n\targs: GenerateSellTransactionArgs,\n\tconfig: SdkConfig,\n\tchainId: ChainId,\n) => {\n\tconsole.log('generateSellTransaction');\n\tconsole.log(args);\n\tconsole.log(chainId);\n\tconst marketplaceClient = getMarketplaceClient(chainId, config);\n\treturn marketplaceClient.generateSellTransaction(args);\n};\n\nexport const useGenerateSellTransaction = (\n\tparams: UseGenerateSellTransactionArgs,\n) => {\n\tconst config = useConfig();\n\n\tconst { mutate, mutateAsync, ...result } = useMutation({\n\t\tonSuccess: params.onSuccess,\n\t\tmutationFn: (args: GenerateSellTransactionArgs) =>\n\t\t\tgenerateSellTransaction(args, config, params.chainId),\n\t});\n\n\treturn {\n\t\t...result,\n\t\tgenerateSellTransaction: mutate,\n\t\tgenerateSellTransactionAsync: mutateAsync,\n\t};\n};\n","import type { ConfirmationStatus } from '../../_internal/components/transactionStatusModal/store';\n\nexport const getSellTransactionTitle = (params: ConfirmationStatus) => {\n\tif (params.isConfirmed) {\n\t\treturn 'Your sale has processed';\n\t}\n\n\tif (params.isFailed) {\n\t\treturn 'Your sale has failed';\n\t}\n\n\treturn 'Your sale is processing';\n};\n\nexport const getSellTransactionMessage = (\n\tparams: ConfirmationStatus,\n\tcollectibleName: string,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn `You just sold ${collectibleName}. It’s been confirmed on the blockchain!`;\n\t}\n\n\tif (params.isFailed) {\n\t\treturn `Your sale of ${collectibleName} has failed. Please try again.`;\n\t}\n\n\treturn `You just sold ${collectibleName}. It should be confirmed on the blockchain shortly.`;\n};\n","import {\n\tActionModal,\n\ttype ActionModalProps,\n} from '../_internal/components/actionModal/ActionModal';\nimport { sellModal$, useHydrate } from './_store';\nimport { observer, Show } from '@legendapp/state/react';\nimport { useCollection } from '@react-hooks/useCollection';\nimport type { Order, Price } from '@types';\nimport TransactionHeader from '../_internal/components/transactionHeader';\nimport TokenPreview from '../_internal/components/tokenPreview';\nimport TransactionDetails from '../_internal/components/transactionDetails';\nimport { useCurrencies } from '@react-hooks/useCurrencies';\nimport { useAccount } from 'wagmi';\nimport { useSwitchChainModal } from '../_internal/components/switchChainModal';\nimport type { Messages } from '../../../../types/messages';\n\nexport type ShowSellModalArgs = {\n\tchainId: string;\n\tcollectionAddress: string;\n\ttokenId: string;\n\torder: Order;\n\tcollectibleName: string | undefined;\n\tmessages?: Messages;\n};\n\nexport const useSellModal = () => {\n\tconst { chainId: accountChainId } = useAccount();\n\tconst { show: showSwitchNetworkModal } = useSwitchChainModal();\n\n\tconst openModal = (args: ShowSellModalArgs) => {\n\t\tsellModal$.open(args);\n\t};\n\n\tconst handleShowModal = (args: ShowSellModalArgs) => {\n\t\tconst isSameChain = accountChainId === Number(args.chainId);\n\n\t\tif (!isSameChain) {\n\t\t\tshowSwitchNetworkModal({\n\t\t\t\tchainIdToSwitchTo: Number(args.chainId),\n\t\t\t\tonSwitchChain: () => openModal(args),\n\t\t\t\tmessages: args.messages?.switchChain,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\topenModal(args);\n\t};\n\n\treturn {\n\t\tshow: handleShowModal,\n\t\tclose: () => sellModal$.close(),\n\t};\n};\n\nexport const SellModal = () => {\n\treturn (\n\t\t<Show if={sellModal$.isOpen}>\n\t\t\t<Modal />\n\t\t</Show>\n\t);\n};\n\nconst Modal = () => {\n\tuseHydrate();\n\treturn <ModalContent />;\n};\n\nconst ModalContent = observer(() => {\n\tconst modalState = sellModal$.state.get();\n\tconst { collectionAddress, chainId, tokenId, order } = modalState;\n\n\tconst { steps } = sellModal$.get();\n\n\tconst { data: collection } = useCollection({ chainId, collectionAddress });\n\tconst { data: currencies } = useCurrencies({ chainId, collectionAddress });\n\tconst currency = currencies?.find(\n\t\t(currency) => currency.contractAddress === order?.priceCurrencyAddress,\n\t);\n\n\tconst ctas = [\n\t\t{\n\t\t\tlabel: 'Approve TOKEN',\n\t\t\tonClick: steps.tokenApproval.execute,\n\t\t\thidden: !steps.tokenApproval.isNeeded(),\n\t\t\tpending: steps.tokenApproval.pending,\n\t\t\tvariant: 'glass' as const,\n\t\t},\n\t\t{\n\t\t\tlabel: 'Accept',\n\t\t\tonClick: steps.sell.execute,\n\t\t\tpending: steps.sell.pending,\n\t\t\tdisabled: steps.tokenApproval.isNeeded(),\n\t\t},\n\t] satisfies ActionModalProps['ctas'];\n\n\treturn (\n\t\t<ActionModal\n\t\t\tstore={sellModal$}\n\t\t\tonClose={() => sellModal$.close()}\n\t\t\ttitle=\"You have an offer\"\n\t\t\tctas={ctas}\n\t\t>\n\t\t\t<TransactionHeader\n\t\t\t\ttitle=\"Offer received\"\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tdate={order && new Date(order.createdAt)}\n\t\t\t/>\n\t\t\t<TokenPreview\n\t\t\t\tcollectionName={collection?.name}\n\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\tcollectibleId={tokenId}\n\t\t\t\tchainId={chainId}\n\t\t\t/>\n\t\t\t<TransactionDetails\n\t\t\t\tcollectibleId={tokenId}\n\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\tchainId={chainId}\n\t\t\t\tprice={\n\t\t\t\t\tcurrency\n\t\t\t\t\t\t? ({ amountRaw: order?.priceAmount, currency } as Price)\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t/>\n\t\t</ActionModal>\n\t);\n});\n","import { Box, NetworkImage, Skeleton, Text } from '@0xsequence/design-system';\nimport { formatDistanceToNow } from 'date-fns';\n\ntype TransactionHeaderProps = {\n\ttitle: string;\n\tchainId: number;\n\tdate?: Date;\n};\n\nexport default function TransactionHeader({\n\ttitle,\n\tchainId,\n\tdate,\n}: TransactionHeaderProps) {\n\treturn (\n\t\t<Box display=\"flex\" alignItems=\"center\" width=\"full\">\n\t\t\t<Text fontSize=\"small\" fontWeight=\"medium\" color=\"text80\" marginRight=\"1\">\n\t\t\t\t{title}\n\t\t\t</Text>\n\n\t\t\t<NetworkImage size=\"xs\" chainId={chainId} />\n\n\t\t\t{(date && (\n\t\t\t\t<Text fontSize=\"small\" color=\"text50\" flexGrow=\"1\" textAlign=\"right\">\n\t\t\t\t\t{formatDistanceToNow(date)} ago\n\t\t\t\t</Text>\n\t\t\t)) || <Skeleton width=\"8\" height=\"4\" />}\n\t\t</Box>\n\t);\n}\n","import type { ComponentType } from 'react';\n\nimport type { IconProps } from '@0xsequence/design-system';\nimport type { TokenMetadata } from '@internal';\nimport { observable } from '@legendapp/state';\n\nexport interface SuccessfulPurchaseModalState {\n\tisOpen: boolean;\n\topen: (args: SuccessfulPurchaseModalState['state']) => void;\n\tclose: () => void;\n\tstate: {\n\t\tcollectibles: TokenMetadata[];\n\t\ttotalPrice: string;\n\t\texplorerName: string;\n\t\texplorerUrl: string;\n\t\tctaOptions?: {\n\t\t\tctaLabel: string;\n\t\t\tctaOnClick: () => void;\n\t\t\tctaIcon?: ComponentType<IconProps>;\n\t\t};\n\t};\n}\n\nconst initialState: SuccessfulPurchaseModalState = {\n\tisOpen: false,\n\topen: ({\n\t\tcollectibles,\n\t\ttotalPrice,\n\t\texplorerName,\n\t\texplorerUrl,\n\t\tctaOptions,\n\t}: SuccessfulPurchaseModalState['state']) => {\n\t\tsuccessfulPurchaseModal$.state.set({\n\t\t\t...successfulPurchaseModal$.state.get(),\n\t\t\tcollectibles,\n\t\t\ttotalPrice,\n\t\t\texplorerName,\n\t\t\texplorerUrl: explorerUrl,\n\t\t\tctaOptions,\n\t\t});\n\t\tsuccessfulPurchaseModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tsuccessfulPurchaseModal$.isOpen.set(false);\n\t\tsuccessfulPurchaseModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t},\n\tstate: {\n\t\tcollectibles: [],\n\t\ttotalPrice: '0',\n\t\texplorerName: '',\n\t\texplorerUrl: '',\n\t\tctaOptions: undefined,\n\t},\n};\n\nexport const successfulPurchaseModal$ = observable(initialState);\n","'use client';\n\nimport {\n\tsuccessfulPurchaseModal$,\n\ttype SuccessfulPurchaseModalState,\n} from './_store';\nimport {\n\tcloseButton,\n\tcollectiblesGrid,\n\tcollectiblesGridItem,\n\tcollectiblesGridImage,\n\tcollectiblesGridImagePale,\n\tdialogContent,\n\tdialogOverlay,\n} from './styles.css';\nimport {\n\tBox,\n\tButton,\n\tCloseIcon,\n\tExternalLinkIcon,\n\tIconButton,\n\tImage,\n\tText,\n} from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport type { TokenMetadata } from '@types';\n\nexport const useSuccessfulPurchaseModal = () => {\n\treturn {\n\t\tshow: (args: SuccessfulPurchaseModalState['state']) =>\n\t\t\tsuccessfulPurchaseModal$.open(args),\n\t\tclose: () => successfulPurchaseModal$.close(),\n\t};\n};\n\nconst SuccessfulPurchaseModal = observer(() => {\n\treturn (\n\t\t<Root open={successfulPurchaseModal$.isOpen.get()}>\n\t\t\t<Portal>\n\t\t\t\t<Overlay className={dialogOverlay} />\n\n\t\t\t\t<Content className={dialogContent.narrow}>\n\t\t\t\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"4\" width=\"full\">\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\tfontSize=\"medium\"\n\t\t\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\t\t\tcolor=\"text100\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSuccessful purchase!\n\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t<CollectiblesGrid\n\t\t\t\t\t\t\tcollectibles={successfulPurchaseModal$.state.get().collectibles}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"1\">\n\t\t\t\t\t\t\t<Text fontSize=\"normal\" fontWeight=\"medium\" color=\"text80\">\n\t\t\t\t\t\t\t\tYou bought\n\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t<Text fontSize=\"normal\" fontWeight=\"medium\" color=\"text100\">\n\t\t\t\t\t\t\t\t{successfulPurchaseModal$.state.get().collectibles.length}\n\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t<Text fontSize=\"normal\" fontWeight=\"medium\" color=\"text80\">\n\t\t\t\t\t\t\t\titems for\n\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t<Text fontSize=\"normal\" fontWeight=\"medium\" color=\"text100\">\n\t\t\t\t\t\t\t\t{successfulPurchaseModal$.state.get().totalPrice}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Box>\n\n\t\t\t\t\t\t<SuccessfulPurchaseActions />\n\t\t\t\t\t</Box>\n\n\t\t\t\t\t<Close\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tsuccessfulPurchaseModal$.close();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={closeButton}\n\t\t\t\t\t\tasChild\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconButton size=\"xs\" aria-label=\"Close modal\" icon={CloseIcon} />\n\t\t\t\t\t</Close>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n});\n\nfunction SuccessfulPurchaseActions() {\n\treturn (\n\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"2\">\n\t\t\t{successfulPurchaseModal$.state.ctaOptions.get() && (\n\t\t\t\t<Button\n\t\t\t\t\tshape=\"square\"\n\t\t\t\t\tleftIcon={\n\t\t\t\t\t\tsuccessfulPurchaseModal$.state.ctaOptions.ctaIcon.get() || undefined\n\t\t\t\t\t}\n\t\t\t\t\tlabel={successfulPurchaseModal$.state.ctaOptions.ctaLabel.get()}\n\t\t\t\t\twidth=\"full\"\n\t\t\t\t\tonClick={\n\t\t\t\t\t\tsuccessfulPurchaseModal$.state.ctaOptions.ctaOnClick.get() ||\n\t\t\t\t\t\tundefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<Button\n\t\t\t\tas={'a'}\n\t\t\t\thref={successfulPurchaseModal$.state.explorerUrl.get()}\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\tshape=\"square\"\n\t\t\t\tleftIcon={ExternalLinkIcon}\n\t\t\t\tlabel={`View on ${successfulPurchaseModal$.state.explorerName.get()}`}\n\t\t\t\twidth=\"full\"\n\t\t\t/>\n\t\t</Box>\n\t);\n}\n\nfunction CollectiblesGrid({ collectibles }: { collectibles: TokenMetadata[] }) {\n\tconst total = collectibles.length;\n\tconst shownCollectibles = total > 4 ? collectibles.slice(0, 4) : collectibles;\n\n\treturn (\n\t\t<Box className={collectiblesGrid} display={'grid'} gap={'2'}>\n\t\t\t{shownCollectibles.map((collectible) => {\n\t\t\t\tconst showPlus = total > 4 && collectibles.indexOf(collectible) === 3;\n\n\t\t\t\treturn (\n\t\t\t\t\t<Box\n\t\t\t\t\t\tkey={collectible.tokenId}\n\t\t\t\t\t\tclassName={collectiblesGridItem}\n\t\t\t\t\t\tposition=\"relative\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tsrc={collectible.image}\n\t\t\t\t\t\t\talt={collectible.name}\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tshowPlus ? collectiblesGridImagePale : collectiblesGridImage\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taspectRatio=\"1/1\"\n\t\t\t\t\t\t\tbackground=\"backgroundSecondary\"\n\t\t\t\t\t\t\tborderRadius=\"sm\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{showPlus && (\n\t\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\t\t\t\ttop=\"0\"\n\t\t\t\t\t\t\t\tleft=\"0\"\n\t\t\t\t\t\t\t\tright=\"0\"\n\t\t\t\t\t\t\t\tbottom=\"0\"\n\t\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\t\tbackground=\"backgroundOverlay\"\n\t\t\t\t\t\t\t\tbackdropFilter=\"blur\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\t\t\t\t\tcolor=\"text80\"\n\t\t\t\t\t\t\t\t\tpaddingX=\"2\"\n\t\t\t\t\t\t\t\t\tpaddingY=\"1.5\"\n\t\t\t\t\t\t\t\t\tborderRadius=\"sm\"\n\t\t\t\t\t\t\t\t\tbackground=\"backgroundSecondary\"\n\t\t\t\t\t\t\t\t\tbackdropFilter=\"blur\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{total} TOTAL\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t);\n\t\t\t})}\n\t\t</Box>\n\t);\n}\n\nexport default SuccessfulPurchaseModal;\n","import { observable } from '@legendapp/state';\nimport type { ShowTransferModalArgs } from '.';\nimport type { Hex } from 'viem';\nimport type { Messages } from '../../../../types/messages';\nimport type { CollectionType } from '@internal';\n\nexport interface TransferModalState {\n\tisOpen: boolean;\n\topen: (args: ShowTransferModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\tchainId: string;\n\t\tcollectionAddress: Hex;\n\t\tcollectionType?: CollectionType | undefined;\n\t\ttokenId: string;\n\t\tquantity: string;\n\t\treceiverAddress: string;\n\t\tmessages?: Messages;\n\t};\n\tview: 'enterReceiverAddress' | 'followWalletInstructions' | undefined;\n\thash: Hex | undefined;\n}\n\nexport const initialState: TransferModalState = {\n\tisOpen: false,\n\topen: ({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\ttokenId,\n\t\tmessages,\n\t}: ShowTransferModalArgs) => {\n\t\ttransferModal$.state.set({\n\t\t\t...transferModal$.state.get(),\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\ttokenId,\n\t\t\tmessages,\n\t\t});\n\t\ttransferModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\ttransferModal$.isOpen.set(false);\n\t\ttransferModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t},\n\tstate: {\n\t\treceiverAddress: '',\n\t\tcollectionAddress: '0x',\n\t\tchainId: '',\n\t\ttokenId: '',\n\t\tquantity: '1',\n\t},\n\tview: 'enterReceiverAddress',\n\thash: undefined,\n};\n\nexport const transferModal$ = observable(initialState);\n","import { transferModal$ } from './_store';\nimport { closeButton, dialogOverlay, transferModalContent } from './styles.css';\nimport { CloseIcon, IconButton } from '@0xsequence/design-system';\nimport { observer, Show } from '@legendapp/state/react';\nimport { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport { useAccount } from 'wagmi';\nimport { useSwitchChainModal } from '../_internal/components/switchChainModal';\nimport type { Messages } from '../../../../types/messages';\nimport type { Hex } from 'viem';\nimport EnterWalletAddressView from './_views/enterWalletAddress';\nimport FollowWalletInstructionsView from './_views/followWalletInstructions';\n\nexport type ShowTransferModalArgs = {\n\tcollectionAddress: Hex;\n\ttokenId: string;\n\tchainId: string;\n\tmessages?: Messages;\n};\n\nexport const useTransferModal = () => {\n\tconst { chainId: accountChainId } = useAccount();\n\tconst { show: showSwitchNetworkModal } = useSwitchChainModal();\n\n\tconst openModal = (args: ShowTransferModalArgs) => {\n\t\ttransferModal$.open(args);\n\t};\n\n\tconst handleShowModal = (args: ShowTransferModalArgs) => {\n\t\tconst isSameChain = accountChainId === Number(args.chainId);\n\n\t\tif (!isSameChain) {\n\t\t\tshowSwitchNetworkModal({\n\t\t\t\tchainIdToSwitchTo: Number(args.chainId),\n\t\t\t\tonSwitchChain: () => openModal(args),\n\t\t\t\tmessages: args.messages?.switchChain,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\topenModal(args);\n\t};\n\n\treturn {\n\t\tshow: handleShowModal,\n\t\tclose: () => transferModal$.close(),\n\t};\n};\n\nexport const TransferModal = () => {\n\treturn (\n\t\t<Show if={transferModal$.isOpen}>\n\t\t\t<Modal />\n\t\t</Show>\n\t);\n};\n\nconst Modal = () => {\n\treturn <ModalContent />;\n};\n\nconst ModalContent = observer(() => {\n\treturn (\n\t\t<Root open={true}>\n\t\t\t<Portal>\n\t\t\t\t<Overlay className={dialogOverlay} />\n\n\t\t\t\t<Content className={transferModalContent}>\n\t\t\t\t\t<TransactionModalView />\n\n\t\t\t\t\t<Close onClick={transferModal$.close} className={closeButton} asChild>\n\t\t\t\t\t\t<IconButton size=\"xs\" aria-label=\"Close modal\" icon={CloseIcon} />\n\t\t\t\t\t</Close>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n});\n\nconst TransactionModalView = observer(() => {\n\tconst { view } = transferModal$.get();\n\n\tswitch (view) {\n\t\tcase 'enterReceiverAddress':\n\t\t\treturn <EnterWalletAddressView />;\n\n\t\tcase 'followWalletInstructions':\n\t\t\treturn <FollowWalletInstructionsView />;\n\n\t\tdefault:\n\t\t\treturn null;\n\t}\n});\n","import type { TransferModalState } from './_store';\n\ntype MessageKey = NonNullable<TransferModalState['view']>;\n\nconst baseMessages: Record<MessageKey, string> = {\n\tenterReceiverAddress:\n\t\t\"Items sent to the wrong wallet address can't be recovered!\",\n\tfollowWalletInstructions:\n\t\t\"Follow your wallet's instructions to submit a transaction to transfer your assets.\",\n};\n\nexport default function getMessage(key: MessageKey): string {\n\treturn baseMessages[key];\n}\n","import { useCollection } from '@react-hooks/useCollection';\nimport AlertMessage from '../../../_internal/components/alertMessage';\nimport QuantityInput from '../../../_internal/components/quantityInput';\nimport { transferModal$ } from '../../_store';\nimport getMessage from '../../messages';\nimport { Box, Button, Text, TextInput } from '@0xsequence/design-system';\nimport { isAddress } from 'viem';\nimport { type CollectionType, ContractType } from '@internal';\nimport { useTokenBalances } from '@react-hooks/useListBalances';\nimport { useAccount } from 'wagmi';\n\nconst EnterWalletAddressView = () => {\n\tconst { address } = useAccount();\n\tconst { collectionAddress, chainId, tokenId, collectionType } =\n\t\ttransferModal$.state.get();\n\tconst $quantity = transferModal$.state.quantity;\n\tconst isWalletAddressValid = isAddress(\n\t\ttransferModal$.state.receiverAddress.get(),\n\t);\n\tconst { data: tokenBalance } = useTokenBalances({\n\t\tchainId,\n\t\tcontractAddress: collectionAddress,\n\t\ttokenId,\n\t\taccountAddress: address,\n\t});\n\tconst balanceAmount = tokenBalance?.pages[0].balances[0].balance;\n\tconst { data: collection } = useCollection({\n\t\tcollectionAddress,\n\t\tchainId,\n\t});\n\ttransferModal$.state.collectionType.set(\n\t\tcollection?.type as CollectionType | undefined,\n\t);\n\tconst insufficientBalance: boolean = $quantity.get() > balanceAmount!;\n\n\tfunction handleChangeWalletAddress(\n\t\tevent: React.ChangeEvent<HTMLInputElement>,\n\t) {\n\t\ttransferModal$.state.receiverAddress.set(event.target.value);\n\t}\n\n\tfunction handleChangeView() {\n\t\ttransferModal$.view.set('followWalletInstructions');\n\t}\n\n\treturn (\n\t\t<Box display=\"grid\" gap=\"6\" flexGrow=\"1\">\n\t\t\t<Text color=\"white\" fontSize=\"large\" fontWeight=\"bold\">\n\t\t\t\tTransfer your item\n\t\t\t</Text>\n\n\t\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"3\">\n\t\t\t\t<AlertMessage\n\t\t\t\t\tmessage={getMessage('enterReceiverAddress')}\n\t\t\t\t\ttype=\"warning\"\n\t\t\t\t/>\n\n\t\t\t\t<TextInput\n\t\t\t\t\tlabel=\"Wallet address\"\n\t\t\t\t\tlabelLocation=\"top\"\n\t\t\t\t\tvalue={transferModal$.state.receiverAddress.get()}\n\t\t\t\t\tonChange={handleChangeWalletAddress}\n\t\t\t\t\tname=\"walletAddress\"\n\t\t\t\t\tplaceholder=\"Enter wallet address of recipient\"\n\t\t\t\t/>\n\n\t\t\t\t{collectionType === ContractType.ERC1155 && balanceAmount && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<QuantityInput\n\t\t\t\t\t\t\t$quantity={$quantity}\n\t\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\t\tcollectibleId={tokenId}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tcolor={insufficientBalance ? 'negative' : 'text50'}\n\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{`You have ${balanceAmount} of this item`}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Box>\n\n\t\t\t<Button\n\t\t\t\tonClick={handleChangeView}\n\t\t\t\tdisabled={!isWalletAddressValid || insufficientBalance}\n\t\t\t\ttitle=\"Transfer\"\n\t\t\t\tlabel=\"Transfer\"\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tshape=\"square\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tjustifySelf=\"flex-end\"\n\t\t\t\tpaddingX=\"10\"\n\t\t\t/>\n\t\t</Box>\n\t);\n};\n\nexport default EnterWalletAddressView;\n","import { observer } from '@legendapp/state/react';\nimport AlertMessage from '../../../_internal/components/alertMessage';\nimport getMessage from '../../messages';\nimport { Box, Button, Text } from '@0xsequence/design-system';\nimport { ContractType } from '@internal';\nimport { transferModal$ } from '../../_store';\nimport { useCollection } from '@react-hooks/useCollection';\nimport { useTransferTokens } from '@react-hooks/useTransferTokens';\nimport type { Hex } from 'viem';\nimport { useTransactionStatusModal } from '../../../_internal/components/transactionStatusModal';\nimport {\n\tgetTransferTransactionMessage,\n\tgetTransferTransactionTitle,\n} from '../../_utils/getTransferTransactionTitleMessage';\nimport { useCollectible } from '@react-hooks/useCollectible';\nimport { useEffect } from 'react';\n\nconst FollowWalletInstructionsView = observer(() => {\n\tconst {\n\t\treceiverAddress,\n\t\tcollectionAddress,\n\t\ttokenId,\n\t\tquantity,\n\t\tchainId,\n\t\tmessages,\n\t} = transferModal$.state.get();\n\tconst { transferTokensAsync, hash } = useTransferTokens();\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\tconst { data: collection, isSuccess: collectionSuccess } = useCollection({\n\t\tcollectionAddress,\n\t\tchainId,\n\t});\n\tconst { data: collectible, isSuccess: collectibleSuccess } = useCollectible({\n\t\tcollectionAddress,\n\t\tcollectibleId: tokenId,\n\t\tchainId,\n\t});\n\n\tuseEffect(() => {\n\t\tif (!hash && collectionSuccess) {\n\t\t\ttransfer();\n\t\t}\n\t}, [collectionSuccess, collectibleSuccess, hash]);\n\n\tasync function transfer() {\n\t\tif (collection!.type === ContractType.ERC721) {\n\t\t\ttry {\n\t\t\t\tconst hash = await transferTokensAsync({\n\t\t\t\t\treceiverAddress: receiverAddress as Hex,\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\ttokenId,\n\t\t\t\t\tchainId,\n\t\t\t\t\tcontractType: ContractType.ERC721,\n\t\t\t\t});\n\n\t\t\t\ttransferModal$.close();\n\n\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\thash: hash,\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\tchainId,\n\t\t\t\t\ttokenId,\n\t\t\t\t\tprice: undefined,\n\t\t\t\t\tgetTitle: getTransferTransactionTitle,\n\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\tgetTransferTransactionMessage(params, collectible!.name),\n\t\t\t\t\ttype: 'transfer',\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tmessages?.transferCollectibles?.onUnknownError &&\n\t\t\t\t\tmessages.transferCollectibles.onUnknownError(error);\n\t\t\t}\n\t\t}\n\n\t\ttry {\n\t\t\tconst hash = await transferTokensAsync({\n\t\t\t\treceiverAddress: receiverAddress as Hex,\n\t\t\t\tcollectionAddress,\n\t\t\t\ttokenId,\n\t\t\t\tchainId,\n\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\tquantity: String(quantity),\n\t\t\t});\n\n\t\t\ttransferModal$.close();\n\n\t\t\tshowTransactionStatusModal({\n\t\t\t\thash: hash,\n\t\t\t\tcollectionAddress,\n\t\t\t\tchainId,\n\t\t\t\ttokenId,\n\t\t\t\tprice: undefined,\n\t\t\t\tgetTitle: getTransferTransactionTitle,\n\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\tgetTransferTransactionMessage(params, collectible!.name),\n\t\t\t\ttype: 'transfer',\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tmessages?.transferCollectibles?.onUnknownError &&\n\t\t\t\tmessages.transferCollectibles.onUnknownError(error);\n\t\t}\n\t}\n\treturn (\n\t\t<Box display=\"grid\" gap=\"6\" flexGrow=\"1\">\n\t\t\t<Text color=\"white\" fontSize=\"large\" fontWeight=\"bold\">\n\t\t\t\tTransfer your item\n\t\t\t</Text>\n\n\t\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"3\">\n\t\t\t\t<AlertMessage\n\t\t\t\t\tmessage={getMessage('followWalletInstructions')}\n\t\t\t\t\ttype=\"info\"\n\t\t\t\t/>\n\t\t\t</Box>\n\n\t\t\t<Button\n\t\t\t\tdisabled={true}\n\t\t\t\ttitle=\"Transfer\"\n\t\t\t\tlabel=\"Transfer\"\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tshape=\"square\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tjustifySelf=\"flex-end\"\n\t\t\t\tpaddingX=\"10\"\n\t\t\t/>\n\t\t</Box>\n\t);\n});\n\nexport default FollowWalletInstructionsView;\n","import type { ConfirmationStatus } from '../../_internal/components/transactionStatusModal/store';\n\nexport const getTransferTransactionTitle = (params: ConfirmationStatus) => {\n\tif (params.isConfirmed) {\n\t\treturn 'Transfer has processed';\n\t}\n\n\tif (params.isFailed) {\n\t\treturn 'Transfer has failed';\n\t}\n\n\treturn 'Transfer is processing';\n};\n\nexport const getTransferTransactionMessage = (\n\tparams: ConfirmationStatus,\n\tcollectibleName: string,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn `You just tranferred ${collectibleName}. It’s been confirmed on the blockchain!`;\n\t}\n\n\tif (params.isFailed) {\n\t\treturn `Transferring ${collectibleName} has failed. Please try again.`;\n\t}\n\n\treturn `You just transferred ${collectibleName}. It should be confirmed on the blockchain shortly.`;\n};\n"],"mappings":"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","names":["observer","Text","jsx","jsxs","Text","observer","observable","initialState","getMessage","Close","Content","Overlay","Portal","Root","closeButton","dialogOverlay","CloseIcon","IconButton","Text","Box","Text","Box","Text","jsx","observer","jsx","jsxs","observer","Box","Text","Box","Spinner","Text","jsx","jsxs","jsx","jsxs","observer","getMessage","Root","Portal","Overlay","dialogOverlay","Content","Text","Close","closeButton","IconButton","CloseIcon","Box","Button","Text","observable","observer","jsx","jsxs","observer","AccountModal","jsxs","Box","jsx","Text","Button","Box","observer","useState","Box","Text","observer","Button","Content","Portal","Root","jsx","jsx","jsxs","Root","Button","Portal","Content","jsx","jsxs","observer","ExpirationDateSelect","useState","Box","Text","Text","jsx","Text","Box","observer","useState","Box","Select","Skeleton","observer","useEffect","useState","jsx","observer","CurrencyOptionsSelect","useState","useEffect","Skeleton","value","Box","Select","jsx","jsxs","observer","PriceInput","useState","Box","Box","IconButton","NumericInput","jsx","jsxs","Box","NumericInput","IconButton","Box","Image","Skeleton","Text","jsx","jsxs","Box","Skeleton","Image","Text","Box","NetworkImage","Skeleton","Text","formatUnits","jsx","jsxs","Box","Text","NetworkImage","Skeleton","observable","addDays","useAccount","initialState","addDays","observable","useAccount","useAccount","jsx","jsxs","useAccount","Modal","observer","Box","Show","observer","parseUnits","useAccount","observable","when","useMount","useSelector","addDays","parseUnits","useAccount","useSendTransaction","initialState","addDays","observable","exp","useHydrate","useSelector","when","useTokenApprovalHandler","useAccount","useMount","useSendTransaction","parseUnits","jsx","jsxs","useAccount","Show","Modal","useHydrate","ModalContent","observer","parseUnits","observable","when","useMount","useSelector","useAccount","useSendTransaction","initialState","observable","useHydrate","useSelector","useTokenApprovalHandler","useAccount","useMount","when","useSendTransaction","collectionAddress","observer","Show","Box","NetworkImage","Skeleton","Text","formatDistanceToNow","jsx","jsxs","useAccount","jsx","jsxs","useAccount","Show","Modal","useHydrate","ModalContent","observer","currency","observable","initialState","Box","Button","CloseIcon","IconButton","Image","Text","observer","Close","Content","Overlay","Portal","Root","jsx","jsxs","dialogOverlay","closeButton","observable","initialState","CloseIcon","IconButton","observer","Show","Close","Content","Overlay","Portal","Root","useAccount","Box","Button","Text","useAccount","jsx","jsxs","Box","Text","Button","observer","Box","Button","Text","useEffect","jsx","jsxs","observer","hash","Box","Text","Button","jsx","jsxs","useAccount","Show","Modal","ModalContent","observer","Root","Portal","Overlay","dialogOverlay","Content","Close","closeButton","IconButton","CloseIcon","Fragment","jsx","jsxs","observer"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
// src/react/_internal/get-provider.ts
|
|
4
|
+
var PROVIDER_ID = "sdk-provider";
|
|
5
|
+
function getProviderEl() {
|
|
6
|
+
if (!globalThis.document) return null;
|
|
7
|
+
return document.getElementById(PROVIDER_ID);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
PROVIDER_ID,
|
|
12
|
+
getProviderEl
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=chunk-STO74F2I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/_internal/get-provider.ts"],"sourcesContent":["export const PROVIDER_ID = 'sdk-provider';\n\nexport function getProviderEl() {\n\tif (!globalThis.document) return null;\n\treturn document.getElementById(PROVIDER_ID);\n}\n"],"mappings":";;;AAAO,IAAM,cAAc;AAEpB,SAAS,gBAAgB;AAC/B,MAAI,CAAC,WAAW,SAAU,QAAO;AACjC,SAAO,SAAS,eAAe,WAAW;AAC3C;","names":[]}
|