@0xsequence/marketplace-sdk 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-ZWIRTV7A.js → chunk-4VS5NKDD.js} +2 -2
- package/dist/{chunk-GSDUAHL3.js → chunk-6WB4GCCJ.js} +1 -1
- package/dist/chunk-6WB4GCCJ.js.map +1 -0
- package/dist/{chunk-MTFS5SED.js → chunk-6XUCLBZC.js} +3093 -2463
- package/dist/chunk-6XUCLBZC.js.map +1 -0
- package/dist/{chunk-T5T6JNB2.js → chunk-ATDCYXXV.js} +49 -49
- package/dist/chunk-ATDCYXXV.js.map +1 -0
- package/dist/{chunk-LSMQVX77.js → chunk-CP2IVRMX.js} +2 -2
- package/dist/{chunk-OPMDGQFB.js → chunk-DNDPYQKV.js} +20 -2
- package/dist/chunk-DNDPYQKV.js.map +1 -0
- package/dist/{chunk-WBJKZOQ7.js → chunk-GLOIEUWC.js} +225 -364
- package/dist/chunk-GLOIEUWC.js.map +1 -0
- package/dist/{chunk-4RKM3VUV.js → chunk-IQXJZBMR.js} +2 -2
- package/dist/{chunk-MQ5WSFDH.js → chunk-J4TRSLTB.js} +29 -4
- package/dist/chunk-J4TRSLTB.js.map +1 -0
- package/dist/chunk-LHN6EBLM.js +420 -0
- package/dist/chunk-LHN6EBLM.js.map +1 -0
- package/dist/{chunk-WQCWBXBM.js → chunk-PAZ4MQXZ.js} +1 -1
- package/dist/chunk-PAZ4MQXZ.js.map +1 -0
- package/dist/{chunk-S5IPE7TH.js → chunk-URX7ZHX4.js} +2 -2
- package/dist/chunk-Y75XGZOB.js +11 -0
- package/dist/chunk-Y75XGZOB.js.map +1 -0
- package/dist/{chunk-Q2BVDQ3G.js → chunk-ZEKRTFBU.js} +1 -1
- package/dist/{chunk-Q2BVDQ3G.js.map → chunk-ZEKRTFBU.js.map} +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +10 -8
- package/dist/index.js.map +1 -1
- package/dist/react/_internal/api/index.js +2 -2
- package/dist/react/_internal/index.d.ts +1 -1
- package/dist/react/_internal/index.js +4 -4
- package/dist/react/_internal/wagmi/index.js +2 -2
- package/dist/react/hooks/index.d.ts +54 -42
- package/dist/react/hooks/index.js +8 -6
- package/dist/react/index.css +24 -24
- package/dist/react/index.css.map +1 -1
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +11 -9
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/index.css +24 -24
- package/dist/react/ui/components/index.css.map +1 -1
- package/dist/react/ui/components/index.d.ts +1 -1
- package/dist/react/ui/components/index.js +11 -9
- package/dist/react/ui/icons/index.js +1 -1
- package/dist/react/ui/index.css +24 -24
- package/dist/react/ui/index.css.map +1 -1
- package/dist/react/ui/index.d.ts +5 -2
- package/dist/react/ui/index.js +11 -9
- package/dist/react/ui/modals/_internal/components/actionModal/index.css +46 -0
- package/dist/react/ui/modals/_internal/components/actionModal/index.css.map +1 -1
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +1 -1
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +11 -6
- package/dist/types/index.js +4 -4
- package/dist/{types-BlDoGvJV.d.ts → types-DZb7GsfL.d.ts} +10 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +2 -2
- package/package.json +1 -1
- package/src/consts.ts +3 -0
- package/src/react/_internal/transaction-machine/useTransactionMachine.ts +9 -12
- package/src/react/_internal/transaction-machine/useWallet.ts +58 -0
- package/src/react/_internal/transaction-machine/wallet.ts +60 -3
- package/src/react/_internal/types.ts +11 -0
- package/src/react/hooks/useCancelOrder.tsx +26 -30
- package/src/react/hooks/useCancelTransactionSteps.tsx +222 -0
- package/src/react/hooks/useGetReceiptFromHash.tsx +32 -0
- package/src/react/ui/modals/BuyModal/Modal.tsx +97 -0
- package/src/react/ui/modals/BuyModal/hooks/useBuyCollectable.ts +109 -0
- package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +50 -0
- package/src/react/ui/modals/BuyModal/hooks/useFees.ts +38 -0
- package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +58 -0
- package/src/react/ui/modals/BuyModal/index.tsx +3 -210
- package/src/react/ui/modals/BuyModal/modals/CheckoutModal.tsx +29 -0
- package/src/react/ui/modals/BuyModal/modals/Modal1155.tsx +84 -0
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +150 -207
- package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +62 -0
- package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +75 -0
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +216 -0
- package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
- package/src/react/ui/modals/CreateListingModal/store.ts +17 -9
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +173 -215
- package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +76 -0
- package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +62 -0
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +225 -0
- package/src/react/ui/modals/MakeOfferModal/store.ts +15 -2
- package/src/react/ui/modals/SellModal/Modal.tsx +117 -190
- package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +73 -0
- package/src/react/ui/modals/SellModal/hooks/useSell.tsx +65 -0
- package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +224 -0
- package/src/react/ui/modals/SellModal/store.ts +14 -1
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +26 -1
- package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +8 -10
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +9 -1
- package/src/react/ui/modals/_internal/components/priceInput/hooks/useBalanceCheck.ts +67 -0
- package/src/react/ui/modals/_internal/components/priceInput/hooks/usePriceInput.ts +54 -0
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +49 -62
- package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +9 -4
- package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +3 -3
- package/src/react/ui/modals/_internal/types.ts +1 -1
- package/src/react/ui/modals/modal-provider.tsx +1 -1
- package/src/utils/_internal/error/transaction.ts +21 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/chunk-GSDUAHL3.js.map +0 -1
- package/dist/chunk-MQ5WSFDH.js.map +0 -1
- package/dist/chunk-MTFS5SED.js.map +0 -1
- package/dist/chunk-OPMDGQFB.js.map +0 -1
- package/dist/chunk-T5T6JNB2.js.map +0 -1
- package/dist/chunk-WBJKZOQ7.js.map +0 -1
- package/dist/chunk-WQCWBXBM.js.map +0 -1
- package/src/react/hooks/useCreateListing.tsx +0 -125
- package/src/react/hooks/useMakeOffer.tsx +0 -122
- package/src/react/hooks/useSell.tsx +0 -121
- /package/dist/{chunk-ZWIRTV7A.js.map → chunk-4VS5NKDD.js.map} +0 -0
- /package/dist/{chunk-LSMQVX77.js.map → chunk-CP2IVRMX.js.map} +0 -0
- /package/dist/{chunk-4RKM3VUV.js.map → chunk-IQXJZBMR.js.map} +0 -0
- /package/dist/{chunk-S5IPE7TH.js.map → chunk-URX7ZHX4.js.map} +0 -0
- /package/src/react/ui/modals/BuyModal/{_store.ts → store.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/ui/modals/modal-provider.tsx","../src/react/ui/modals/Account/index.tsx","../src/react/ui/modals/MakeOfferModal/Modal.tsx","../src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx","../src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx","../src/react/ui/modals/_internal/components/transaction-footer/index.tsx","../src/react/ui/modals/_internal/components/transactionPreview/index.tsx","../src/react/ui/modals/_internal/components/timeAgo/index.tsx","../src/react/ui/modals/_internal/components/transactionStatusModal/store.ts","../src/react/ui/modals/_internal/components/transactionPreview/consts.ts","../src/react/ui/modals/_internal/components/transactionPreview/useTransactionPreviewTitle.tsx","../src/react/ui/modals/_internal/components/transactionStatusModal/styles.css.ts","../src/react/ui/modals/_internal/components/transactionStatusModal/util/getFormattedType.ts","../src/react/ui/modals/_internal/components/transactionStatusModal/util/getMessage.ts","../src/react/ui/modals/_internal/components/transactionStatusModal/util/getTitle.ts","../src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx","../src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx","../src/react/ui/modals/_internal/components/actionModal/ErrorModal.tsx","../src/react/ui/modals/_internal/components/actionModal/LoadingModal.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/currencyImage/index.tsx","../src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx","../src/react/ui/modals/_internal/components/priceInput/hooks/usePriceInput.ts","../src/react/ui/modals/_internal/components/priceInput/hooks/useBalanceCheck.ts","../src/react/ui/modals/_internal/components/quantityInput/index.tsx","../src/react/ui/modals/_internal/components/tokenPreview/index.tsx","../src/react/ui/modals/MakeOfferModal/store.ts","../src/react/ui/modals/SellModal/Modal.tsx","../src/react/ui/modals/_internal/components/transactionDetails/index.tsx","../src/react/ui/modals/_internal/components/transactionHeader/index.tsx","../src/react/ui/modals/SellModal/store.ts","../src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx","../src/react/ui/modals/BuyModal/hooks/useFees.ts","../src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx","../src/react/ui/modals/SellModal/hooks/useSell.tsx","../src/react/ui/modals/SuccessfulPurchaseModal/index.tsx","../src/react/ui/modals/SuccessfulPurchaseModal/_store.ts","../src/react/ui/modals/TransferModal/index.tsx","../src/react/ui/modals/TransferModal/_store.ts","../src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx","../src/react/ui/modals/TransferModal/messages.ts","../src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx","../src/react/ui/modals/TransferModal/_views/followWalletInstructions/index.tsx","../src/react/ui/modals/CreateListingModal/Modal.tsx","../src/react/ui/modals/CreateListingModal/store.ts","../src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx","../src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts","../src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx","../src/react/ui/modals/BuyModal/Modal.tsx","../src/react/ui/modals/BuyModal/store.ts","../src/react/ui/modals/BuyModal/modals/CheckoutModal.tsx","../src/react/ui/modals/BuyModal/modals/Modal1155.tsx","../src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts","../src/react/ui/modals/BuyModal/hooks/useLoadData.ts","../src/react/ui/modals/BuyModal/hooks/useBuyCollectable.ts","../src/react/ui/modals/CreateListingModal/index.tsx","../src/react/ui/modals/MakeOfferModal/index.tsx","../src/react/ui/modals/SellModal/index.tsx","../src/react/ui/modals/BuyModal/index.tsx","../src/react/ui/components/collectible-card/CollectibleCard.tsx","../src/react/ui/icons/DiamondEye.tsx","../src/react/ui/components/_internals/action-button/ActionButton.tsx","../src/react/ui/components/collectible-card/Footer.tsx","../src/react/ui/icons/Bell.tsx"],"sourcesContent":["import { observer } from '@legendapp/state/react';\nimport { AccountModal } from './Account';\nimport { MakeOfferModal } from './MakeOfferModal/Modal';\nimport { SellModal } from './SellModal/Modal';\nimport SuccessfulPurchaseModal from './SuccessfulPurchaseModal';\nimport { TransferModal } from './TransferModal';\nimport SwitchChainModal from './_internal/components/switchChainModal';\nimport TransactionStatusModal from './_internal/components/transactionStatusModal';\nimport { _accountModalOpen$ } from './_internal/stores/accountModal';\nimport { CreateListingModal } from './CreateListingModal/Modal';\nimport { BuyModal } from './BuyModal/Modal';\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<BuyModal />\n\t\t\t<SuccessfulPurchaseModal />\n\t\t\t{/* Helper modals */}\n\t\t\t<SwitchChainModal />\n\t\t\t<TransactionStatusModal />\n\t\t</>\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 { Show, observer, use$ } from '@legendapp/state/react';\nimport { useState } from 'react';\nimport { parseUnits, zeroAddress } from 'viem';\nimport { dateToUnixTime } from '../../../../utils/date';\nimport { ContractType, OrderbookKind } from '../../../_internal';\nimport {\n\tuseCollectible,\n\tuseCollection,\n\tuseCurrencies,\n\tuseCurrencyOptions,\n} from '../../../hooks';\nimport { useMakeOffer } from './hooks/useMakeOffer';\nimport { ActionModal } from '../_internal/components/actionModal/ActionModal';\nimport { ErrorModal } from '../_internal/components/actionModal/ErrorModal';\nimport { LoadingModal } from '../_internal/components/actionModal/LoadingModal';\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$ } from './store';\nimport { Box } from '@0xsequence/design-system';\n\nexport const MakeOfferModal = () => {\n\treturn <Show if={makeOfferModal$.isOpen}>{() => <Modal />}</Show>;\n};\n\nconst Modal = observer(() => {\n\tconst state = makeOfferModal$.get();\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tofferPrice,\n\t\tofferPriceChanged,\n\t\tinvalidQuantity,\n\t\tcollectibleId,\n\t\torderbookKind,\n\t\tcallbacks,\n\t} = state;\n\tconst steps$ = makeOfferModal$.steps;\n\tconst [insufficientBalance, setInsufficientBalance] = useState(false);\n\tconst {\n\t\tdata: collectible,\n\t\tisLoading: collectableIsLoading,\n\t\tisError: collectableIsError,\n\t} = useCollectible({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tconst {\n\t\tdata: collection,\n\t\tisLoading: collectionIsLoading,\n\t\tisError: collectionIsError,\n\t} = useCollection({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\tconst currencyOptions = useCurrencyOptions({ collectionAddress });\n\tconst {\n\t\tdata: currencies,\n\t\tisLoading: currenciesLoading,\n\t\tisError: currenciesIsError,\n\t} = useCurrencies({\n\t\tchainId,\n\t\tcurrencyOptions,\n\t});\n\n\tconst selectedCurrency = use$(makeOfferModal$.offerPrice.currency);\n\n\tconst { isLoading, executeApproval, makeOffer } = useMakeOffer({\n\t\tofferInput: {\n\t\t\tcontractType: collection?.type as ContractType,\n\t\t\toffer: {\n\t\t\t\ttokenId: collectibleId,\n\t\t\t\tquantity: parseUnits(\n\t\t\t\t\tmakeOfferModal$.quantity.get(),\n\t\t\t\t\tcollectible?.decimals || 0,\n\t\t\t\t).toString(),\n\t\t\t\texpiry: dateToUnixTime(makeOfferModal$.expiry.get()),\n\t\t\t\tcurrencyAddress: offerPrice.currency.contractAddress,\n\t\t\t\tpricePerToken: offerPrice.amountRaw,\n\t\t\t},\n\t\t},\n\t\tchainId,\n\t\tcollectionAddress,\n\t\torderbookKind,\n\t\tcallbacks,\n\t\tcloseMainModal: () => makeOfferModal$.close(),\n\t\tsteps$: steps$,\n\t});\n\n\tif (collectableIsLoading || collectionIsLoading || currenciesLoading) {\n\t\treturn (\n\t\t\t<LoadingModal\n\t\t\t\tisOpen={makeOfferModal$.isOpen.get()}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={makeOfferModal$.close}\n\t\t\t\ttitle=\"Make an offer\"\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (collectableIsError || collectionIsError || currenciesIsError) {\n\t\treturn (\n\t\t\t<ErrorModal\n\t\t\t\tisOpen={makeOfferModal$.isOpen.get()}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={makeOfferModal$.close}\n\t\t\t\ttitle=\"Make an offer\"\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst invalidCurrency =\n\t\tselectedCurrency?.contractAddress === zeroAddress &&\n\t\torderbookKind !== OrderbookKind.sequence_marketplace_v2;\n\n\tconst ctas = [\n\t\t{\n\t\t\tlabel: 'Approve TOKEN',\n\t\t\tonClick: async () => await executeApproval(),\n\t\t\thidden: !steps$.approval.exist.get(),\n\t\t\tpending: steps$.approval.isExecuting.get(),\n\t\t\tvariant: 'glass' as const,\n\t\t\tdisabled:\n\t\t\t\tinvalidQuantity ||\n\t\t\t\tisLoading ||\n\t\t\t\tinsufficientBalance ||\n\t\t\t\tofferPrice.amountRaw === '0' ||\n\t\t\t\t!offerPriceChanged,\n\t\t},\n\t\t{\n\t\t\tlabel: 'Make offer',\n\t\t\tonClick: () => makeOffer(),\n\t\t\tpending: steps$.transaction.isExecuting.get(),\n\t\t\tdisabled:\n\t\t\t\tsteps$.approval.isExecuting.get() ||\n\t\t\t\tsteps$.approval.exist.get() ||\n\t\t\t\tofferPrice.amountRaw === '0' ||\n\t\t\t\tinsufficientBalance ||\n\t\t\t\tisLoading ||\n\t\t\t\tinvalidQuantity ||\n\t\t\t\tinvalidCurrency\n\t\t},\n\t];\n\n\tconst secondCurrencyAsDefault =\n\t\torderbookKind !== OrderbookKind.sequence_marketplace_v2 &&\n\t\tcurrencies &&\n\t\tcurrencies[0]?.contractAddress === zeroAddress;\n\n\treturn (\n\t\t<>\n\t\t\t<ActionModal\n\t\t\t\tisOpen={makeOfferModal$.isOpen.get()}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={() => makeOfferModal$.close()}\n\t\t\t\ttitle=\"Make an offer\"\n\t\t\t\tctas={ctas}\n\t\t\t>\n\t\t\t\t<TokenPreview\n\t\t\t\t\tcollectionName={collection?.name}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t/>\n\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$price={makeOfferModal$.offerPrice}\n\t\t\t\t\tonPriceChange={() => makeOfferModal$.offerPriceChanged.set(true)}\n\t\t\t\t\tsecondCurrencyAsDefault={secondCurrencyAsDefault}\n\t\t\t\t\tcheckBalance={{\n\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\tcallback: (state) => setInsufficientBalance(state),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t{collection?.type === ContractType.ERC1155 && (\n\t\t\t\t\t<QuantityInput\n\t\t\t\t\t\t$quantity={makeOfferModal$.quantity}\n\t\t\t\t\t\t$invalidQuantity={makeOfferModal$.invalidQuantity}\n\t\t\t\t\t\tdecimals={collectible?.decimals || 0}\n\t\t\t\t\t\tmaxQuantity={String(Number.MAX_SAFE_INTEGER)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{offerPrice.amountRaw !== '0' &&\n\t\t\t\t\tofferPriceChanged &&\n\t\t\t\t\t!insufficientBalance && (\n\t\t\t\t\t\t<FloorPriceText\n\t\t\t\t\t\t\ttokenId={collectibleId}\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\tprice={offerPrice}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t<ExpirationDateSelect $date={makeOfferModal$.expiry} />\n\n\t\t\t\t{invalidCurrency && (\n\t\t\t\t\t<Box color=\"negative\" fontSize=\"small\">\n\t\t\t\t\t\tNative currency offers are not supported on this marketplace. Please\n\t\t\t\t\t\tselect another currency to continue\n\t\t\t\t\t</Box>\n\t\t\t\t)}\n\t\t\t</ActionModal>\n\t\t</>\n\t);\n});\n","import {\n\ttype ContractType,\n\ttype CreateReq,\n\tGenerateOfferTransactionArgs,\n\tgetMarketplaceClient,\n\ttype OrderbookKind,\n\tStepType,\n} from '../../../../_internal';\nimport { useQuery } from '@tanstack/react-query';\nimport { useWallet } from '../../../../_internal/transaction-machine/useWallet';\nimport { useConfig } from '../../../../hooks/useConfig';\nimport { dateToUnixTime } from '../../../../../utils/date';\n\nexport interface UseGetTokenApprovalDataArgs {\n\tchainId: string;\n\ttokenId: string;\n\tcollectionAddress: string;\n\tcurrencyAddress: string;\n\tcontractType: ContractType;\n\torderbook: OrderbookKind;\n}\n\nconst ONE_DAY_IN_SECONDS = 60 * 60 * 24;\n\nexport const useGetTokenApprovalData = (\n\tparams: UseGetTokenApprovalDataArgs,\n) => {\n\tconst config = useConfig();\n\tconst { wallet } = useWallet();\n\tconst marketplaceClient = getMarketplaceClient(params.chainId, config);\n\n\tconst offer = {\n\t\ttokenId: params.tokenId,\n\t\tquantity: '1',\n\t\tcurrencyAddress: params.currencyAddress,\n\t\tpricePerToken: '100000',\n\t\texpiry: String(Number(dateToUnixTime(new Date())) + ONE_DAY_IN_SECONDS),\n\t} satisfies CreateReq;\n\n\tconst { data, isLoading, isSuccess } = useQuery({\n\t\tqueryKey: ['token-approval-data', params.currencyAddress],\n\t\tqueryFn: async () => {\n\t\t\tconst args = {\n\t\t\t\tcollectionAddress: params.collectionAddress,\n\t\t\t\tmaker: await wallet!.address(),\n\t\t\t\twalletType: wallet!.walletKind,\n\t\t\t\tcontractType: params.contractType,\n\t\t\t\torderbook: params.orderbook,\n\t\t\t\toffer,\n\t\t\t} satisfies GenerateOfferTransactionArgs;\n\t\t\tconst steps = await marketplaceClient\n\t\t\t\t.generateOfferTransaction(args)\n\t\t\t\t.then((resp) => resp.steps);\n\n\t\t\tconst tokenApprovalStep = steps.find(\n\t\t\t\t(step) => step.id === StepType.tokenApproval,\n\t\t\t);\n\t\t\tif (!tokenApprovalStep) {\n\t\t\t\treturn {\n\t\t\t\t\tstep: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstep: tokenApprovalStep,\n\t\t\t};\n\t\t},\n\t\tenabled: !!wallet && !!params.collectionAddress && !!params.currencyAddress,\n\t});\n\n\treturn {\n\t\tdata,\n\t\tisLoading,\n\t\tisSuccess,\n\t};\n};\n","import {\n\tCloseIcon,\n\tIconButton,\n\tSkeleton,\n\tText,\n} from '@0xsequence/design-system';\nimport { TRANSACTION_CONFIRMATIONS_DEFAULT } from '@0xsequence/kit';\nimport type { ChainId } from '@0xsequence/network';\nimport { observer } from '@legendapp/state/react';\nimport { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport type { QueryKey } from '@tanstack/react-query';\nimport { useEffect, useState } from 'react';\nimport { type Hex, WaitForTransactionReceiptTimeoutError } from 'viem';\nimport type { Price } from '../../../../../../types';\nimport { getPublicRpcClient } from '../../../../../../utils';\nimport { getProviderEl, getQueryClient } from '../../../../../_internal';\nimport type { TransactionType } from '../../../../../_internal/transaction-machine/execute-transaction';\nimport { useCollectible } from '../../../../../hooks';\nimport type { ModalCallbacks } from '../../types';\nimport TransactionFooter from '../transaction-footer';\nimport TransactionPreview from '../transactionPreview';\nimport { type TransactionStatus, transactionStatusModal$ } from './store';\nimport {\n\tcloseButton,\n\tdialogOverlay,\n\ttransactionStatusModalContent,\n} from './styles.css';\nimport { getTransactionStatusModalMessage } from './util/getMessage';\nimport { getTransactionStatusModalTitle } from './util/getTitle';\n\nexport type ShowTransactionStatusModalArgs = {\n\thash?: Hex;\n\torderId?: string;\n\tprice?: Price;\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tcollectibleId: string;\n\ttype: TransactionType;\n\tcallbacks?: ModalCallbacks;\n\tqueriesToInvalidate?: QueryKey[];\n\tconfirmations?: number;\n\tblocked?: boolean;\n};\n\nexport const useTransactionStatusModal = () => {\n\treturn {\n\t\tshow: (args: ShowTransactionStatusModalArgs) => {\n\t\t\tif (args.blocked) return;\n\n\t\t\ttransactionStatusModal$.open(args);\n\t\t},\n\t\tclose: () => transactionStatusModal$.close(),\n\t};\n};\n\nconst TransactionStatusModal = observer(() => {\n\tconst {\n\t\ttype,\n\t\thash,\n\t\torderId,\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId,\n\t\tcallbacks,\n\t\tqueriesToInvalidate,\n\t\tconfirmations,\n\t} = transactionStatusModal$.state.get();\n\tconst { data: collectible, isLoading: collectibleLoading } = useCollectible({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId,\n\t});\n\tconst [transactionStatus, setTransactionStatus] = useState<TransactionStatus>(\n\t\torderId ? 'SUCCESS' : 'PENDING',\n\t);\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n\tuseEffect(() => {\n\t\t// if it is a Reservoir order, we don't need to wait for the transaction receipt\n\t\tif (!transactionStatusModal$.isOpen.get() || orderId) return;\n\n\t\tconsole.log('Waiting for transaction receipt ...');\n\t\twaitForTransactionReceiptPromise\n\t\t\t?.then((receipt) => {\n\t\t\t\tif (receipt.status === 'success') {\n\t\t\t\t\tconsole.log('receipt', receipt);\n\t\t\t\t\tsetTransactionStatus('SUCCESS');\n\t\t\t\t\tif (callbacks?.onSuccess) {\n\t\t\t\t\t\tcallbacks.onSuccess({ hash: hash || '0x0' });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.debug('onSuccess callback not provided:', hash);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (callbacks?.onError) {\n\t\t\t\t\tcallbacks.onError(error);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.debug('onError callback not provided:', error);\n\t\t\t\t}\n\n\t\t\t\tif (error instanceof WaitForTransactionReceiptTimeoutError) {\n\t\t\t\t\tsetTransactionStatus('TIMEOUT');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetTransactionStatus('FAILED');\n\t\t\t});\n\n\t\tif (queriesToInvalidate) {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [...queriesToInvalidate] });\n\t\t}\n\n\t\treturn () => {\n\t\t\tsetTransactionStatus('PENDING');\n\t\t};\n\t}, [\n\t\tcallbacks?.onSuccess,\n\t\tcallbacks?.onError,\n\t\ttransactionStatusModal$.isOpen.get(),\n\t]);\n\n\tif (!type) {\n\t\treturn null;\n\t}\n\n\tconst title = getTransactionStatusModalTitle({\n\t\ttransactionStatus,\n\t\ttransactionType: type,\n\t\torderId,\n\t});\n\n\tconst message = getTransactionStatusModalMessage({\n\t\ttransactionStatus,\n\t\ttransactionType: type,\n\t\tcollectibleName: collectible?.name || '',\n\t\torderId,\n\t});\n\n\tconst queryClient = getQueryClient();\n\tconst publicClient = chainId ? getPublicRpcClient(chainId) : null;\n\tconst waitForTransactionReceiptPromise =\n\t\tpublicClient?.waitForTransactionReceipt({\n\t\t\tconfirmations: confirmations || TRANSACTION_CONFIRMATIONS_DEFAULT,\n\t\t\thash: hash || '0x',\n\t\t});\n\n\treturn (\n\t\t<Root open={transactionStatusModal$.isOpen.get()}>\n\t\t\t<Portal container={getProviderEl()}>\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\n\t\t\t\t\t\t\tfontSize=\"large\"\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\tfontFamily=\"body\"\n\t\t\t\t\t\t>\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\" fontFamily=\"body\">\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\torderId={orderId}\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}\n\t\t\t\t\t\tcollectibleLoading={collectibleLoading}\n\t\t\t\t\t\tcurrencyImageUrl={price?.currency.imageUrl}\n\t\t\t\t\t\tisConfirming={transactionStatus === 'PENDING'}\n\t\t\t\t\t\tisConfirmed={transactionStatus === 'SUCCESS'}\n\t\t\t\t\t\tisFailed={transactionStatus === 'FAILED'}\n\t\t\t\t\t\tisTimeout={transactionStatus === 'TIMEOUT'}\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\torderId={orderId}\n\t\t\t\t\t\tisConfirming={transactionStatus === 'PENDING'}\n\t\t\t\t\t\tisConfirmed={transactionStatus === 'SUCCESS'}\n\t\t\t\t\t\tisFailed={transactionStatus === 'FAILED'}\n\t\t\t\t\t\tisTimeout={transactionStatus === 'TIMEOUT'}\n\t\t\t\t\t\tchainId={chainId as unknown as ChainId}\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 { type ChainId, networks } from '@0xsequence/network';\nimport type { Hex } from 'viem';\nimport { Box, Text, Spinner } from '@0xsequence/design-system';\nimport { truncateMiddle } from '../../../../../../utils';\nimport SvgPositiveCircleIcon from '../../../../icons/PositiveCircleIcon';\n\ntype TransactionFooterProps = {\n\ttransactionHash: Hex | undefined;\n\torderId?: string;\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n\tisTimeout: boolean;\n\tchainId: ChainId;\n};\n\nexport default function TransactionFooter({\n\ttransactionHash,\n\torderId,\n\tisConfirming,\n\tisConfirmed,\n\tisFailed,\n\tisTimeout,\n\tchainId,\n}: TransactionFooterProps) {\n\tconst icon =\n\t\t((isConfirmed || orderId) && <SvgPositiveCircleIcon size=\"md\" />) ||\n\t\t(isConfirming && <Spinner size=\"md\" />);\n\n\tconst title =\n\t\t((isConfirmed || orderId) && 'Transaction complete') ||\n\t\t(isConfirming && 'Processing transaction') ||\n\t\t(isFailed && 'Transaction failed') ||\n\t\t(isTimeout && 'Transaction took longer than expected');\n\n\tconst transactionUrl = `${networks[chainId as unknown as ChainId]?.blockExplorer?.rootUrl}tx/${transactionHash}`;\n\treturn (\n\t\t<Box display=\"flex\" alignItems=\"center\">\n\t\t\t{icon}\n\n\t\t\t<Text\n\t\t\t\tcolor=\"text50\"\n\t\t\t\tfontSize=\"normal\"\n\t\t\t\tfontWeight=\"medium\"\n\t\t\t\tmarginLeft=\"2\"\n\t\t\t\tfontFamily=\"body\"\n\t\t\t>\n\t\t\t\t{title}\n\t\t\t</Text>\n\n\t\t\t<Box\n\t\t\t\tas=\"a\"\n\t\t\t\tflexGrow=\"1\"\n\t\t\t\tmarginLeft=\"2\"\n\t\t\t\thref={transactionUrl}\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\ttextAlign=\"right\"\n\t\t\t\ttextDecoration=\"none\"\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\ttextAlign=\"right\"\n\t\t\t\t\tfontSize=\"normal\"\n\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tcolor: 'hsla(247, 100%, 75%, 1)',\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{transactionHash && truncateMiddle(transactionHash, 4, 4)}\n\t\t\t\t</Text>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","import {\n\tBox,\n\tImage,\n\tNetworkImage,\n\tSkeleton,\n\tText,\n} from '@0xsequence/design-system';\nimport type { TokenMetadata } from '@0xsequence/metadata';\nimport { observer } from '@legendapp/state/react';\nimport { type Hex, formatUnits } from 'viem';\nimport type { Price } from '../../../../../../types';\nimport { useCollection } from '../../../../../hooks';\nimport ChessTileImage from '../../../../images/chess-tile.png';\nimport TimeAgo from '../timeAgo';\nimport { transactionStatusModal$ } from '../transactionStatusModal/store';\nimport { useTransactionPreviewTitle } from './useTransactionPreviewTitle';\n\ntype TransactionPreviewProps = {\n\torderId?: string;\n\tprice?: Price;\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tcollectible: TokenMetadata | undefined;\n\tcollectibleLoading: boolean;\n\tcurrencyImageUrl?: string;\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n\tisTimeout: boolean;\n};\n\nconst TransactionPreview = observer(\n\t({\n\t\torderId,\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectible,\n\t\tcollectibleLoading,\n\t\tcurrencyImageUrl,\n\t\tisConfirming,\n\t\tisConfirmed,\n\t\tisFailed,\n\t\tisTimeout,\n\t}: TransactionPreviewProps) => {\n\t\tconst { type } = transactionStatusModal$.state.get();\n\t\tconst title = useTransactionPreviewTitle(\n\t\t\torderId,\n\t\t\t{ isConfirmed, isConfirming, isFailed, isTimeout },\n\t\t\ttype,\n\t\t);\n\t\tconst { data: collection, isLoading: collectionLoading } = 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\tif (collectibleLoading || collectionLoading) {\n\t\t\treturn (\n\t\t\t\t<Box style={{ height: 83 }} width=\"full\" borderRadius=\"md\">\n\t\t\t\t\t<Skeleton style={{ width: '100%', height: '100%' }} />\n\t\t\t\t</Box>\n\t\t\t);\n\t\t}\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\tfontFamily=\"body\"\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 || ChessTileImage}\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\tstyle={{ objectFit: 'cover' }}\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\n\t\t\t\t\t\t\tcolor=\"text80\"\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\tfontFamily=\"body\"\n\t\t\t\t\t\t>\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\" fontFamily=\"body\">\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<Image src={currencyImageUrl} width=\"3\" height=\"3\" />\n\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tcolor=\"text80\"\n\t\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t\t\t>\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 { useEffect, useState } 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 { observable } from '@legendapp/state';\nimport type { QueryKey } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { ShowTransactionStatusModalArgs } from '.';\nimport type { Price } from '../../../../../../types';\nimport type { TransactionType } from '../../../../../_internal/transaction-machine/execute-transaction';\nimport type { ModalCallbacks } from '../../types';\n\nexport type ConfirmationStatus = {\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n\tisTimeout: boolean;\n};\n\nexport type TransactionStatus = 'PENDING' | 'SUCCESS' | 'FAILED' | 'TIMEOUT';\n\nexport interface TransactionStatusModalState {\n\tisOpen: boolean;\n\topen: (args: ShowTransactionStatusModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\thash: Hex | undefined;\n\t\torderId: string | undefined;\n\t\tstatus: TransactionStatus;\n\t\ttype: TransactionType | undefined;\n\t\tprice: Price | undefined;\n\t\tcollectionAddress: Hex;\n\t\tchainId: string;\n\t\tcollectibleId: string;\n\t\tcallbacks?: ModalCallbacks;\n\t\tqueriesToInvalidate?: QueryKey[];\n\t\tconfirmations?: number;\n\t\tblocked?: boolean;\n\t};\n}\n\nexport const initialState: TransactionStatusModalState = {\n\tisOpen: false,\n\topen: ({\n\t\thash,\n\t\torderId,\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId,\n\t\ttype,\n\t\tcallbacks,\n\t\tqueriesToInvalidate,\n\t\tconfirmations,\n\t\tblocked,\n\t}) => {\n\t\ttransactionStatusModal$.state.set({\n\t\t\t...transactionStatusModal$.state.get(),\n\t\t\thash,\n\t\t\torderId,\n\t\t\tprice,\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t\tcollectibleId,\n\t\t\ttype,\n\t\t\tcallbacks,\n\t\t\tqueriesToInvalidate,\n\t\t\tconfirmations,\n\t\t\tblocked,\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\torderId: undefined,\n\t\tstatus: 'PENDING',\n\t\tprice: undefined,\n\t\tcollectionAddress: '' as Hex,\n\t\tchainId: '',\n\t\tcollectibleId: '',\n\t\ttype: undefined,\n\t\tcallbacks: undefined,\n\t\tqueriesToInvalidate: [],\n\t\tconfirmations: -1,\n\t\tblocked: false,\n\t},\n};\n\nexport const transactionStatusModal$ = observable(initialState);\n","export const TRANSACTION_TITLES = {\n\tSELL: {\n\t\tconfirming: 'Selling',\n\t\tconfirmed: 'Sold',\n\t\tfailed: 'Sale failed',\n\t},\n\tLISTING: {\n\t\tconfirming: 'Creating listing',\n\t\tconfirmed: 'Listed',\n\t\tfailed: 'Listing failed',\n\t},\n\tOFFER: {\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\tCANCEL: {\n\t\tconfirming: 'Cancelling',\n\t\tconfirmed: 'Cancelled',\n\t\tfailed: 'Cancellation failed',\n\t},\n} as const;\n","import type { TransactionType } from '../../../../../_internal/transaction-machine/execute-transaction';\nimport type { ConfirmationStatus } from '../transactionStatusModal/store';\nimport { TRANSACTION_TITLES } from './consts';\n\nexport function useTransactionPreviewTitle(\n\torderId: string | undefined,\n\tstatus: ConfirmationStatus,\n\ttype?: TransactionType | undefined,\n): string {\n\tif (!type) return '';\n\n\tconst { isConfirming, isConfirmed, isFailed } = status;\n\tconst titles = TRANSACTION_TITLES[type];\n\n\tif (isConfirmed || orderId) return titles.confirmed;\n\tif (isConfirming) return titles.confirming;\n\tif (isFailed) return titles.failed;\n\n\treturn '';\n}\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 fyvr11vl fyvr11m0 fyvr11rs';\nexport var transactionStatusModalContent = 'modal_dialogContent_wide__1ypl6nt3 modal_dialogContentBase__1ypl6nt1 fyvr11hg fyvr11i4 fyvr11g4 fyvr11gs fyvr11l8 fyvr11ul fyvr11m0 fyvr11rs fyvr1vo fyvr1xs fyvr1zw fyvr1120 fyvr11lc fyvr11mc fyvr11cw';","import { TransactionType } from '../../../../../../_internal/transaction-machine/execute-transaction';\n\nexport function getFormattedType(\n\ttransactionType: TransactionType,\n\tverb = false,\n): string {\n\tswitch (transactionType) {\n\t\tcase TransactionType.TRANSFER:\n\t\t\treturn verb ? 'transferred' : 'transfer';\n\t\tcase TransactionType.LISTING:\n\t\t\treturn verb ? 'listed' : 'listing';\n\t\tcase TransactionType.BUY:\n\t\t\treturn verb ? 'purchased' : 'purchase';\n\t\tcase TransactionType.SELL:\n\t\t\treturn verb ? 'sold' : 'sale';\n\t\tcase TransactionType.CANCEL:\n\t\t\treturn verb ? 'cancelled' : 'cancellation';\n\t\tcase TransactionType.OFFER:\n\t\t\treturn verb ? 'offered' : 'offer';\n\t\tdefault:\n\t\t\treturn 'transaction';\n\t}\n}\n","import type { TransactionType } from '../../../../../../_internal/transaction-machine/execute-transaction';\nimport type { TransactionStatus } from '../store';\nimport { getFormattedType } from './getFormattedType';\n\nexport function getTransactionStatusModalMessage({\n\ttransactionStatus,\n\ttransactionType,\n\tcollectibleName,\n\torderId,\n}: {\n\ttransactionStatus: TransactionStatus;\n\ttransactionType: TransactionType;\n\tcollectibleName: string;\n\torderId?: string;\n}): string {\n\t// without this, the text will be \"Your cancellation CollectibleXXX has failed.\" which sounds weird\n\tconst hideCollectibleName = transactionType === 'CANCEL';\n\n\tif (orderId) {\n\t\treturn `You just ${getFormattedType(transactionType, true)}${!hideCollectibleName ? ` ${collectibleName}` : ''}. It's been confirmed on the blockchain!`;\n\t}\n\n\tswitch (transactionStatus) {\n\t\tcase 'PENDING':\n\t\t\treturn `You just ${getFormattedType(transactionType, true)}${!hideCollectibleName ? ` ${collectibleName}` : ''}. It should be confirmed on the blockchain shortly.`;\n\t\tcase 'SUCCESS':\n\t\t\treturn `You just ${getFormattedType(transactionType, true)}${!hideCollectibleName ? ` ${collectibleName}` : ''}. It’s been confirmed on the blockchain!`;\n\t\tcase 'FAILED':\n\t\t\treturn `Your ${getFormattedType(transactionType)} has failed.`;\n\t\tcase 'TIMEOUT':\n\t\t\treturn `Your ${getFormattedType(transactionType)} takes too long. Click the link below to track it on the explorer.`;\n\t\tdefault:\n\t\t\treturn 'Your transaction is processing';\n\t}\n}\n","import type { TransactionType } from '../../../../../../_internal/transaction-machine/execute-transaction';\nimport type { TransactionStatus } from '../store';\nimport { getFormattedType } from './getFormattedType';\n\nexport function getTransactionStatusModalTitle({\n\ttransactionStatus,\n\ttransactionType,\n\torderId,\n}: {\n\ttransactionStatus: TransactionStatus;\n\ttransactionType: TransactionType | undefined;\n\torderId?: string;\n}): string {\n\tif (transactionType === undefined) {\n\t\treturn '';\n\t}\n\tif (orderId) {\n\t\treturn `Your ${getFormattedType(transactionType)} has processed`;\n\t}\n\n\tswitch (transactionStatus) {\n\t\tcase 'PENDING':\n\t\t\treturn `Your ${getFormattedType(transactionType)} is processing`;\n\t\tcase 'SUCCESS':\n\t\t\treturn `Your ${getFormattedType(transactionType)} has processed`;\n\t\tcase 'FAILED':\n\t\t\treturn `Your ${getFormattedType(transactionType)} has failed`;\n\t\tcase 'TIMEOUT':\n\t\t\treturn `Your ${getFormattedType(transactionType)} takes too long`;\n\t\tdefault:\n\t\t\treturn 'Your transaction is processing';\n\t}\n}\n\nexport function getTransactionStatusModalSpinnerTitle({\n\ttransactionStatus,\n}: {\n\ttransactionStatus: TransactionStatus;\n}): string {\n\tswitch (transactionStatus) {\n\t\tcase 'PENDING':\n\t\t\treturn 'Processing transaction';\n\t\tcase 'SUCCESS':\n\t\t\treturn 'Transaction completed';\n\t\tcase 'FAILED':\n\t\t\treturn 'Transaction failed';\n\t\tcase 'TIMEOUT':\n\t\t\treturn 'Taking too long';\n\t\tdefault:\n\t\t\treturn 'Processing transaction';\n\t}\n}\n","import {\n\tExecuteType,\n\tgetMarketplaceClient,\n\tStep,\n\tStepType,\n\tTransactionSteps,\n} from '../../../../_internal';\nimport { useGenerateOfferTransaction } from '../../../../hooks/useGenerateOfferTransaction';\nimport { OrderbookKind } from '../../../../../types';\nimport { ModalCallbacks } from '../../_internal/types';\nimport {\n\tOfferInput,\n\tTransactionType,\n} from '../../../../_internal/transaction-machine/execute-transaction';\nimport { useTransactionStatusModal } from '../../_internal/components/transactionStatusModal';\nimport { Address } from 'viem';\nimport { Observable } from '@legendapp/state';\nimport { useWallet } from '../../../../_internal/transaction-machine/useWallet';\nimport { SignatureStep } from '../../../../_internal/transaction-machine/utils';\nimport { useConfig } from '../../../../hooks';\nimport { useGetReceiptFromHash } from '../../../../hooks/useGetReceiptFromHash';\n\nexport type ExecutionState = 'approval' | 'offer' | null;\n\ninterface UseTransactionStepsArgs {\n\tofferInput: OfferInput;\n\tchainId: string;\n\tcollectionAddress: string;\n\torderbookKind?: OrderbookKind;\n\tcallbacks?: ModalCallbacks;\n\tcloseMainModal: () => void;\n\tsteps$: Observable<TransactionSteps>;\n}\n\nexport const useTransactionSteps = ({\n\tofferInput,\n\tchainId,\n\tcollectionAddress,\n\torderbookKind = OrderbookKind.sequence_marketplace_v2,\n\tcallbacks,\n\tcloseMainModal,\n\tsteps$,\n}: UseTransactionStepsArgs) => {\n\tconst { wallet } = useWallet();\n\tconst expiry = new Date(Number(offerInput.offer.expiry) * 1000);\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\tconst sdkConfig = useConfig();\n\tconst marketplaceClient = getMarketplaceClient(chainId, sdkConfig);\n\tconst { waitForReceipt } = useGetReceiptFromHash();\n\tconst { generateOfferTransactionAsync, isPending: generatingSteps } =\n\t\tuseGenerateOfferTransaction({\n\t\t\tchainId,\n\t\t\tonSuccess: (steps) => {\n\t\t\t\tif (!steps) return;\n\t\t\t},\n\t\t});\n\n\tconst getOfferSteps = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tconst address = await wallet.address();\n\n\t\t\tconst steps = await generateOfferTransactionAsync({\n\t\t\t\tcollectionAddress,\n\t\t\t\tmaker: address,\n\t\t\t\twalletType: wallet.walletKind,\n\t\t\t\tcontractType: offerInput.contractType,\n\t\t\t\torderbook: orderbookKind,\n\t\t\t\toffer: {\n\t\t\t\t\t...offerInput.offer,\n\t\t\t\t\texpiry,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn steps;\n\t\t} catch (error) {\n\t\t\tif (callbacks?.onError) {\n\t\t\t\tcallbacks.onError(error as Error);\n\t\t\t} else {\n\t\t\t\tconsole.debug('onError callback not provided:', error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst executeApproval = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tsteps$.approval.isExecuting.set(true);\n\t\t\tconst approvalStep = await getOfferSteps().then((steps) =>\n\t\t\t\tsteps?.find((step) => step.id === StepType.tokenApproval),\n\t\t\t);\n\n\t\t\tconst hash = await wallet.handleSendTransactionStep(\n\t\t\t\tNumber(chainId),\n\t\t\t\tapprovalStep as any,\n\t\t\t);\n\n\t\t\tconst receipt = await waitForReceipt(hash);\n\n\t\t\tif (receipt) {\n\t\t\t\tsteps$.approval.isExecuting.set(false);\n\t\t\t\tsteps$.approval.exist.set(false);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsteps$.approval.isExecuting.set(false);\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst makeOffer = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tsteps$.transaction.isExecuting.set(true);\n\t\t\tconst steps = await getOfferSteps();\n\t\t\tconst transactionStep = steps?.find(\n\t\t\t\t(step) => step.id === StepType.createOffer,\n\t\t\t);\n\t\t\tconst signatureStep = steps?.find(\n\t\t\t\t(step) => step.id === StepType.signEIP712,\n\t\t\t);\n\n\t\t\tconsole.debug('transactionStep', transactionStep);\n\t\t\tconsole.debug('signatureStep', signatureStep);\n\n\t\t\tif (!transactionStep && !signatureStep) {\n\t\t\t\tthrow new Error('No transaction or signature step found');\n\t\t\t}\n\n\t\t\tlet hash, orderId: string | undefined;\n\n\t\t\tif (transactionStep) {\n\t\t\t\thash = await executeTransaction({ transactionStep });\n\t\t\t}\n\n\t\t\tif (signatureStep) {\n\t\t\t\torderId = await executeSignature({ signatureStep });\n\t\t\t}\n\n\t\t\tcloseMainModal();\n\n\t\t\tshowTransactionStatusModal({\n\t\t\t\ttype: TransactionType.OFFER,\n\t\t\t\tcollectionAddress: collectionAddress as Address,\n\t\t\t\tchainId,\n\t\t\t\tcollectibleId: offerInput.offer.tokenId,\n\t\t\t\thash,\n\t\t\t\torderId,\n\t\t\t\tcallbacks,\n\t\t\t});\n\n\t\t\tif (hash) {\n\t\t\t\tawait waitForReceipt(hash);\n\n\t\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\t\tsteps$.transaction.exist.set(false);\n\t\t\t\tif (callbacks?.onSuccess && typeof callbacks.onSuccess === 'function') {\n\t\t\t\t\tcallbacks.onSuccess({ hash });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (orderId) {\n\t\t\t\t// no need to wait for receipt, because the order is already created\n\n\t\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\t\tsteps$.transaction.exist.set(false);\n\n\t\t\t\tif (callbacks?.onSuccess && typeof callbacks.onSuccess === 'function') {\n\t\t\t\t\tcallbacks.onSuccess({ orderId });\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\tsteps$.transaction.exist.set(false);\n\t\t\tif (callbacks?.onError && typeof callbacks.onError === 'function') {\n\t\t\t\tcallbacks.onError(error as Error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst executeTransaction = async ({\n\t\ttransactionStep,\n\t}: {\n\t\ttransactionStep: Step;\n\t}) => {\n\t\tif (!wallet) return;\n\n\t\tconst hash = await wallet.handleSendTransactionStep(\n\t\t\tNumber(chainId),\n\t\t\ttransactionStep as any,\n\t\t);\n\n\t\treturn hash;\n\t};\n\n\tconst executeSignature = async ({\n\t\tsignatureStep,\n\t}: {\n\t\tsignatureStep: Step;\n\t}) => {\n\t\tif (!wallet) return;\n\n\t\tconst signature = await wallet.handleSignMessageStep(\n\t\t\tsignatureStep as SignatureStep,\n\t\t);\n\n\t\tconst result = await marketplaceClient.execute({\n\t\t\tsignature: signature as string,\n\t\t\texecuteType: ExecuteType.order,\n\t\t\tbody: signatureStep.post?.body,\n\t\t});\n\n\t\treturn result.orderId;\n\t};\n\n\treturn {\n\t\tgeneratingSteps,\n\t\texecuteApproval,\n\t\tmakeOffer,\n\t};\n};\n","import { Observable } from '@legendapp/state';\nimport { OrderbookKind } from '../../../../../types';\nimport { OfferInput } from '../../../../_internal/transaction-machine/execute-transaction';\nimport { ModalCallbacks } from '../../_internal/types';\nimport { useGetTokenApprovalData } from './useGetTokenApproval';\nimport { useTransactionSteps } from './useTransactionSteps';\nimport { useEffect } from 'react';\nimport { TransactionSteps } from '../../../../_internal';\n\ninterface UseMakeOfferArgs {\n\tofferInput: OfferInput;\n\tchainId: string;\n\tcollectionAddress: string;\n\torderbookKind?: OrderbookKind;\n\tcallbacks?: ModalCallbacks;\n\tcloseMainModal: () => void;\n\tsteps$: Observable<TransactionSteps>;\n}\n\nexport const useMakeOffer = ({\n\tofferInput,\n\tchainId,\n\tcollectionAddress,\n\torderbookKind = OrderbookKind.sequence_marketplace_v2,\n\tcallbacks,\n\tcloseMainModal,\n\tsteps$,\n}: UseMakeOfferArgs) => {\n\tconst { data: tokenApproval, isLoading: tokenApprovalIsLoading } =\n\t\tuseGetTokenApprovalData({\n\t\t\tchainId,\n\t\t\ttokenId: offerInput.offer.tokenId,\n\t\t\tcollectionAddress,\n\t\t\tcurrencyAddress: offerInput.offer.currencyAddress,\n\t\t\tcontractType: offerInput.contractType,\n\t\t\torderbook: orderbookKind,\n\t\t});\n\n\tuseEffect(() => {\n\t\tif (tokenApproval?.step && !tokenApprovalIsLoading) {\n\t\t\tsteps$.approval.exist.set(true);\n\t\t}\n\t}, [tokenApproval?.step, tokenApprovalIsLoading]);\n\n\tconst { generatingSteps, executeApproval, makeOffer } = useTransactionSteps({\n\t\tofferInput,\n\t\tchainId,\n\t\tcollectionAddress,\n\t\torderbookKind,\n\t\tcallbacks,\n\t\tcloseMainModal,\n\t\tsteps$,\n\t});\n\n\treturn {\n\t\tisLoading: generatingSteps,\n\t\texecuteApproval,\n\t\tmakeOffer,\n\t\ttokenApprovalStepExists: tokenApproval?.step !== null,\n\t\ttokenApprovalIsLoading,\n\t};\n};\n","import { Box } from '@0xsequence/design-system';\nimport { ActionModal } from './ActionModal';\n\ninterface ErrorModalProps {\n\tisOpen: boolean;\n\tchainId: number;\n\tonClose: () => void;\n\ttitle: string;\n}\n\nexport const ErrorModal = ({\n\tisOpen,\n\tchainId,\n\tonClose,\n\ttitle,\n}: ErrorModalProps) => (\n\t<ActionModal\n\t\tisOpen={isOpen}\n\t\tchainId={chainId}\n\t\tonClose={onClose}\n\t\ttitle={title}\n\t\tctas={[]}\n\t>\n\t\t<Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" padding=\"4\">\n\t\t\tError loading item details\n\t\t</Box>\n\t</ActionModal>\n);\n","import { Box, Spinner } from '@0xsequence/design-system';\nimport { ActionModal } from './ActionModal';\n\ninterface LoadingModalProps {\n\tisOpen: boolean;\n\tchainId: number;\n\tonClose: () => void;\n\ttitle: string;\n}\n\nexport const LoadingModal = ({\n\tisOpen,\n\tchainId,\n\tonClose,\n\ttitle,\n}: LoadingModalProps) => (\n\t<ActionModal\n\t\tisOpen={isOpen}\n\t\tchainId={chainId}\n\t\tonClose={onClose}\n\t\ttitle={title}\n\t\tctas={[]}\n\t>\n\t\t<Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" padding=\"4\">\n\t\t\t<Spinner size=\"lg\" />\n\t\t</Box>\n\t</ActionModal>\n);\n","import { Box, Skeleton, Text } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { addDays } from 'date-fns';\nimport { CustomSelect } from '../../../../components/_internals/custom-select/CustomSelect';\nimport CalendarPopover from '../calendarPopover';\nimport { useState } from 'react';\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 defaultRange = '1_week' as RangeType;\n\tconst [selectedRange, setSelectedRange] = useState<RangeType>(defaultRange);\n\n\tfunction handleSelectPresetRange(range: RangeType) {\n\t\tconst presetRange = Object.values(PRESET_RANGES).find(\n\t\t\t(preset) => preset.value === range,\n\t\t);\n\n\t\tsetSelectedRange(range);\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\t$date.set(date);\n\t}\n\n\tif (!$date.get()) {\n\t\treturn <Skeleton borderRadius=\"lg\" width=\"20\" height=\"7\" marginRight=\"3\" />;\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\tfontFamily=\"body\"\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\n\t\t\t\t\tposition={'absolute'}\n\t\t\t\t\tright={'0'}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\tzIndex=\"10\"\n\t\t\t\t>\n\t\t\t\t\t<CustomSelect\n\t\t\t\t\t\titems={Object.values(PRESET_RANGES).map((preset) => ({\n\t\t\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\t\t\tvalue: preset.value,\n\t\t\t\t\t\t\tcontent: preset.label,\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\tdefaultValue={{\n\t\t\t\t\t\t\tvalue: selectedRange,\n\t\t\t\t\t\t\tcontent: selectedRange,\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 './overrides.css';\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 { Hex } from 'viem';\nimport type { Price } from '../../../../../../types';\nimport { calculatePriceDifferencePercentage } from '../../../../../../utils';\nimport { useLowestListing } from '../../../../../hooks';\n\nexport default function FloorPriceText({\n\tchainId,\n\tcollectionAddress,\n\ttokenId,\n\tprice,\n}: {\n\tchainId: string;\n\tcollectionAddress: Hex;\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\tfontFamily=\"body\"\n\t\t>\n\t\t\t{floorPriceDifferenceText}\n\t\t</Text>\n\t);\n}\n","import { Box, NumericInput, Text } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { useCallback, useMemo } from 'react';\nimport { type Hex } from 'viem';\nimport { useAccount } from 'wagmi';\nimport type { Price } from '../../../../../../types';\nimport CurrencyImage from '../currencyImage';\nimport CurrencyOptionsSelect from '../currencyOptionsSelect';\nimport { priceInputCurrencyImage, priceInputWrapper } from './styles.css';\nimport { usePriceInput } from './hooks/usePriceInput';\nimport { useBalanceCheck } from './hooks/useBalanceCheck';\n\ntype PriceInputProps = {\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tsecondCurrencyAsDefault?: boolean;\n\t$price: Observable<Price | undefined>;\n\tonPriceChange?: () => void;\n\tcheckBalance?: {\n\t\tenabled: boolean;\n\t\tcallback: (state: boolean) => void;\n\t};\n};\n\nconst PriceInput = observer(function PriceInput({\n\tchainId,\n\tcollectionAddress,\n\t$price,\n\tonPriceChange,\n\tcheckBalance,\n\tsecondCurrencyAsDefault,\n}: PriceInputProps) {\n\tconst { address: accountAddress } = useAccount();\n\tconst currencyDecimals = $price.currency.decimals.get() || 18;\n\tconst currencyAddress = $price.currency.contractAddress.get() as Hex;\n\n\tconst { value, handlePriceChange } = usePriceInput({\n\t\tprice$: $price,\n\t\tcurrencyDecimals,\n\t\tonPriceChange,\n\t});\n\n\tconst { balanceError } = useBalanceCheck({\n\t\tcheckBalance,\n\t\tprice$: $price,\n\t\tcurrencyAddress,\n\t\tchainId: Number(chainId),\n\t\tuserAddress: accountAddress as Hex,\n\t\tcurrencyDecimals,\n\t});\n\n\tconst renderBalanceError = useMemo(() => {\n\t\tif (!balanceError) return null;\n\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tcolor=\"negative\"\n\t\t\t\tfontSize=\"xsmall\"\n\t\t\t\tfontFamily=\"body\"\n\t\t\t\tfontWeight=\"semibold\"\n\t\t\t\tposition=\"absolute\"\n\t\t\t\tstyle={{ bottom: '-13px' }}\n\t\t\t>\n\t\t\t\t{balanceError}\n\t\t\t</Text>\n\t\t);\n\t}, [balanceError]);\n\n\tconst handleChange = useCallback(\n\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\thandlePriceChange(event.target.value);\n\t\t},\n\t\t[handlePriceChange],\n\t);\n\n\treturn (\n\t\t<Box className={priceInputWrapper} position=\"relative\">\n\t\t\t<Box\n\t\t\t\tclassName={priceInputCurrencyImage}\n\t\t\t\tposition=\"absolute\"\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<CurrencyImage price$={$price} />\n\t\t\t</Box>\n\n\t\t\t<NumericInput\n\t\t\t\tname=\"price-input\"\n\t\t\t\tdecimals={currencyDecimals}\n\t\t\t\tlabel=\"Enter price\"\n\t\t\t\tlabelLocation=\"top\"\n\t\t\t\tcontrols={\n\t\t\t\t\t<CurrencyOptionsSelect\n\t\t\t\t\t\tselectedCurrency$={$price.currency}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\tsecondCurrencyAsDefault={secondCurrencyAsDefault}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={handleChange}\n\t\t\t\twidth=\"full\"\n\t\t\t/>\n\n\t\t\t{renderBalanceError}\n\t\t</Box>\n\t);\n});\n\nexport default PriceInput;\n","import { Box, TokenImage } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { useState } from 'react';\nimport type { Address } from 'viem';\nimport type { Price } from '../../../../../../types';\n\nfunction CurrencyImage({ price$ }: { price$: Observable<Price | undefined> }) {\n\tconst [imageLoadErrorCurrencyAddresses, setImageLoadErrorCurrencyAddresses] =\n\t\tuseState<Address[] | null>(null);\n\n\tif (\n\t\timageLoadErrorCurrencyAddresses?.includes(\n\t\t\tprice$.currency.contractAddress.get() as Address,\n\t\t)\n\t) {\n\t\treturn (\n\t\t\t<Box\n\t\t\t\twidth=\"3\"\n\t\t\t\theight=\"3\"\n\t\t\t\tborderRadius=\"circle\"\n\t\t\t\tbackground=\"backgroundSecondary\"\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<TokenImage\n\t\t\tsrc={price$.currency.imageUrl.get()}\n\t\t\tonError={() => {\n\t\t\t\tconst price = price$?.get();\n\t\t\t\tif (price) {\n\t\t\t\t\tsetImageLoadErrorCurrencyAddresses((prev) => {\n\t\t\t\t\t\tif (!prev)\n\t\t\t\t\t\t\treturn [price$.currency.contractAddress.get() as Address];\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!prev.includes(price$.currency.contractAddress.get() as Address)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\tprice$.currency.contractAddress.get() as Address,\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn prev;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}}\n\t\t\tsize=\"xs\"\n\t\t/>\n\t);\n}\nexport default CurrencyImage;\n","import { Skeleton } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { useEffect } from 'react';\nimport type { Hex } from 'viem';\nimport type { ChainId, Currency } from '../../../../../_internal';\nimport { useCurrencies } from '../../../../../hooks';\nimport { useCurrencyOptions } from '../../../../../hooks/useCurrencyOptions';\nimport {\n\tCustomSelect,\n\ttype SelectItem,\n} from '../../../../components/_internals/custom-select/CustomSelect';\n\ntype CurrencyOptionsSelectProps = {\n\tcollectionAddress: Hex;\n\tchainId: ChainId;\n\tselectedCurrency$: Observable<Currency | null | undefined>;\n\tsecondCurrencyAsDefault?: boolean;\n};\n\nconst CurrencyOptionsSelect = observer(function CurrencyOptionsSelect({\n\tchainId,\n\tcollectionAddress,\n\tsecondCurrencyAsDefault,\n\tselectedCurrency$,\n}: CurrencyOptionsSelectProps) {\n\tconst currency = selectedCurrency$.get() as Currency;\n\tconst currencyOptions = useCurrencyOptions({ collectionAddress });\n\tconst { data: currencies, isLoading: currenciesLoading } = useCurrencies({\n\t\tchainId,\n\t\tcurrencyOptions,\n\t});\n\n\t// set default currency\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n\tuseEffect(() => {\n\t\tif (\n\t\t\tcurrencies &&\n\t\t\tcurrencies.length > 0 &&\n\t\t\t!selectedCurrency$.get()?.contractAddress\n\t\t) {\n\t\t\t// We dont support native currency listings for any marketplace other than Sequence Marketplace v2\n\t\t\t// So we need to set the set another currency as the default\n\t\t\tif (secondCurrencyAsDefault) {\n\t\t\t\tselectedCurrency$.set(currencies[1]);\n\t\t\t} else {\n\t\t\t\tselectedCurrency$.set(currencies[0]);\n\t\t\t}\n\t\t}\n\t}, [currencies]);\n\n\tif (!currencies || currenciesLoading || !currency.symbol) {\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.symbol,\n\t\t\t\tvalue: currency.contractAddress,\n\t\t\t\tcontent: currency.symbol,\n\t\t\t}) as SelectItem,\n\t);\n\n\tconst onChange = (value: string) => {\n\t\tconst selectedCurrency = currencies.find(\n\t\t\t(currency) => currency.contractAddress === value,\n\t\t);\n\t\tselectedCurrency$.set(selectedCurrency);\n\t};\n\n\treturn (\n\t\t<CustomSelect\n\t\t\titems={options}\n\t\t\tonValueChange={onChange}\n\t\t\tdefaultValue={{\n\t\t\t\tvalue: currency.contractAddress,\n\t\t\t\tcontent: currency.symbol,\n\t\t\t}}\n\t\t/>\n\t);\n});\n\nexport default CurrencyOptionsSelect;\n","import { type Observable } from '@legendapp/state';\nimport { useState, useEffect } from 'react';\nimport { parseUnits } from 'viem';\nimport type { Price } from '../../../../../../../types';\n\ntype UsePriceInputProps = {\n\tprice$: Observable<Price | undefined>;\n\tcurrencyDecimals: number;\n\tonPriceChange?: () => void;\n};\n\nexport const usePriceInput = ({\n\tprice$,\n\tcurrencyDecimals,\n\tonPriceChange,\n}: UsePriceInputProps) => {\n\tconst [value, setValue] = useState('');\n\n\t// Update price amount when currency changes to trigger balance check\n\tuseEffect(() => {\n\t\tconst currentAmount = value.replace(/,/g, '');\n\t\tif (currentAmount) {\n\t\t\ttry {\n\t\t\t\tconst parsedAmount = parseUnits(\n\t\t\t\t\tcurrentAmount,\n\t\t\t\t\tNumber(currencyDecimals),\n\t\t\t\t);\n\t\t\t\tprice$.amountRaw.set(parsedAmount.toString());\n\t\t\t} catch {\n\t\t\t\tprice$.amountRaw.set('0');\n\t\t\t}\n\t\t}\n\t}, [currencyDecimals, value, price$]);\n\n\tconst handlePriceChange = (newValue: string) => {\n\t\tsetValue(newValue); \n\t\t\n try {\n\t\t\tconst parsedAmount = parseUnits(newValue, Number(currencyDecimals));\n\t\t\tprice$.amountRaw.set(parsedAmount.toString());\n\n\t\t\tif (onPriceChange && parsedAmount !== 0n) {\n\t\t\t\tonPriceChange();\n\t\t\t}\n\t\t} catch {\n\t\t\tprice$.amountRaw.set('0');\n\t\t}\n\t};\n\n\treturn {\n\t\tvalue,\n\t\thandlePriceChange,\n\t};\n};\n","import { type Observable } from '@legendapp/state';\nimport { useState, useEffect } from 'react';\nimport type { Hex } from 'viem';\nimport type { Price } from '../../../../../../../types';\nimport { useCurrencyBalance } from '../../../../../../hooks/useCurrencyBalance';\n\ntype UseBalanceCheckProps = {\n\tcheckBalance?: {\n\t\tenabled: boolean;\n\t\tcallback: (state: boolean) => void;\n\t};\n\tprice$: Observable<Price | undefined>;\n\tcurrencyAddress: Hex;\n\tchainId: number;\n\tuserAddress: Hex;\n\tcurrencyDecimals: number;\n};\n\nexport const useBalanceCheck = ({\n\tcheckBalance,\n\tprice$,\n\tcurrencyAddress,\n\tchainId,\n\tuserAddress,\n\tcurrencyDecimals,\n}: UseBalanceCheckProps) => {\n\tconst [balanceError, setBalanceError] = useState('');\n\n\tconst { data: balance, isSuccess: isBalanceSuccess } = useCurrencyBalance({\n\t\tcurrencyAddress,\n\t\tchainId,\n\t\tuserAddress,\n\t});\n\n\tuseEffect(() => {\n\t\tif (!checkBalance?.enabled) {\n\t\t\tsetBalanceError('');\n\t\t\treturn;\n\t\t}\n\n\t\tconst priceAmountRaw = price$.amountRaw.get() || '0';\n\t\tconst hasInsufficientBalance =\n\t\t\tisBalanceSuccess &&\n\t\t\tpriceAmountRaw &&\n\t\t\tcurrencyDecimals &&\n\t\t\tBigInt(priceAmountRaw) > (balance?.value || 0n);\n\n\t\tif (hasInsufficientBalance) {\n\t\t\tsetBalanceError('Insufficient balance');\n\t\t\tcheckBalance.callback(true);\n\t\t} else {\n\t\t\tsetBalanceError('');\n\t\t\tcheckBalance.callback(false);\n\t\t}\n\t}, [\n\t\tprice$.amountRaw.get(),\n\t\tcurrencyAddress,\n\t\tbalance?.value,\n\t\tisBalanceSuccess,\n\t\tcheckBalance,\n\t\tcurrencyDecimals,\n\t]);\n\n\treturn {\n\t\tbalanceError,\n\t};\n};\n","import { Box, IconButton, NumericInput } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport SvgMinusIcon from '../../../../icons/MinusIcon';\nimport SvgPlusIcon from '../../../../icons/PlusIcon';\nimport { quantityInputWrapper } from './styles.css';\n\ntype QuantityInputProps = {\n\t$quantity: Observable<string>;\n\t$invalidQuantity: Observable<boolean>;\n\tdecimals: number;\n\tmaxQuantity: string;\n};\n\nexport default function QuantityInput({\n\t$quantity,\n\t$invalidQuantity,\n\tdecimals,\n\tmaxQuantity,\n}: QuantityInputProps) {\n\tfunction handleChangeQuantity(value: string) {\n\t\tconst sanitizedValue = value.replace(/[^\\d.]/g, '');\n\t\tconst decimalParts = sanitizedValue.split('.');\n\n\t\tlet formattedValue = sanitizedValue;\n\t\tif (decimalParts.length > 2) {\n\t\t\tformattedValue = `${decimalParts[0]}.${decimalParts[1]}`;\n\t\t}\n\n\t\tconst finalValue = formatQuantity(formattedValue);\n\t\t$quantity.set(finalValue);\n\t\tvalidateQuantity(finalValue);\n\t}\n\n\tfunction validateQuantity(value: string) {\n\t\tif (!value || value.trim() === '' || Number.isNaN(Number(value))) {\n\t\t\t$invalidQuantity.set(true);\n\t\t\treturn;\n\t\t}\n\n\t\tconst numValue = Number(value);\n\n\t\tconst decimalParts = value.split('.');\n\t\tif (decimalParts.length > 1 && decimalParts[1].length > decimals) {\n\t\t\t$invalidQuantity.set(true);\n\t\t\treturn;\n\t\t}\n\n\t\t$invalidQuantity.set(numValue <= 0 || numValue > Number(maxQuantity));\n\t}\n\n\tfunction formatQuantity(value: string) {\n\t\tif (!value || Number.isNaN(Number(value))) {\n\t\t\treturn '0';\n\t\t}\n\n\t\tconst decimalParts = value.split('.');\n\t\tif (decimalParts.length > 1 && decimalParts[1].length > decimals) {\n\t\t\treturn Number(value).toFixed(decimals);\n\t\t}\n\n\t\tif (Number(value) > Number(maxQuantity)) {\n\t\t\treturn maxQuantity;\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tfunction handleIncrement() {\n\t\tconst currentValue = Number(quantity) || 0;\n\t\tconst maxValue = Number(maxQuantity);\n\t\tconst newValue = Math.min(currentValue + 1, maxValue);\n\t\thandleChangeQuantity(newValue.toString());\n\t\treturn newValue.toString();\n\t}\n\n\tfunction handleDecrement() {\n\t\tconst minValue = decimals ? Number(`0.${'0'.repeat(decimals - 1)}1`) : 1;\n\t\tconst currentValue = Number(quantity) || 0;\n\t\tconst newValue = Math.max(currentValue - 1, minValue);\n\t\tconst stringValue = newValue.toString();\n\t\thandleChangeQuantity(stringValue);\n\t\treturn stringValue;\n\t}\n\n\tconst quantity = $quantity.get();\n\tconst invalidQuantity = $invalidQuantity.get();\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={decimals || 0}\n\t\t\t\tpaddingLeft={'1'}\n\t\t\t\tlabel={'Enter quantity'}\n\t\t\t\tlabelLocation=\"top\"\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={!quantity || Number(quantity) <= 0}\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}\n\t\t\t\tonChange={(e) => handleChangeQuantity(e.target.value)}\n\t\t\t\twidth={'full'}\n\t\t\t/>\n\t\t\t{invalidQuantity && (\n\t\t\t\t<Box color=\"negative\" fontSize=\"small\">\n\t\t\t\t\t{invalidQuantity}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t</Box>\n\t);\n}\n","import { Box, Image, Skeleton, Text } from '@0xsequence/design-system';\nimport type { Hex } from 'viem';\nimport { useCollectible } from '../../../../../hooks';\nimport ChessTileImage from '../../../../images/chess-tile.png';\nimport { tokenPreview } from './styles.css';\n\ntype TokenPreviewProps = {\n\tcollectionName?: string;\n\tcollectionAddress: Hex;\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 || ChessTileImage}\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\tstyle={{ objectFit: 'cover' }}\n\t\t\t/>\n\n\t\t\t<Box display={'flex'} flexDirection={'column'} marginLeft={'3'}>\n\t\t\t\t<Text\n\t\t\t\t\tfontSize={'small'}\n\t\t\t\t\tcolor={'text80'}\n\t\t\t\t\tfontWeight={'medium'}\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\n\t\t\t\t\t{collectionName}\n\t\t\t\t</Text>\n\n\t\t\t\t<Text\n\t\t\t\t\tfontSize={'small'}\n\t\t\t\t\tfontWeight={'bold'}\n\t\t\t\t\tcolor={'text100'}\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\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 { observable } from '@legendapp/state';\nimport { addDays } from 'date-fns/addDays';\nimport type { Hex } from 'viem';\nimport { type Currency, OrderbookKind, type Price } from '../../../../types';\nimport type { CollectionType, TransactionSteps } from '../../../_internal';\nimport type { BaseModalState, ModalCallbacks } from '../_internal/types';\n\ntype MakeOfferState = BaseModalState & {\n\torderbookKind: OrderbookKind;\n\tcollectibleId: string;\n\tofferPrice: Price;\n\tofferPriceChanged: boolean;\n\tquantity: string;\n\texpiry: Date;\n\tinvalidQuantity: boolean;\n\tcollectionType?: CollectionType;\n\tsteps: TransactionSteps;\n};\n\nexport type OpenMakeOfferModalArgs = {\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tcollectibleId: string;\n\torderbookKind: OrderbookKind;\n\tcallbacks?: ModalCallbacks;\n};\n\ntype Actions = {\n\topen: (args: OpenMakeOfferModalArgs) => void;\n\tclose: () => void;\n};\n\nconst initialState: MakeOfferState = {\n\tisOpen: false,\n\tcollectionAddress: '' as Hex,\n\tchainId: '',\n\tcollectibleId: '',\n\torderbookKind: OrderbookKind.reservoir,\n\tcallbacks: undefined,\n\tofferPrice: {\n\t\tamountRaw: '0',\n\t\tcurrency: {} as Currency,\n\t},\n\tofferPriceChanged: false,\n\tquantity: '1',\n\tinvalidQuantity: false,\n\texpiry: new Date(addDays(new Date(), 7).toJSON()),\n\tcollectionType: undefined,\n\tsteps: {\n\t\tapproval: {\n\t\t\texist: false,\n\t\t\tisExecuting: false,\n\t\t\texecute: () => Promise.resolve(),\n\t\t},\n\t\ttransaction: {\n\t\t\texist: false,\n\t\t\tisExecuting: false,\n\t\t\texecute: () => Promise.resolve(),\n\t\t},\n\t},\n};\n\nconst actions: Actions = {\n\topen: (args) => {\n\t\tmakeOfferModal$.collectionAddress.set(args.collectionAddress);\n\t\tmakeOfferModal$.chainId.set(args.chainId);\n\t\tmakeOfferModal$.collectibleId.set(args.collectibleId);\n\t\tmakeOfferModal$.orderbookKind.set(args.orderbookKind);\n\t\tmakeOfferModal$.callbacks.set(args.callbacks);\n\t\tmakeOfferModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tmakeOfferModal$.isOpen.set(false);\n\t\tmakeOfferModal$.set({ ...initialState, ...actions });\n\t},\n};\n\nexport const makeOfferModal$ = observable<MakeOfferState & Actions>({\n\t...initialState,\n\t...actions,\n});\n","import { Show, observer } from '@legendapp/state/react';\nimport { parseUnits } from 'viem';\nimport type { MarketplaceKind } from '../../../_internal/api/marketplace.gen';\nimport { useCollection, useCurrency } from '../../../hooks';\nimport {\n\tActionModal,\n\ttype ActionModalProps,\n} from '../_internal/components/actionModal/ActionModal';\nimport { ErrorModal } from '../_internal/components/actionModal/ErrorModal';\nimport { LoadingModal } from '../_internal/components/actionModal/LoadingModal';\nimport TokenPreview from '../_internal/components/tokenPreview';\nimport TransactionDetails from '../_internal/components/transactionDetails';\nimport TransactionHeader from '../_internal/components/transactionHeader';\nimport { sellModal$ } from './store';\nimport { useSell } from './hooks/useSell';\n\nexport const SellModal = () => {\n\treturn <Show if={sellModal$.isOpen}>{() => <Modal />}</Show>;\n};\n\nconst Modal = observer(() => {\n\tconst { tokenId, collectionAddress, chainId, order, callbacks } =\n\t\tsellModal$.get();\n\tconst steps$ = sellModal$.steps;\n\tconst { data: collectible } = useCollection({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\n\tconst {\n\t\tdata: collection,\n\t\tisLoading: collectionLoading,\n\t\tisError: collectionError,\n\t} = useCollection({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\tconst {\n\t\tdata: currency,\n\t\tisLoading: currencyLoading,\n\t\tisError: currencyError,\n\t} = useCurrency({\n\t\tchainId,\n\t\tcurrencyAddress: order?.priceCurrencyAddress ?? '',\n\t});\n\n\tconst { isLoading, executeApproval, sell } = useSell({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId: tokenId,\n\t\tmarketplace: order?.marketplace as MarketplaceKind,\n\t\tordersData: [\n\t\t\t{\n\t\t\t\torderId: order?.orderId ?? '',\n\t\t\t\tquantity: order?.quantityRemaining\n\t\t\t\t\t? parseUnits(\n\t\t\t\t\t\t\torder.quantityRemaining,\n\t\t\t\t\t\t\tcollectible?.decimals || 0,\n\t\t\t\t\t\t).toString()\n\t\t\t\t\t: '1',\n\t\t\t},\n\t\t],\n\t\tcallbacks,\n\t\tcloseMainModal: () => sellModal$.close(),\n\t\tsteps$: steps$,\n\t});\n\n\tif (collectionLoading || currencyLoading) {\n\t\treturn (\n\t\t\t<LoadingModal\n\t\t\t\tisOpen={sellModal$.isOpen.get()}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={sellModal$.close}\n\t\t\t\ttitle=\"You have an offer\"\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (collectionError || order === undefined || currencyError) {\n\t\treturn (\n\t\t\t<ErrorModal\n\t\t\t\tisOpen={sellModal$.isOpen.get()}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={sellModal$.close}\n\t\t\t\ttitle=\"You have an offer\"\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst ctas = [\n\t\t{\n\t\t\tlabel: 'Approve TOKEN',\n\t\t\tonClick: async () => await executeApproval(),\n\t\t\thidden: !steps$.approval.exist.get(),\n\t\t\tpending: steps$.approval.isExecuting.get(),\n\t\t\tvariant: 'glass' as const,\n\t\t\tdisabled: isLoading || order?.quantityRemaining === '0',\n\t\t},\n\t\t{\n\t\t\tlabel: 'Accept',\n\t\t\tonClick: () => sell(),\n\t\t\tpending: steps$.transaction.isExecuting.get(),\n\t\t\tdisabled:\n\t\t\t\tsteps$.approval.isExecuting.get() ||\n\t\t\t\tsteps$.approval.exist.get() ||\n\t\t\t\torder?.quantityRemaining === '0',\n\t\t},\n\t] satisfies ActionModalProps['ctas'];\n\n\treturn (\n\t\t<ActionModal\n\t\t\tisOpen={sellModal$.isOpen.get()}\n\t\t\tchainId={Number(chainId)}\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\tcurrencyImageUrl={currency?.imageUrl}\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? {\n\t\t\t\t\t\t\t\tamountRaw: order?.priceAmount,\n\t\t\t\t\t\t\t\tcurrency,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tcurrencyImageUrl={currency?.imageUrl}\n\t\t\t/>\n\t\t</ActionModal>\n\t);\n});\n","import { Box, Image, Skeleton, Text } from '@0xsequence/design-system';\nimport { type Hex, formatUnits } from 'viem';\nimport type { Price } from '../../../../../../types';\nimport {\n\tuseMarketplaceConfig,\n\tuseRoyaltyPercentage,\n} from '../../../../../hooks';\n\ntype TransactionDetailsProps = {\n\tcollectibleId: string;\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tprice?: Price;\n\tcurrencyImageUrl?: string;\n\t// We use a placeholder price for create listing modal\n\tshowPlaceholderPrice?: boolean;\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\tshowPlaceholderPrice,\n\tcurrencyImageUrl,\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 && price) {\n\t\tformattedAmount = (\n\t\t\tNumber.parseFloat(formattedAmount) -\n\t\t\t(Number.parseFloat(formattedAmount) * Number(royaltyPercentage)) / 100\n\t\t).toFixed(price.currency.decimals);\n\t}\n\n\tif (marketplaceFeePercentage !== undefined && formattedAmount && price) {\n\t\tformattedAmount = (\n\t\t\tNumber.parseFloat(formattedAmount) -\n\t\t\t(Number.parseFloat(formattedAmount) * marketplaceFeePercentage) / 100\n\t\t).toFixed(price.currency.decimals);\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'} fontFamily=\"body\">\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<Image src={currencyImageUrl} width=\"3\" height=\"3\" />\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'} fontFamily=\"body\">\n\t\t\t\t\t\t{showPlaceholderPrice ? '0' : formattedAmount}{' '}\n\t\t\t\t\t\t{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 { Box, Image, Skeleton, Text } from '@0xsequence/design-system';\nimport { formatDistanceToNow } from 'date-fns';\n\ntype TransactionHeaderProps = {\n\ttitle: string;\n\tcurrencyImageUrl?: string;\n\tdate?: Date;\n};\n\nexport default function TransactionHeader({\n\ttitle,\n\tcurrencyImageUrl,\n\tdate,\n}: TransactionHeaderProps) {\n\treturn (\n\t\t<Box display=\"flex\" alignItems=\"center\" width=\"full\">\n\t\t\t<Text\n\t\t\t\tfontSize=\"small\"\n\t\t\t\tfontWeight=\"medium\"\n\t\t\t\tcolor=\"text80\"\n\t\t\t\tmarginRight=\"1\"\n\t\t\t\tfontFamily=\"body\"\n\t\t\t>\n\t\t\t\t{title}\n\t\t\t</Text>\n\n\t\t\t<Image src={currencyImageUrl} width=\"3\" height=\"3\" marginRight=\"1\" />\n\n\t\t\t{(date && (\n\t\t\t\t<Text\n\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\tcolor=\"text50\"\n\t\t\t\t\tflexGrow=\"1\"\n\t\t\t\t\ttextAlign=\"right\"\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\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 { observable } from '@legendapp/state';\nimport type { Hex } from 'viem';\nimport type { Order, TransactionSteps } from '../../../_internal';\nimport type { BaseModalState, ModalCallbacks } from '../_internal/types';\n\nexport type OpenSellModalArgs = {\n\tcollectionAddress: Hex;\n\tchainId: string;\n\ttokenId: string;\n\torder: Order;\n\tcallbacks?: ModalCallbacks;\n};\n\ntype SellModalState = BaseModalState & {\n\ttokenId: string;\n\torder?: Order;\n\tsteps: TransactionSteps;\n};\n\ntype Actions = {\n\topen: (args: OpenSellModalArgs) => void;\n\tclose: () => void;\n};\n\nconst initialState: SellModalState & Actions = {\n\tisOpen: false,\n\tcollectionAddress: '' as Hex,\n\tchainId: '',\n\ttokenId: '',\n\torder: undefined,\n\tcallbacks: undefined,\n\n\topen: (args) => {\n\t\tsellModal$.collectionAddress.set(args.collectionAddress);\n\t\tsellModal$.chainId.set(args.chainId);\n\t\tsellModal$.tokenId.set(args.tokenId);\n\t\tsellModal$.order.set(args.order);\n\t\tsellModal$.callbacks.set(args.callbacks);\n\t\tsellModal$.isOpen.set(true);\n\t},\n\n\tclose: () => {\n\t\tsellModal$.isOpen.set(false);\n\t\tsellModal$.callbacks.set(undefined);\n\t},\n\tsteps: {\n\t\tapproval: {\n\t\t\texist: false,\n\t\t\tisExecuting: false,\n\t\t\texecute: () => Promise.resolve(),\n\t\t},\n\t\ttransaction: {\n\t\t\texist: false,\n\t\t\tisExecuting: false,\n\t\t\texecute: () => Promise.resolve(),\n\t\t},\n\t},\n};\n\nexport const sellModal$ = observable(initialState);\n","import {\n\tGenerateSellTransactionArgs,\n\tgetMarketplaceClient,\n\tMarketplaceKind,\n\tOrderData,\n\tStepType,\n} from '../../../../_internal';\nimport { useQuery } from '@tanstack/react-query';\nimport { useWallet } from '../../../../_internal/transaction-machine/useWallet';\nimport { useConfig } from '../../../../hooks/useConfig';\nimport { useFees } from '../../BuyModal/hooks/useFees';\n\nexport interface UseGetTokenApprovalDataArgs {\n\tchainId: string;\n\tcollectionAddress: string;\n\tmarketplace: MarketplaceKind;\n\tordersData: Array<OrderData>;\n}\n\nexport const useGetTokenApprovalData = (\n\tparams: UseGetTokenApprovalDataArgs,\n) => {\n\tconst config = useConfig();\n\tconst { wallet } = useWallet();\n\tconst marketplaceClient = getMarketplaceClient(params.chainId, config);\n\tconst { amount, receiver } = useFees({\n\t\tchainId: Number(params.chainId),\n\t\tcollectionAddress: params.collectionAddress,\n\t});\n\n\tconst { data, isLoading, isSuccess } = useQuery({\n\t\tqueryKey: ['token-approval-data', params.ordersData],\n\t\tqueryFn: async () => {\n\t\t\tconst address = await wallet!.address();\n\t\t\tconst args = {\n\t\t\t\tcollectionAddress: params.collectionAddress,\n\t\t\t\twalletType: wallet!.walletKind,\n\t\t\t\tseller: address,\n\t\t\t\tmarketplace: params.marketplace,\n\t\t\t\tordersData: params.ordersData,\n\t\t\t\tadditionalFees: [\n\t\t\t\t\t{\n\t\t\t\t\t\tamount,\n\t\t\t\t\t\treceiver,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t} satisfies GenerateSellTransactionArgs;\n\t\t\tconst steps = await marketplaceClient\n\t\t\t\t.generateSellTransaction(args)\n\t\t\t\t.then((resp) => resp.steps);\n\n\t\t\tconst tokenApprovalStep = steps.find(\n\t\t\t\t(step) => step.id === StepType.tokenApproval,\n\t\t\t);\n\t\t\tif (!tokenApprovalStep) {\n\t\t\t\treturn {\n\t\t\t\t\tstep: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstep: tokenApprovalStep,\n\t\t\t};\n\t\t},\n\t\tenabled: !!wallet && !!params.collectionAddress,\n\t});\n\n\treturn {\n\t\tdata,\n\t\tisLoading,\n\t\tisSuccess,\n\t};\n};\n","import { avalanche, optimism } from 'viem/chains';\nimport type { AdditionalFee } from '../../../../_internal';\nimport { useMarketplaceConfig } from '../../../../hooks';\n\nexport const useFees = ({\n\tchainId,\n\tcollectionAddress,\n}: { chainId: number; collectionAddress: string }) => {\n\tconst defaultFee = 2.5;\n\tconst defaultPlatformFeeRecipient =\n\t\t'0x858dB1cbF6D09D447C96A11603189b49B2D1C219';\n\tconst avalancheAndOptimismPlatformFeeRecipient =\n\t\t'0x400cdab4676c17aec07e8ec748a5fc3b674bca41';\n\tconst { data: marketplaceConfig } = useMarketplaceConfig();\n\n\tconst collection = marketplaceConfig?.collections.find(\n\t\t(collection) =>\n\t\t\tcollection.collectionAddress.toLowerCase() ===\n\t\t\t\tcollectionAddress.toLowerCase() &&\n\t\t\tchainId === Number(collection.chainId),\n\t);\n\n\tconst avalancheOrOptimism =\n\t\tchainId === avalanche.id || chainId === optimism.id;\n\tconst receiver = avalancheOrOptimism\n\t\t? avalancheAndOptimismPlatformFeeRecipient\n\t\t: defaultPlatformFeeRecipient;\n\n\tconst percentageToBPS = (percentage: string | number) =>\n\t\t(Number(percentage) * 10000) / 100;\n\n\treturn {\n\t\tamount: percentageToBPS(\n\t\t\tcollection?.marketplaceFeePercentage || defaultFee,\n\t\t).toString(),\n\t\treceiver,\n\t} satisfies AdditionalFee;\n};\n","import {\n\tExecuteType,\n\tgetMarketplaceClient,\n\tMarketplaceKind,\n\tOrderData,\n\tStep,\n\tStepType,\n\tTransactionSteps,\n} from '../../../../_internal';\nimport { ModalCallbacks } from '../../_internal/types';\nimport { TransactionType } from '../../../../_internal/transaction-machine/execute-transaction';\nimport { useTransactionStatusModal } from '../../_internal/components/transactionStatusModal';\nimport { Address } from 'viem';\nimport { Observable } from '@legendapp/state';\nimport { useWallet } from '../../../../_internal/transaction-machine/useWallet';\nimport { SignatureStep } from '../../../../_internal/transaction-machine/utils';\nimport { useGetReceiptFromHash } from '../../../../hooks/useGetReceiptFromHash';\nimport { useConfig, useGenerateSellTransaction } from '../../../../hooks';\nimport { useFees } from '../../BuyModal/hooks/useFees';\n\nexport type ExecutionState = 'approval' | 'sell' | null;\n\ninterface UseTransactionStepsArgs {\n\tcollectibleId: string;\n\tchainId: string;\n\tcollectionAddress: string;\n\tmarketplace: MarketplaceKind;\n\tordersData: Array<OrderData>;\n\tcallbacks?: ModalCallbacks;\n\tcloseMainModal: () => void;\n\tsteps$: Observable<TransactionSteps>;\n}\n\nexport const useTransactionSteps = ({\n\tcollectibleId,\n\tchainId,\n\tcollectionAddress,\n\tmarketplace,\n\tordersData,\n\tcallbacks,\n\tcloseMainModal,\n\tsteps$,\n}: UseTransactionStepsArgs) => {\n\tconst { wallet } = useWallet();\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\tconst sdkConfig = useConfig();\n\tconst marketplaceClient = getMarketplaceClient(chainId, sdkConfig);\n\tconst { waitForReceipt } = useGetReceiptFromHash();\n\tconst { amount, receiver } = useFees({\n\t\tchainId: Number(chainId),\n\t\tcollectionAddress: collectionAddress,\n\t});\n\tconst { generateSellTransactionAsync, isPending: generatingSteps } =\n\t\tuseGenerateSellTransaction({\n\t\t\tchainId,\n\t\t\tonSuccess: (steps) => {\n\t\t\t\tif (!steps) return;\n\t\t\t},\n\t\t});\n\n\tconst getSellSteps = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tconst address = await wallet.address();\n\n\t\t\tconst steps = await generateSellTransactionAsync({\n\t\t\t\tcollectionAddress,\n\t\t\t\twalletType: wallet.walletKind,\n\t\t\t\tmarketplace,\n\t\t\t\tordersData,\n\t\t\t\tadditionalFees: [\n\t\t\t\t\t{\n\t\t\t\t\t\tamount,\n\t\t\t\t\t\treceiver,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tseller: address,\n\t\t\t});\n\n\t\t\treturn steps;\n\t\t} catch (error) {\n\t\t\tif (callbacks?.onError) {\n\t\t\t\tcallbacks.onError(error as Error);\n\t\t\t} else {\n\t\t\t\tconsole.debug('onError callback not provided:', error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst executeApproval = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tsteps$.approval.isExecuting.set(true);\n\t\t\tconst approvalStep = await getSellSteps().then((steps) =>\n\t\t\t\tsteps?.find((step) => step.id === StepType.tokenApproval),\n\t\t\t);\n\n\t\t\tconst hash = await wallet.handleSendTransactionStep(\n\t\t\t\tNumber(chainId),\n\t\t\t\tapprovalStep as any,\n\t\t\t);\n\n\t\t\tconst receipt = await waitForReceipt(hash);\n\n\t\t\tif (receipt) {\n\t\t\t\tsteps$.approval.isExecuting.set(false);\n\t\t\t\tsteps$.approval.exist.set(false);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsteps$.approval.isExecuting.set(false);\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst sell = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tsteps$.transaction.isExecuting.set(true);\n\t\t\tconst steps = await getSellSteps();\n\t\t\tconst transactionStep = steps?.find((step) => step.id === StepType.sell);\n\t\t\tconst signatureStep = steps?.find(\n\t\t\t\t(step) => step.id === StepType.signEIP712,\n\t\t\t);\n\n\t\t\tconsole.debug('transactionStep', transactionStep);\n\t\t\tconsole.debug('signatureStep', signatureStep);\n\n\t\t\tif (!transactionStep && !signatureStep) {\n\t\t\t\tthrow new Error('No transaction or signature step found');\n\t\t\t}\n\n\t\t\tlet hash, orderId: string | undefined;\n\n\t\t\tif (transactionStep) {\n\t\t\t\thash = await executeTransaction({ transactionStep });\n\t\t\t}\n\n\t\t\tif (signatureStep) {\n\t\t\t\torderId = await executeSignature({ signatureStep });\n\t\t\t}\n\n\t\t\tcloseMainModal();\n\n\t\t\tshowTransactionStatusModal({\n\t\t\t\ttype: TransactionType.SELL,\n\t\t\t\tcollectionAddress: collectionAddress as Address,\n\t\t\t\tchainId,\n\t\t\t\tcollectibleId,\n\t\t\t\thash,\n\t\t\t\torderId,\n\t\t\t\tcallbacks,\n\t\t\t});\n\n\t\t\tif (hash) {\n\t\t\t\tawait waitForReceipt(hash);\n\t\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\t\tsteps$.transaction.exist.set(false);\n\t\t\t\tif (callbacks?.onSuccess && typeof callbacks.onSuccess === 'function') {\n\t\t\t\t\tcallbacks.onSuccess({ hash });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (orderId) {\n\t\t\t\t// no need to wait for receipt, because the order is already created\n\n\t\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\t\tsteps$.transaction.exist.set(false);\n\n\t\t\t\tif (callbacks?.onSuccess && typeof callbacks.onSuccess === 'function') {\n\t\t\t\t\tcallbacks.onSuccess({ orderId });\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\tsteps$.transaction.exist.set(false);\n\t\t\tif (callbacks?.onError && typeof callbacks.onError === 'function') {\n\t\t\t\tcallbacks.onError(error as Error);\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst executeTransaction = async ({\n\t\ttransactionStep,\n\t}: { transactionStep: Step }) => {\n\t\tif (!wallet) return;\n\n\t\tconst hash = await wallet.handleSendTransactionStep(\n\t\t\tNumber(chainId),\n\t\t\ttransactionStep as any,\n\t\t);\n\n\t\treturn hash;\n\t};\n\n\tconst executeSignature = async ({\n\t\tsignatureStep,\n\t}: { signatureStep: Step }) => {\n\t\tif (!wallet) return;\n\n\t\tconst signature = await wallet.handleSignMessageStep(\n\t\t\tsignatureStep as SignatureStep,\n\t\t);\n\n\t\tconst result = await marketplaceClient.execute({\n\t\t\tsignature: signature as string,\n\t\t\texecuteType: ExecuteType.order,\n\t\t\tbody: signatureStep.post?.body,\n\t\t});\n\n\t\treturn result.orderId;\n\t};\n\n\treturn {\n\t\tgeneratingSteps,\n\t\texecuteApproval,\n\t\tsell,\n\t};\n};\n","import { Observable } from '@legendapp/state';\nimport { ModalCallbacks } from '../../_internal/types';\nimport { useGetTokenApprovalData } from './useGetTokenApproval';\nimport { useTransactionSteps } from './useTransactionSteps';\nimport { useEffect } from 'react';\nimport {\n\tMarketplaceKind,\n\tOrderData,\n\tTransactionSteps,\n} from '../../../../_internal';\n\ninterface UseSellArgs {\n\tcollectibleId: string;\n\tchainId: string;\n\tcollectionAddress: string;\n\tmarketplace: MarketplaceKind;\n\tordersData: Array<OrderData>;\n\tcallbacks?: ModalCallbacks;\n\tcloseMainModal: () => void;\n\tsteps$: Observable<TransactionSteps>;\n}\n\nexport const useSell = ({\n\tcollectibleId,\n\tchainId,\n\tcollectionAddress,\n\tmarketplace,\n\tordersData,\n\tcallbacks,\n\tcloseMainModal,\n\tsteps$,\n}: UseSellArgs) => {\n\tconst { data: tokenApproval, isLoading: tokenApprovalIsLoading } =\n\t\tuseGetTokenApprovalData({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tordersData,\n\t\t\tmarketplace,\n\t\t});\n\n\tuseEffect(() => {\n\t\tif (tokenApproval?.step && !tokenApprovalIsLoading) {\n\t\t\tsteps$.approval.exist.set(true);\n\t\t}\n\t}, [tokenApproval?.step, tokenApprovalIsLoading]);\n\n\tconst { generatingSteps, executeApproval, sell } = useTransactionSteps({\n\t\tcollectibleId,\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tmarketplace,\n\t\tordersData,\n\t\tcallbacks,\n\t\tcloseMainModal,\n\t\tsteps$,\n\t});\n\n\treturn {\n\t\tisLoading: generatingSteps,\n\t\texecuteApproval,\n\t\tsell,\n\t\ttokenApprovalStepExists: tokenApproval?.step !== null,\n\t\ttokenApprovalIsLoading,\n\t};\n};\n","'use client';\n\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 '../../../_internal';\nimport type { ModalCallbacks } from '../_internal/types';\nimport {\n\ttype SuccessfulPurchaseModalState,\n\tsuccessfulPurchaseModal$,\n} from './_store';\nimport {\n\tcloseButton,\n\tcollectiblesGrid,\n\tcollectiblesGridImage,\n\tcollectiblesGridImagePale,\n\tcollectiblesGridItem,\n\tdialogContent,\n\tdialogOverlay,\n} from './styles.css';\n\nexport const useSuccessfulPurchaseModal = (callbacks?: ModalCallbacks) => {\n\treturn {\n\t\tshow: (args: SuccessfulPurchaseModalState['state']) =>\n\t\t\tsuccessfulPurchaseModal$.open({ ...args, defaultCallbacks: callbacks }),\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 type { IconProps } from '@0xsequence/design-system';\nimport { observable } from '@legendapp/state';\nimport type { ComponentType } from 'react';\nimport type { TokenMetadata } from '../../../_internal';\nimport type { ModalCallbacks } from '../_internal/types';\n\nexport interface SuccessfulPurchaseModalState {\n\tisOpen: boolean;\n\topen: (\n\t\targs: SuccessfulPurchaseModalState['state'] & {\n\t\t\tcallbacks?: ModalCallbacks;\n\t\t\tdefaultCallbacks?: ModalCallbacks;\n\t\t},\n\t) => 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\tcallbacks?: ModalCallbacks;\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\tcallbacks,\n\t\tdefaultCallbacks,\n\t}: SuccessfulPurchaseModalState['state'] & {\n\t\tcallbacks?: ModalCallbacks;\n\t\tdefaultCallbacks?: ModalCallbacks;\n\t}) => {\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$.callbacks.set(callbacks || defaultCallbacks);\n\t\tsuccessfulPurchaseModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tsuccessfulPurchaseModal$.isOpen.set(false);\n\t\tsuccessfulPurchaseModal$.callbacks.set(undefined);\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\tcallbacks: undefined,\n};\n\nexport const successfulPurchaseModal$ = observable(initialState);\n","import { CloseIcon, IconButton } from '@0xsequence/design-system';\nimport { Show, observer } from '@legendapp/state/react';\nimport { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport type { Hex } from 'viem';\nimport { useAccount } from 'wagmi';\nimport { useSwitchChainModal } from '../_internal/components/switchChainModal';\nimport type { ModalCallbacks } from '../_internal/types';\nimport { transferModal$ } from './_store';\nimport EnterWalletAddressView from './_views/enterWalletAddress';\nimport FollowWalletInstructionsView from './_views/followWalletInstructions';\nimport { closeButton, dialogOverlay, transferModalContent } from './styles.css';\n\nexport type ShowTransferModalArgs = {\n\tcollectionAddress: Hex;\n\tcollectibleId: string;\n\tchainId: string;\n\tcallbacks?: ModalCallbacks;\n};\n\nexport const useTransferModal = () => {\n\tconst { chainId: accountChainId } = useAccount();\n\tconst { show: showSwitchNetworkModal } = useSwitchChainModal();\n\t// const { errorCallbacks, successCallbacks } = transferModal$.state.get();\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\tonSuccess: () => openModal(args),\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\tonError: (callbacks: ModalCallbacks) => {\n\t\t\ttransferModal$.state.set({\n\t\t\t\t...transferModal$.state.get(),\n\t\t\t\tcallbacks,\n\t\t\t});\n\t\t},\n\t\tonSuccess: (callbacks: ModalCallbacks) => {\n\t\t\ttransferModal$.state.set({\n\t\t\t\t...transferModal$.state.get(),\n\t\t\t\tcallbacks,\n\t\t\t});\n\t\t},\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 { observable } from '@legendapp/state';\nimport type { Hex } from 'viem';\nimport type { ShowTransferModalArgs } from '.';\nimport type { CollectionType } from '../../../_internal';\nimport type { ModalCallbacks } from '../_internal/types';\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\tcollectibleId: string;\n\t\tquantity: string;\n\t\treceiverAddress: string;\n\t\tcallbacks?: ModalCallbacks;\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\tcollectibleId,\n\t\tcallbacks,\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\tcollectibleId,\n\t\t\tcallbacks,\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\ttransferModal$.view.set('enterReceiverAddress');\n\t\ttransferModal$.hash.set(undefined);\n\t},\n\tstate: {\n\t\treceiverAddress: '',\n\t\tcollectionAddress: '0x',\n\t\tchainId: '',\n\t\tcollectibleId: '',\n\t\tquantity: '1',\n\t},\n\tview: 'enterReceiverAddress',\n\thash: undefined,\n};\n\nexport const transferModal$ = observable(initialState);\n","import { Box, Button, Text, TextInput } from '@0xsequence/design-system';\nimport { observable } from '@legendapp/state';\nimport { isAddress } from 'viem';\nimport { useAccount } from 'wagmi';\nimport { useCollection, useListBalances } from '../../../../..';\nimport { type CollectionType, ContractType } from '../../../../../_internal';\nimport AlertMessage from '../../../_internal/components/alertMessage';\nimport QuantityInput from '../../../_internal/components/quantityInput';\nimport { transferModal$ } from '../../_store';\nimport getMessage from '../../messages';\nimport useHandleTransfer from './useHandleTransfer';\n\nconst EnterWalletAddressView = () => {\n\tconst { address } = useAccount();\n\tconst { collectionAddress, collectibleId, chainId, collectionType } =\n\t\ttransferModal$.state.get();\n\tconst $quantity = transferModal$.state.quantity;\n\tconst $invalidQuantity = observable(false);\n\tconst isWalletAddressValid = isAddress(\n\t\ttransferModal$.state.receiverAddress.get(),\n\t);\n\tconst { data: tokenBalance } = useListBalances({\n\t\tchainId,\n\t\tcontractAddress: collectionAddress,\n\t\ttokenId: collectibleId,\n\t\taccountAddress: address ?? '',\n\t\tquery: { enabled: !!address },\n\t});\n\tconst balanceAmount = tokenBalance?.pages[0].balances[0].balance;\n\tconst insufficientBalance: boolean = balanceAmount\n\t\t? $quantity.get() > balanceAmount\n\t\t: true;\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 { transfer } = useHandleTransfer();\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\ttransfer();\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\" fontFamily=\"body\">\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\t$invalidQuantity={$invalidQuantity}\n\t\t\t\t\t\t\tdecimals={collection?.decimals || 0}\n\t\t\t\t\t\t\tmaxQuantity={balanceAmount}\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\tfontFamily=\"body\"\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={\n\t\t\t\t\t!isWalletAddressValid || insufficientBalance || !$quantity.get()\n\t\t\t\t}\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 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 type { QueryKey } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport { ContractType } from '../../../../../../types';\nimport { InvalidContractTypeError } from '../../../../../../utils/_internal/error/transaction';\nimport { balanceQueries } from '../../../../../_internal';\nimport { TransactionType } from '../../../../../_internal/transaction-machine/execute-transaction';\nimport { useTransferTokens } from '../../../../../hooks';\nimport { useTransactionStatusModal } from '../../../_internal/components/transactionStatusModal';\nimport { transferModal$ } from '../../_store';\n\nconst useHandleTransfer = () => {\n\tconst {\n\t\treceiverAddress,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t\tquantity,\n\t\tchainId,\n\t\tcollectionType,\n\t\tcallbacks,\n\t} = transferModal$.state.get();\n\tconst { transferTokensAsync } = useTransferTokens();\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\n\tasync function transfer() {\n\t\tif (\n\t\t\tcollectionType !== ContractType.ERC721 &&\n\t\t\tcollectionType !== ContractType.ERC1155\n\t\t) {\n\t\t\tthrow new InvalidContractTypeError(collectionType);\n\t\t}\n\n\t\tif (collectionType === 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: collectibleId,\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\tcollectibleId,\n\t\t\t\t\tprice: undefined,\n\t\t\t\t\ttype: TransactionType.TRANSFER,\n\t\t\t\t\tqueriesToInvalidate: balanceQueries.all as unknown as QueryKey[],\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\ttransferModal$.view.set('enterReceiverAddress');\n\n\t\t\t\tcallbacks?.onError?.(error as Error);\n\t\t\t}\n\t\t}\n\n\t\tif (collectionType === ContractType.ERC1155) {\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: collectibleId,\n\t\t\t\t\tchainId,\n\t\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\t\tquantity: String(quantity),\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\tcollectibleId,\n\t\t\t\t\tprice: undefined,\n\t\t\t\t\ttype: TransactionType.TRANSFER,\n\t\t\t\t\tqueriesToInvalidate: balanceQueries.all as unknown as QueryKey[],\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\ttransferModal$.view.set('enterReceiverAddress');\n\n\t\t\t\tcallbacks?.onError?.(error as Error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { transfer };\n};\n\nexport default useHandleTransfer;\n","import { Box, Button, Text } from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport AlertMessage from '../../../_internal/components/alertMessage';\nimport getMessage from '../../messages';\n\nconst FollowWalletInstructionsView = observer(() => {\n\treturn (\n\t\t<Box display=\"grid\" gap=\"6\" flexGrow=\"1\">\n\t\t\t<Text color=\"white\" fontSize=\"large\" fontWeight=\"bold\" fontFamily=\"body\">\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 { Box } from '@0xsequence/design-system';\nimport { Show, observer } from '@legendapp/state/react';\nimport { parseUnits } from 'viem';\nimport { useAccount } from 'wagmi';\nimport { type ContractType } from '../../../_internal';\nimport {\n\tuseBalanceOfCollectible,\n\tuseCollectible,\n\tuseCollection,\n} from '../../../hooks';\nimport {\n\tActionModal,\n\ttype ActionModalProps,\n} from '../_internal/components/actionModal/ActionModal';\nimport { ErrorModal } from '../_internal/components/actionModal/ErrorModal';\nimport { LoadingModal } from '../_internal/components/actionModal/LoadingModal';\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$ } from './store';\nimport { dateToUnixTime } from '../../../../utils/date';\nimport { useCreateListing } from './hooks/useCreateListing';\n\nexport const CreateListingModal = () => {\n\treturn <Show if={createListingModal$.isOpen}>{() => <Modal />}</Show>;\n};\n\nconst Modal = observer(() => {\n\tconst state = createListingModal$.get();\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tlistingPrice,\n\t\tcollectibleId,\n\t\torderbookKind,\n\t\tcallbacks,\n\t} = state;\n\tconst steps$ = createListingModal$.steps;\n\n\tconst {\n\t\tdata: collectible,\n\t\tisLoading: collectableIsLoading,\n\t\tisError: collectableIsError,\n\t} = useCollectible({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tconst {\n\t\tdata: collection,\n\t\tisLoading: collectionIsLoading,\n\t\tisError: collectionIsError,\n\t} = useCollection({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\n\tconst { address } = useAccount();\n\n\tconst { data: balance } = useBalanceOfCollectible({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectableId: collectibleId,\n\t\tuserAddress: address ?? undefined,\n\t});\n\n\tconst { isLoading, executeApproval, createListing, tokenApprovalIsLoading } =\n\t\tuseCreateListing({\n\t\t\tlistingInput: {\n\t\t\t\tcontractType: collection?.type as ContractType,\n\t\t\t\tlisting: {\n\t\t\t\t\ttokenId: collectibleId,\n\t\t\t\t\tquantity: parseUnits(\n\t\t\t\t\t\tcreateListingModal$.quantity.get(),\n\t\t\t\t\t\tcollectible?.decimals || 0,\n\t\t\t\t\t).toString(),\n\t\t\t\t\texpiry: dateToUnixTime(createListingModal$.expiry.get()),\n\t\t\t\t\tcurrencyAddress: listingPrice.currency.contractAddress,\n\t\t\t\t\tpricePerToken: listingPrice.amountRaw,\n\t\t\t\t},\n\t\t\t},\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\torderbookKind,\n\t\t\tcallbacks,\n\t\t\tcloseMainModal: () => createListingModal$.close(),\n\t\t\tsteps$: steps$,\n\t\t});\n\n\tif (collectableIsLoading || collectionIsLoading) {\n\t\treturn (\n\t\t\t<LoadingModal\n\t\t\t\tisOpen={createListingModal$.isOpen.get()}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={createListingModal$.close}\n\t\t\t\ttitle=\"List item for sale\"\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (collectableIsError || collectionIsError) {\n\t\treturn (\n\t\t\t<ErrorModal\n\t\t\t\tisOpen={createListingModal$.isOpen.get()}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={createListingModal$.close}\n\t\t\t\ttitle=\"List item for sale\"\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst ctas = [\n\t\t{\n\t\t\tlabel: 'Approve TOKEN',\n\t\t\tonClick: async () => await executeApproval(),\n\t\t\thidden: !steps$.approval.exist.get(),\n\t\t\tpending: steps$?.approval.isExecuting.get(),\n\t\t\tvariant: 'glass' as const,\n\t\t\tdisabled:\n\t\t\t\tcreateListingModal$.invalidQuantity.get() ||\n\t\t\t\tlistingPrice.amountRaw === '0' ||\n\t\t\t\tsteps$?.approval.isExecuting.get() ||\n\t\t\t\ttokenApprovalIsLoading ||\n\t\t\t\tisLoading,\n\t\t},\n\t\t{\n\t\t\tlabel: 'List item for sale',\n\t\t\tonClick: () => createListing(),\n\t\t\tpending: steps$?.transaction.isExecuting.get(),\n\t\t\tdisabled:\n\t\t\t\tsteps$.approval.exist.get() ||\n\t\t\t\ttokenApprovalIsLoading ||\n\t\t\t\tlistingPrice.amountRaw === '0' ||\n\t\t\t\tcreateListingModal$.invalidQuantity.get() ||\n\t\t\t\tisLoading,\n\t\t},\n\t] satisfies ActionModalProps['ctas'];\n\n\treturn (\n\t\t<ActionModal\n\t\t\tisOpen={createListingModal$.isOpen.get()}\n\t\t\tchainId={Number(chainId)}\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={collection?.name}\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$price={createListingModal$.listingPrice}\n\t\t\t\t/>\n\n\t\t\t\t{listingPrice.amountRaw !== '0' && (\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{collection?.type === 'ERC1155' && balance && (\n\t\t\t\t<QuantityInput\n\t\t\t\t\t$quantity={createListingModal$.quantity}\n\t\t\t\t\t$invalidQuantity={createListingModal$.invalidQuantity}\n\t\t\t\t\tdecimals={collectible?.decimals || 0}\n\t\t\t\t\tmaxQuantity={balance?.balance}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<ExpirationDateSelect $date={createListingModal$.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$.listingPrice.get()}\n\t\t\t\tcurrencyImageUrl={listingPrice.currency.imageUrl}\n\t\t\t/>\n\t\t</ActionModal>\n\t);\n});\n","import { observable } from '@legendapp/state';\nimport { addDays } from 'date-fns/addDays';\nimport type { Hex } from 'viem';\nimport { type Currency, OrderbookKind } from '../../../../types';\nimport type { BaseModalState, ModalCallbacks } from '../_internal/types';\nimport type { CollectionType, TransactionSteps } from '../../../_internal';\n\ntype CreateListingState = BaseModalState & {\n\tcollectibleId: string;\n\tcollectionName: string;\n\torderbookKind: OrderbookKind;\n\tcollectionType: CollectionType | undefined;\n\tlistingPrice: {\n\t\tamountRaw: string;\n\t\tcurrency: Currency;\n\t};\n\tquantity: string;\n\tinvalidQuantity: boolean;\n\texpiry: Date;\n\tsteps: TransactionSteps;\n};\n\nexport type OpenCreateListingModalArgs = {\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tcollectibleId: string;\n\torderbookKind: OrderbookKind;\n\tcallbacks?: ModalCallbacks;\n};\n\ntype Actions = {\n\topen: (args: OpenCreateListingModalArgs) => void;\n\tclose: () => void;\n};\n\nconst initialState: CreateListingState = {\n\tisOpen: false,\n\tcollectionAddress: '' as Hex,\n\tchainId: '',\n\tcollectibleId: '',\n\torderbookKind: OrderbookKind.sequence_marketplace_v2,\n\tcollectionName: '',\n\tcollectionType: undefined,\n\tlistingPrice: {\n\t\tamountRaw: '0',\n\t\tcurrency: {} as Currency,\n\t},\n\tquantity: '1',\n\tinvalidQuantity: false,\n\texpiry: new Date(addDays(new Date(), 7).toJSON()),\n\tcallbacks: undefined as ModalCallbacks | undefined,\n\tsteps: {\n\t\tapproval: {\n\t\t\texist: false,\n\t\t\tisExecuting: false,\n\t\t\texecute: () => Promise.resolve(),\n\t\t},\n\t\ttransaction: {\n\t\t\texist: false,\n\t\t\tisExecuting: false,\n\t\t\texecute: () => Promise.resolve(),\n\t\t},\n\t},\n};\n\nconst actions: Actions = {\n\topen: (args) => {\n\t\tcreateListingModal$.collectionAddress.set(args.collectionAddress);\n\t\tcreateListingModal$.chainId.set(args.chainId);\n\t\tcreateListingModal$.collectibleId.set(args.collectibleId);\n\t\tcreateListingModal$.orderbookKind.set(args.orderbookKind);\n\t\tcreateListingModal$.callbacks.set(args.callbacks);\n\t\tcreateListingModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tcreateListingModal$.isOpen.set(false);\n\t\tcreateListingModal$.set({ ...initialState, ...actions });\n\t},\n};\n\nexport const createListingModal$ = observable<CreateListingState & Actions>({\n\t...initialState,\n\t...actions,\n});\n","import { useEffect } from 'react';\nimport { Observable } from '@legendapp/state';\nimport { useGetTokenApprovalData } from './useGetTokenApproval';\nimport { ListingInput } from '../../../../_internal/transaction-machine/execute-transaction';\nimport { OrderbookKind, TransactionSteps } from '../../../../_internal';\nimport { ModalCallbacks } from '../../_internal/types';\nimport { useTransactionSteps } from './useTransactionSteps';\n\ninterface UseCreateListingArgs {\n\tlistingInput: ListingInput;\n\tchainId: string;\n\tcollectionAddress: string;\n\torderbookKind?: OrderbookKind;\n\tcallbacks?: ModalCallbacks;\n\tcloseMainModal: () => void;\n\tsteps$: Observable<TransactionSteps>;\n}\n\nexport const useCreateListing = ({\n\tlistingInput,\n\tchainId,\n\tcollectionAddress,\n\torderbookKind = OrderbookKind.sequence_marketplace_v2,\n\tsteps$,\n\tcallbacks,\n\tcloseMainModal,\n}: UseCreateListingArgs) => {\n\tconst { data: tokenApproval, isLoading: tokenApprovalIsLoading } =\n\t\tuseGetTokenApprovalData({\n\t\t\tchainId,\n\t\t\ttokenId: listingInput.listing.tokenId,\n\t\t\tcollectionAddress,\n\t\t\tcurrencyAddress: listingInput.listing.currencyAddress,\n\t\t\tcontractType: listingInput.contractType,\n\t\t\torderbook: orderbookKind,\n\t\t});\n\n\tuseEffect(() => {\n\t\tif (tokenApproval?.step && !tokenApprovalIsLoading) {\n\t\t\tsteps$.approval.exist.set(true);\n\t\t}\n\t}, [tokenApproval?.step, tokenApprovalIsLoading]);\n\n\tconst { generatingSteps, executeApproval, createListing } =\n\t\tuseTransactionSteps({\n\t\t\tlistingInput,\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\torderbookKind,\n\t\t\tcallbacks,\n\t\t\tcloseMainModal,\n\t\t\tsteps$,\n\t\t});\n\n\treturn {\n\t\tisLoading: generatingSteps,\n\t\texecuteApproval,\n\t\tcreateListing,\n\t\ttokenApprovalStepExists: tokenApproval?.step !== null,\n\t\ttokenApprovalIsLoading,\n\t};\n};\n","import {\n\ttype ContractType,\n\ttype CreateReq,\n\ttype GenerateListingTransactionArgs,\n\tgetMarketplaceClient,\n\ttype OrderbookKind,\n\tStepType,\n} from '../../../../_internal';\nimport { useConfig } from '../../../..';\nimport { dateToUnixTime } from '../../../../../utils/date';\nimport { useWallet } from '../../../../_internal/transaction-machine/useWallet';\nimport { useQuery } from '@tanstack/react-query';\n\nexport interface UseGetTokenApprovalDataArgs {\n\tchainId: string;\n\ttokenId: string;\n\tcollectionAddress: string;\n\tcurrencyAddress: string;\n\tcontractType: ContractType;\n\torderbook: OrderbookKind;\n}\n\nconst ONE_DAY_IN_SECONDS = 60 * 60 * 24;\n\nexport const useGetTokenApprovalData = (\n\tparams: UseGetTokenApprovalDataArgs,\n) => {\n\tconst config = useConfig();\n\tconst { wallet } = useWallet();\n\tconst marketplaceClient = getMarketplaceClient(params.chainId, config);\n\n\tconst listing = {\n\t\ttokenId: params.tokenId,\n\t\tquantity: '1',\n\t\tcurrencyAddress: params.currencyAddress,\n\t\tpricePerToken: '100000',\n\t\texpiry: String(Number(dateToUnixTime(new Date())) + ONE_DAY_IN_SECONDS),\n\t} satisfies CreateReq;\n\n\tconst { data, isLoading, isSuccess } = useQuery({\n\t\tqueryKey: ['token-approval-data', params.currencyAddress],\n\t\tqueryFn: async () => {\n\t\t\tconst args = {\n\t\t\t\tcollectionAddress: params.collectionAddress,\n\t\t\t\towner: await wallet!.address(),\n\t\t\t\twalletType: wallet!.walletKind,\n\t\t\t\tcontractType: params.contractType,\n\t\t\t\torderbook: params.orderbook,\n\t\t\t\tlisting,\n\t\t\t} satisfies GenerateListingTransactionArgs;\n\t\t\tconst steps = await marketplaceClient\n\t\t\t\t.generateListingTransaction(args)\n\t\t\t\t.then((resp) => resp.steps);\n\n\t\t\tconst tokenApprovalStep = steps.find(\n\t\t\t\t(step) => step.id === StepType.tokenApproval,\n\t\t\t);\n\t\t\tif (!tokenApprovalStep) {\n\t\t\t\treturn {\n\t\t\t\t\tstep: null,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstep: tokenApprovalStep,\n\t\t\t};\n\t\t},\n\t});\n\n\treturn {\n\t\tdata,\n\t\tisLoading,\n\t\tisSuccess,\n\t};\n};\n","import {\n\tExecuteType,\n\tgetMarketplaceClient,\n\tStep,\n\tStepType,\n\tTransactionSteps,\n} from '../../../../_internal';\nimport { OrderbookKind } from '../../../../../types';\nimport { ModalCallbacks } from '../../_internal/types';\nimport {\n\tListingInput,\n\tTransactionType,\n} from '../../../../_internal/transaction-machine/execute-transaction';\nimport { useTransactionStatusModal } from '../../_internal/components/transactionStatusModal';\nimport { Address } from 'viem';\nimport { Observable } from '@legendapp/state';\nimport { useWallet } from '../../../../_internal/transaction-machine/useWallet';\nimport { SignatureStep } from '../../../../_internal/transaction-machine/utils';\nimport { useConfig, useGenerateListingTransaction } from '../../../../hooks';\nimport { useGetReceiptFromHash } from '../../../../hooks/useGetReceiptFromHash';\n\ninterface UseTransactionStepsArgs {\n\tlistingInput: ListingInput;\n\tchainId: string;\n\tcollectionAddress: string;\n\torderbookKind?: OrderbookKind;\n\tcallbacks?: ModalCallbacks;\n\tcloseMainModal: () => void;\n\tsteps$: Observable<TransactionSteps>;\n}\n\nexport const useTransactionSteps = ({\n\tlistingInput,\n\tchainId,\n\tcollectionAddress,\n\torderbookKind = OrderbookKind.sequence_marketplace_v2,\n\tcallbacks,\n\tcloseMainModal,\n\tsteps$,\n}: UseTransactionStepsArgs) => {\n\tconst { wallet } = useWallet();\n\tconst expiry = new Date(Number(listingInput.listing.expiry) * 1000);\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\tconst sdkConfig = useConfig();\n\tconst marketplaceClient = getMarketplaceClient(chainId, sdkConfig);\n\tconst { waitForReceipt } = useGetReceiptFromHash();\n\tconst { generateListingTransactionAsync, isPending: generatingSteps } =\n\t\tuseGenerateListingTransaction({\n\t\t\tchainId,\n\t\t\tonSuccess: (steps) => {\n\t\t\t\tif (!steps) return;\n\t\t\t},\n\t\t});\n\n\tconst getListingSteps = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tconst address = await wallet.address();\n\n\t\t\tconst steps = await generateListingTransactionAsync({\n\t\t\t\tcollectionAddress,\n\t\t\t\towner: address,\n\t\t\t\twalletType: wallet.walletKind,\n\t\t\t\tcontractType: listingInput.contractType,\n\t\t\t\torderbook: orderbookKind,\n\t\t\t\tlisting: {\n\t\t\t\t\t...listingInput.listing,\n\t\t\t\t\texpiry,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\treturn steps;\n\t\t} catch (error) {\n\t\t\tif (callbacks?.onError) {\n\t\t\t\tcallbacks.onError(error as Error);\n\t\t\t} else {\n\t\t\t\tconsole.debug('onError callback not provided:', error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst executeApproval = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tsteps$.approval.isExecuting.set(true);\n\t\t\tconst approvalStep = await getListingSteps().then((steps) =>\n\t\t\t\tsteps?.find((step) => step.id === StepType.tokenApproval),\n\t\t\t);\n\n\t\t\tconst hash = await wallet.handleSendTransactionStep(\n\t\t\t\tNumber(chainId),\n\t\t\t\tapprovalStep as any,\n\t\t\t);\n\n\t\t\tconst receipt = await waitForReceipt(hash);\n\n\t\t\tif (receipt) {\n\t\t\t\tsteps$.approval.isExecuting.set(false);\n\t\t\t\tsteps$.approval.exist.set(false);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsteps$.approval.isExecuting.set(false);\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst createListing = async () => {\n\t\tif (!wallet) return;\n\n\t\ttry {\n\t\t\tsteps$.transaction.isExecuting.set(true);\n\t\t\tconst steps = await getListingSteps();\n\t\t\tconst transactionStep = steps?.find(\n\t\t\t\t(step) => step.id === StepType.createListing,\n\t\t\t);\n\t\t\tconst signatureStep = steps?.find(\n\t\t\t\t(step) => step.id === StepType.signEIP712,\n\t\t\t);\n\n\t\t\tconsole.debug('transactionStep', transactionStep);\n\t\t\tconsole.debug('signatureStep', signatureStep);\n\n\t\t\tif (!transactionStep && !signatureStep) {\n\t\t\t\tthrow new Error('No transaction or signature step found');\n\t\t\t}\n\n\t\t\tlet hash, orderId: string | undefined;\n\n\t\t\tif (transactionStep) {\n\t\t\t\thash = await executeTransaction({ transactionStep });\n\t\t\t}\n\n\t\t\tif (signatureStep) {\n\t\t\t\torderId = await executeSignature({ signatureStep });\n\t\t\t}\n\n\t\t\tcloseMainModal();\n\n\t\t\tshowTransactionStatusModal({\n\t\t\t\ttype: TransactionType.LISTING,\n\t\t\t\tcollectionAddress: collectionAddress as Address,\n\t\t\t\tchainId,\n\t\t\t\tcollectibleId: listingInput.listing.tokenId,\n\t\t\t\thash,\n\t\t\t\torderId,\n\t\t\t\tcallbacks,\n\t\t\t});\n\n\t\t\tif (hash) {\n\t\t\t\tawait waitForReceipt(hash);\n\n\t\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\t\tsteps$.transaction.exist.set(false);\n\t\t\t\tif (callbacks?.onSuccess && typeof callbacks.onSuccess === 'function') {\n\t\t\t\t\tcallbacks.onSuccess({ hash });\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (orderId) {\n\t\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\t\tsteps$.transaction.exist.set(false);\n\n\t\t\t\tif (callbacks?.onSuccess && typeof callbacks.onSuccess === 'function') {\n\t\t\t\t\tcallbacks.onSuccess({ orderId });\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tsteps$.transaction.isExecuting.set(false);\n\t\t\tsteps$.transaction.exist.set(false);\n\t\t\tif (callbacks?.onError && typeof callbacks.onError === 'function') {\n\t\t\t\tcallbacks.onError(error as Error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t};\n\n\tconst executeTransaction = async ({\n\t\ttransactionStep,\n\t}: { transactionStep: Step }) => {\n\t\tif (!wallet) return;\n\n\t\tconst hash = await wallet.handleSendTransactionStep(\n\t\t\tNumber(chainId),\n\t\t\ttransactionStep as any,\n\t\t);\n\n\t\treturn hash;\n\t};\n\n\tconst executeSignature = async ({\n\t\tsignatureStep,\n\t}: { signatureStep: Step }) => {\n\t\tif (!wallet) return;\n\n\t\tconst signature = await wallet.handleSignMessageStep(\n\t\t\tsignatureStep as SignatureStep,\n\t\t);\n\n\t\tconst result = await marketplaceClient.execute({\n\t\t\tsignature: signature as string,\n\t\t\texecuteType: ExecuteType.order,\n\t\t\tbody: signatureStep.post?.body,\n\t\t});\n\n\t\treturn result.orderId;\n\t};\n\n\treturn {\n\t\tgeneratingSteps,\n\t\texecuteApproval,\n\t\tcreateListing,\n\t};\n};\n","import { use$ } from '@legendapp/state/react';\nimport type { Hex } from 'viem';\nimport { ContractType, TokenMetadata } from '../../../_internal';\nimport { buyModal$ } from './store';\nimport { LoadingModal } from '../_internal/components/actionModal/LoadingModal';\nimport { CheckoutModal } from './modals/CheckoutModal';\nimport { ERC1155QuantityModal } from './modals/Modal1155';\nimport { useLoadData } from './hooks/useLoadData';\nimport { useBuyCollectable } from './hooks/useBuyCollectable';\nimport { ErrorModal } from '../_internal/components/actionModal/ErrorModal';\n\nexport const BuyModal = () => {\n\tconst isOpen = use$(buyModal$.isOpen);\n\n\tif (!isOpen) return null;\n\n\treturn <BuyModalContent />;\n};\n\nconst BuyModalContent = () => {\n\tconst chainId = String(use$(buyModal$.state.order.chainId));\n\tconst collectionAddress = use$(\n\t\tbuyModal$.state.order.collectionContractAddress,\n\t) as Hex;\n\tconst collectibleId = use$(buyModal$.state.order.tokenId);\n\tconst modalId = use$(buyModal$.state.modalId);\n\tconst callbacks = use$(buyModal$.callbacks);\n\tconst order = use$(buyModal$.state.order);\n\tconst isOpen = use$(buyModal$.isOpen);\n\n\tconst { collection, collectable, checkoutOptions, isLoading, isError } =\n\t\tuseLoadData({\n\t\t\tchainId: Number(chainId),\n\t\t\tcollectionAddress,\n\t\t\tcollectibleId,\n\t\t\torderId: order.orderId,\n\t\t\tmarketplace: order.marketplace,\n\t\t});\n\n\tconst {\n\t\tbuy,\n\t\tisLoading: buyIsLoading,\n\t\tisError: buyIsError,\n\t} = useBuyCollectable({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcallbacks,\n\t\ttokenId: collectibleId,\n\t\tpriceCurrencyAddress: order.priceCurrencyAddress,\n\t});\n\n\tif (\n\t\tisLoading ||\n\t\t!collection ||\n\t\t!collectable ||\n\t\t!checkoutOptions ||\n\t\tbuyIsLoading\n\t) {\n\t\treturn (\n\t\t\t<LoadingModal\n\t\t\t\tisOpen={isOpen}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={buyModal$.close}\n\t\t\t\ttitle=\"Loading Sequence Pay\"\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (buyIsError || isError) {\n\t\treturn (\n\t\t\t<ErrorModal\n\t\t\t\tisOpen={isOpen}\n\t\t\t\tchainId={Number(chainId)}\n\t\t\t\tonClose={buyModal$.close}\n\t\t\t\ttitle=\"Error\"\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn collection.type === ContractType.ERC721 ? (\n\t\t<CheckoutModal\n\t\t\tkey={modalId}\n\t\t\tbuy={(input) => buy({ ...input, checkoutOptions })}\n\t\t\tcollectable={collectable as TokenMetadata}\n\t\t\torder={order}\n\t\t/>\n\t) : (\n\t\t<ERC1155QuantityModal\n\t\t\tbuy={(input) => buy({ ...input, checkoutOptions })}\n\t\t\tcollectable={collectable as TokenMetadata}\n\t\t\torder={order}\n\t\t\tchainId={chainId}\n\t\t\tcollectionAddress={collectionAddress}\n\t\t\tcollectibleId={collectibleId}\n\t\t/>\n\t);\n};\n","import { observable } from '@legendapp/state';\nimport type { ShowBuyModalArgs } from '.';\nimport type { Order } from '../../../_internal';\nimport type { ModalCallbacks } from '../_internal/types';\n\nexport interface BuyModalState {\n\tisOpen: boolean;\n\topen: (\n\t\targs: ShowBuyModalArgs & {\n\t\t\tcallbacks?: ModalCallbacks;\n\t\t\tdefaultCallbacks?: ModalCallbacks;\n\t\t},\n\t) => void;\n\tclose: () => void;\n\tstate: {\n\t\torder: Order;\n\t\tquantity: string;\n\t\tmodalId: number;\n\t\tinvalidQuantity: boolean;\n\t};\n\tcallbacks?: ModalCallbacks;\n}\n\nexport const initialState: BuyModalState = {\n\tisOpen: false,\n\topen: ({\n\t\tcallbacks,\n\t\tdefaultCallbacks,\n\t\t...args\n\t}: ShowBuyModalArgs & {\n\t\tcallbacks?: ModalCallbacks;\n\t\tdefaultCallbacks?: ModalCallbacks;\n\t}) => {\n\t\tbuyModal$.state.set({\n\t\t\tquantity: args.order.quantityAvailableFormatted,\n\t\t\torder: args.order,\n\t\t\tmodalId: buyModal$.state.modalId.get() + 1,\n\t\t\tinvalidQuantity: false,\n\t\t});\n\t\tbuyModal$.callbacks.set(callbacks || defaultCallbacks);\n\t\tbuyModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tbuyModal$.isOpen.set(false);\n\t},\n\tstate: {\n\t\torder: undefined as unknown as Order,\n\t\tquantity: '1',\n\t\tmodalId: 0,\n\t\tinvalidQuantity: false,\n\t},\n\tcallbacks: undefined,\n};\n\nexport const buyModal$ = observable(initialState);\n","import type { BuyInput } from '../../../../_internal/transaction-machine/execute-transaction';\nimport type { Order } from '../../../../_internal';\nimport type { TokenMetadata } from '../../../../_internal/api/marketplace.gen';\nimport { useEffect } from 'react';\nimport { parseUnits } from 'viem';\n\nexport interface CheckoutModalProps {\n\tbuy: (props: BuyInput) => void;\n\tcollectable: TokenMetadata;\n\torder: Order;\n\tisLoading?: boolean;\n}\nexport function CheckoutModal({ buy, collectable, order }: CheckoutModalProps) {\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n\tuseEffect(() => {\n\t\tconst executeBuy = () => {\n\t\t\tbuy({\n\t\t\t\torderId: order.orderId,\n\t\t\t\tcollectableDecimals: collectable.decimals || 0,\n\t\t\t\tquantity: parseUnits('1', collectable.decimals || 0).toString(),\n\t\t\t\tmarketplace: order.marketplace,\n\t\t\t});\n\t\t};\n\n\t\texecuteBuy();\n\t}, []);\n\n\treturn null;\n}\n","import { Box, Text, TokenImage } from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport type { Address, Hex } from 'viem';\nimport { formatUnits, parseUnits } from 'viem';\nimport { useCurrencies } from '../../../../hooks';\nimport { useCurrencyOptions } from '../../../../hooks/useCurrencyOptions';\nimport QuantityInput from '../../_internal/components/quantityInput';\nimport { ActionModal } from '../../_internal/components/actionModal';\nimport { buyModal$ } from '../store';\nimport type { CheckoutModalProps } from './CheckoutModal';\n\ninterface ERC1155QuantityModalProps extends CheckoutModalProps {\n\tchainId: string;\n\tcollectionAddress: Hex;\n\tcollectibleId: string;\n}\n\nexport const ERC1155QuantityModal = observer(\n\t({ buy, collectable, order }: ERC1155QuantityModalProps) => {\n\t\tbuyModal$.state.quantity.set(\n\t\t\tMath.min(Number(order.quantityRemaining), 1).toString(),\n\t\t);\n\t\tconst currencyOptions = useCurrencyOptions({\n\t\t\tcollectionAddress: order.collectionContractAddress as Address,\n\t\t});\n\t\tconst { data: currencies } = useCurrencies({\n\t\t\tchainId: order.chainId,\n\t\t\tcurrencyOptions,\n\t\t});\n\n\t\tconst currency = currencies?.find(\n\t\t\t(currency) => currency.contractAddress === order.priceCurrencyAddress,\n\t\t);\n\n\t\tconst quantity = Number(buyModal$.state.quantity.get());\n\t\tconst pricePerToken = order.priceAmount;\n\t\tconst totalPrice = (BigInt(quantity) * BigInt(pricePerToken)).toString();\n\n\t\treturn (\n\t\t\t<ActionModal\n\t\t\t\tisOpen={buyModal$.isOpen.get()}\n\t\t\t\tchainId={order.chainId}\n\t\t\t\tonClose={() => buyModal$.close()}\n\t\t\t\ttitle=\"Select Quantity\"\n\t\t\t\tctas={[\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Buy now',\n\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\tbuy({\n\t\t\t\t\t\t\t\tquantity: parseUnits(\n\t\t\t\t\t\t\t\t\tbuyModal$.state.quantity.get(),\n\t\t\t\t\t\t\t\t\tcollectable.decimals || 0,\n\t\t\t\t\t\t\t\t).toString(),\n\t\t\t\t\t\t\t\torderId: order.orderId,\n\t\t\t\t\t\t\t\tcollectableDecimals: collectable.decimals || 0,\n\t\t\t\t\t\t\t\tmarketplace: order.marketplace,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"4\">\n\t\t\t\t\t<QuantityInput\n\t\t\t\t\t\t$quantity={buyModal$.state.quantity}\n\t\t\t\t\t\t$invalidQuantity={buyModal$.state.invalidQuantity}\n\t\t\t\t\t\tdecimals={order.quantityDecimals}\n\t\t\t\t\t\tmaxQuantity={order.quantityRemaining}\n\t\t\t\t\t/>\n\t\t\t\t\t<Box display=\"flex\" justifyContent=\"space-between\">\n\t\t\t\t\t\t<Text color=\"text50\" fontSize=\"small\">\n\t\t\t\t\t\t\tTotal Price\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"2\">\n\t\t\t\t\t\t\t<TokenImage src={currency?.imageUrl} size=\"xs\" />\n\t\t\t\t\t\t\t<Text color=\"text100\" fontSize=\"small\" fontWeight=\"bold\">\n\t\t\t\t\t\t\t\t{formatUnits(BigInt(totalPrice), currency?.decimals || 0)}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</Box>\n\t\t\t\t</Box>\n\t\t\t</ActionModal>\n\t\t);\n\t},\n);\n","import type { Hex } from 'viem';\nimport {\n\tgetMarketplaceClient,\n\ttype MarketplaceKind,\n} from '../../../../_internal';\nimport { useConfig } from '../../../../hooks';\nimport { useWallet } from '../../../../_internal/transaction-machine/useWallet';\nimport { useFees } from './useFees';\nimport { useQuery } from '@tanstack/react-query';\n\nexport const useCheckoutOptions = (input: {\n\tchainId: number;\n\tcollectionAddress: Hex;\n\torderId: string;\n\tmarketplace: MarketplaceKind;\n}) => {\n\tconst config = useConfig();\n\tconst { wallet } = useWallet();\n\tconst fees = useFees({\n\t\tchainId: input.chainId,\n\t\tcollectionAddress: input.collectionAddress,\n\t});\n\n\treturn useQuery({\n\t\tqueryKey: [\n\t\t\t'checkoutOptions',\n\t\t\tinput.chainId,\n\t\t\tinput.collectionAddress,\n\t\t\tinput.orderId,\n\t\t\tinput.marketplace,\n\t\t],\n\t\tqueryFn: async () => {\n\t\t\tconst marketplaceClient = getMarketplaceClient(input.chainId, config);\n\t\t\treturn marketplaceClient\n\t\t\t\t.checkoutOptionsMarketplace({\n\t\t\t\t\twallet: await wallet!.address(),\n\t\t\t\t\torders: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontractAddress: input.collectionAddress,\n\t\t\t\t\t\t\torderId: input.orderId,\n\t\t\t\t\t\t\tmarketplace: input.marketplace,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tadditionalFee: Number(fees.amount),\n\t\t\t\t})\n\t\t\t\t.then((res) => res.options);\n\t\t},\n\t\tenabled: !!wallet,\n\t});\n};\n","import type { MarketplaceKind } from '../../../../_internal';\nimport type { Hex } from 'viem';\nimport { useCollectible, useCollection } from '../../../../hooks';\n\nimport { useCheckoutOptions } from './useCheckoutOptions';\n\nexport const useLoadData = ({\n\tchainId,\n\tcollectionAddress,\n\tcollectibleId,\n\torderId,\n\tmarketplace,\n}: {\n\tchainId: number;\n\tcollectionAddress: Hex;\n\tcollectibleId: string;\n\torderId: string;\n\tmarketplace: MarketplaceKind;\n}) => {\n\tconst {\n\t\tdata: collection,\n\t\tisLoading: collectionLoading,\n\t\tisError: collectionError,\n\t} = useCollection({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\n\tconst {\n\t\tdata: collectable,\n\t\tisLoading: collectableLoading,\n\t\tisError: collectableError,\n\t} = useCollectible({\n\t\tchainId: String(chainId),\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tconst {\n\t\tdata: checkoutOptions,\n\t\tisLoading: checkoutOptionsLoading,\n\t\tisError: checkoutOptionsError,\n\t} = useCheckoutOptions({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\torderId,\n\t\tmarketplace,\n\t});\n\n\treturn {\n\t\tcollection,\n\t\tcollectable,\n\t\tcheckoutOptions,\n\t\tisLoading:\n\t\t\tcollectionLoading || collectableLoading || checkoutOptionsLoading,\n\t\tisError: collectionError || collectableError || checkoutOptionsError,\n\t};\n};\n","import { useSelectPaymentModal } from '@0xsequence/kit-checkout';\nimport type { Hash, Hex } from 'viem';\nimport type { ModalCallbacks } from '../../_internal/types';\nimport {\n\ttype CheckoutOptions,\n\tgetMarketplaceClient,\n\ttype MarketplaceKind,\n\tWalletKind,\n} from '../../../../_internal';\nimport { buyModal$ } from '../store';\nimport { useFees } from './useFees';\nimport { useConfig } from '../../../../hooks';\nimport { useWallet } from '../../../../_internal/transaction-machine/useWallet';\n\ninterface UseBuyCollectableProps {\n\tchainId: string;\n\tcollectionAddress: string;\n\ttokenId: string;\n\tcallbacks?: ModalCallbacks;\n\tpriceCurrencyAddress: string;\n}\n\ntype BuyCollectableReturn =\n\t| { status: 'loading'; buy: null; isLoading: true; isError: false }\n\t| { status: 'error'; buy: null; isLoading: false; isError: true }\n\t| {\n\t\t\tstatus: 'ready';\n\t\t\tisLoading: false;\n\t\t\tisError: false;\n\t\t\tbuy: (input: {\n\t\t\t\torderId: string;\n\t\t\t\tquantity: string;\n\t\t\t\tcollectableDecimals: number;\n\t\t\t\tmarketplace: MarketplaceKind;\n\t\t\t\tcheckoutOptions: CheckoutOptions;\n\t\t\t}) => Promise<void>;\n\t };\n\nexport const useBuyCollectable = ({\n\tchainId,\n\tcollectionAddress,\n\ttokenId,\n\tcallbacks,\n\tpriceCurrencyAddress,\n}: UseBuyCollectableProps): BuyCollectableReturn => {\n\tconst { openSelectPaymentModal } = useSelectPaymentModal();\n\tconst config = useConfig();\n\tconst marketplaceClient = getMarketplaceClient(Number(chainId), config);\n\tconst fees = useFees({ chainId: Number(chainId), collectionAddress });\n\tconst { wallet, isLoading, isError } = useWallet();\n\n\tif (isLoading) {\n\t\treturn { status: 'loading', buy: null, isLoading, isError: false };\n\t}\n\n\tif (isError || !wallet) {\n\t\treturn { status: 'error', buy: null, isLoading, isError: true };\n\t}\n\n\treturn {\n\t\tstatus: 'ready',\n\t\tisLoading,\n\t\tisError,\n\t\tbuy: async (input) => {\n\t\t\tconst { steps } = await marketplaceClient.generateBuyTransaction({\n\t\t\t\tcollectionAddress,\n\t\t\t\tbuyer: await wallet.address(),\n\t\t\t\tmarketplace: input.marketplace,\n\t\t\t\tordersData: [\n\t\t\t\t\t{\n\t\t\t\t\t\torderId: input.orderId,\n\t\t\t\t\t\tquantity: input.quantity,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tadditionalFees: [fees],\n\t\t\t\twalletType: WalletKind.unknown,\n\t\t\t});\n\n\t\t\tconst step = steps[0];\n\n\t\t\topenSelectPaymentModal({\n\t\t\t\tchain: chainId,\n\t\t\t\tcollectibles: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttokenId: tokenId,\n\t\t\t\t\t\tquantity: input.quantity,\n\t\t\t\t\t\tdecimals: input.collectableDecimals,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tcurrencyAddress: priceCurrencyAddress,\n\t\t\t\tprice: step.value,\n\t\t\t\ttargetContractAddress: step.to,\n\t\t\t\ttxData: step.data as Hex,\n\t\t\t\tcollectionAddress,\n\t\t\t\trecipientAddress: await wallet.address(),\n\t\t\t\tenableMainCurrencyPayment: true,\n\t\t\t\tenableSwapPayments: !!input.checkoutOptions.swap,\n\t\t\t\tcreditCardProviders: input.checkoutOptions.nftCheckout || [],\n\t\t\t\tonSuccess: (hash: string) =>\n\t\t\t\t\tcallbacks?.onSuccess?.({ hash: hash as Hash }),\n\t\t\t\tonError: callbacks?.onError,\n\t\t\t\tonClose: () => {\n\t\t\t\t\tconsole.log('onClose');\n\t\t\t\t\tbuyModal$.close();\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t};\n};\n","import type { ModalCallbacks } from '../_internal/types';\nimport { createListingModal$, type OpenCreateListingModalArgs } from './store';\n\ntype ShowCreateListingModalArgs = Exclude<\n\tOpenCreateListingModalArgs,\n\t'callbacks'\n>;\n\nexport const useCreateListingModal = (callbacks?: ModalCallbacks) => {\n\treturn {\n\t\tshow: (args: ShowCreateListingModalArgs) =>\n\t\t\tcreateListingModal$.open({ ...args, callbacks }),\n\t\tclose: () => createListingModal$.close(),\n\t};\n};\n","import type { ModalCallbacks } from '../_internal/types';\nimport { type OpenMakeOfferModalArgs, makeOfferModal$ } from './store';\n\nexport type ShowMakeOfferModalArgs = Exclude<\n\tOpenMakeOfferModalArgs,\n\t'callbacks'\n>;\n\nexport const useMakeOfferModal = (callbacks?: ModalCallbacks) => ({\n\tshow: (args: ShowMakeOfferModalArgs) =>\n\t\tmakeOfferModal$.open({ ...args, callbacks }),\n\tclose: () => makeOfferModal$.close(),\n});\n","import type { ModalCallbacks } from '../_internal/types';\nimport { type OpenSellModalArgs, sellModal$ } from './store';\n\ntype ShowSellModalArgs = Exclude<OpenSellModalArgs, 'callbacks'>;\n\nexport const useSellModal = (callbacks?: ModalCallbacks) => {\n\treturn {\n\t\tshow: (args: ShowSellModalArgs) => sellModal$.open({ ...args, callbacks }),\n\t\tclose: () => sellModal$.close(),\n\t};\n};\n","import type { Hex } from 'viem';\nimport type { Order } from '../../../_internal';\nimport type { ModalCallbacks } from '../_internal/types';\nimport { buyModal$ } from './store';\n\nexport type ShowBuyModalArgs = {\n\tchainId: string;\n\tcollectionAddress: Hex;\n\ttokenId: string;\n\torder: Order;\n};\n\nexport const useBuyModal = (callbacks?: ModalCallbacks) => {\n\treturn {\n\t\tshow: (args: ShowBuyModalArgs) =>\n\t\t\tbuyModal$.open({ ...args, defaultCallbacks: callbacks }),\n\t\tclose: () => buyModal$.close(),\n\t};\n};\n","import { useState } from 'react';\n\nimport { Box, IconButton, Skeleton } from '@0xsequence/design-system';\nimport type { Hex } from 'viem';\nimport { useAccount } from 'wagmi';\nimport type {\n\tChainId,\n\tCollectibleOrder,\n\tContractType,\n\tOrder,\n\tOrderbookKind,\n} from '../../../_internal';\nimport { useCurrencies, useHighestOffer } from '../../../hooks';\nimport { useCurrencyOptions } from '../../../hooks/useCurrencyOptions';\nimport SvgDiamondEyeIcon from '../../icons/DiamondEye';\nimport ChessTileImage from '../../images/chess-tile.png';\nimport { ActionButton } from '../_internals/action-button/ActionButton';\nimport { CollectibleCardAction } from '../_internals/action-button/types';\nimport { Footer } from './Footer';\nimport {\n\tactionWrapper,\n\tcollectibleCard,\n\tcollectibleImage,\n\tcollectibleTileWrapper,\n} from './styles.css';\n\nfunction CollectibleSkeleton() {\n\treturn (\n\t\t<Box\n\t\t\tclassName={collectibleCard}\n\t\t\tborderRadius=\"md\"\n\t\t\toverflow=\"hidden\"\n\t\t\tbackground=\"backgroundPrimary\"\n\t\t>\n\t\t\t<Skeleton\n\t\t\t\tsize=\"lg\"\n\t\t\t\tstyle={{ width: '100%', height: 164, borderRadius: 0, paddingTop: 16 }}\n\t\t\t/>\n\n\t\t\t<Box\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\tflexDirection=\"column\"\n\t\t\t\tgap=\"2\"\n\t\t\t\tpaddingX=\"4\"\n\t\t\t\tpaddingBottom=\"4\"\n\t\t\t\tmarginTop=\"2\"\n\t\t\t>\n\t\t\t\t<Skeleton size=\"lg\" />\n\n\t\t\t\t<Skeleton size=\"sm\" />\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n\ntype CollectibleCardProps = {\n\tcollectibleId: string;\n\tchainId: ChainId;\n\tcollectionAddress: Hex;\n\torderbookKind: OrderbookKind;\n\tcollectionType?: ContractType;\n\tlowestListing: CollectibleOrder | undefined;\n\tonCollectibleClick?: (tokenId: string) => void;\n\tonOfferClick?: ({ order }: { order?: Order }) => void;\n\tbalance?: string;\n\tcardLoading?: boolean;\n};\n\nexport function CollectibleCard({\n\tcollectibleId,\n\tchainId,\n\tcollectionAddress,\n\torderbookKind,\n\tcollectionType,\n\tlowestListing,\n\tonCollectibleClick,\n\tonOfferClick,\n\tbalance,\n\tcardLoading,\n}: CollectibleCardProps) {\n\tconst { address: accountAddress } = useAccount();\n\tconst collectibleMetadata = lowestListing?.metadata;\n\tconst [imageLoadingError, setImageLoadingError] = useState(false);\n\tconst { data: highestOffer, isLoading: highestOfferLoading } =\n\t\tuseHighestOffer({\n\t\t\tchainId: String(chainId),\n\t\t\tcollectionAddress,\n\t\t\ttokenId: collectibleId,\n\t\t});\n\n\tconst currencyOptions = useCurrencyOptions({ collectionAddress });\n\tconst { data: currencies } = useCurrencies({ chainId, currencyOptions });\n\tconst lowestListingCurrency = currencies?.find(\n\t\t(currency) =>\n\t\t\tcurrency.contractAddress === lowestListing?.order?.priceCurrencyAddress,\n\t);\n\tif (highestOfferLoading || cardLoading) {\n\t\treturn <CollectibleSkeleton />;\n\t}\n\n\tconst action = (\n\t\tbalance\n\t\t\t? (highestOffer?.order && CollectibleCardAction.SELL) ||\n\t\t\t\t(!lowestListing?.order && CollectibleCardAction.LIST) ||\n\t\t\t\tCollectibleCardAction.TRANSFER\n\t\t\t: (lowestListing?.order && CollectibleCardAction.BUY) ||\n\t\t\t\tCollectibleCardAction.OFFER\n\t) as CollectibleCardAction;\n\n\tconst name = collectibleMetadata?.name;\n\tconst image = collectibleMetadata?.image;\n\tconst externalUrl = collectibleMetadata?.external_url;\n\n\treturn (\n\t\t<Box\n\t\t\tclassName={collectibleCard}\n\t\t\tborderRadius=\"md\"\n\t\t\toverflow=\"hidden\"\n\t\t\tbackground=\"backgroundPrimary\"\n\t\t>\n\t\t\t<Box\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\tflexDirection=\"column\"\n\t\t\t\talignItems=\"flex-start\"\n\t\t\t\tposition=\"relative\"\n\t\t\t\twidth=\"full\"\n\t\t\t\theight=\"full\"\n\t\t\t\tzIndex=\"10\"\n\t\t\t\toverflow=\"hidden\"\n\t\t\t\tonClick={() => onCollectibleClick?.(collectibleId)}\n\t\t\t\tborder=\"none\"\n\t\t\t\tcursor=\"pointer\"\n\t\t\t\tpadding=\"0\"\n\t\t\t\tclassName={collectibleTileWrapper}\n\t\t\t>\n\t\t\t\t<article style={{ width: '100%' }}>\n\t\t\t\t\t{externalUrl && (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tas=\"a\"\n\t\t\t\t\t\t\thref={externalUrl}\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tbackdropFilter=\"blur\"\n\t\t\t\t\t\t\tvariant=\"glass\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\t\t\ttop=\"2\"\n\t\t\t\t\t\t\tleft=\"2\"\n\t\t\t\t\t\t\ticon={SvgDiamondEyeIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={imageLoadingError ? ChessTileImage : image || ChessTileImage}\n\t\t\t\t\t\talt={name}\n\t\t\t\t\t\tclassName={collectibleImage}\n\t\t\t\t\t\tonError={() => setImageLoadingError(true)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Footer\n\t\t\t\t\t\tname={name || ''}\n\t\t\t\t\t\ttype={collectionType}\n\t\t\t\t\t\tonOfferClick={() => onOfferClick?.({ order: highestOffer?.order })}\n\t\t\t\t\t\thighestOffer={highestOffer?.order}\n\t\t\t\t\t\tlowestListingPriceAmount={lowestListing?.order?.priceAmount}\n\t\t\t\t\t\tlowestListingCurrency={lowestListingCurrency}\n\t\t\t\t\t\tbalance={balance}\n\t\t\t\t\t\tisAnimated={!!action}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{accountAddress && (highestOffer || lowestListing) && (\n\t\t\t\t\t\t<Box\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=\"center\"\n\t\t\t\t\t\t\tpadding=\"2\"\n\t\t\t\t\t\t\tclassName={actionWrapper}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\t\tchainId={String(chainId)}\n\t\t\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\t\t\ttokenId={collectibleId}\n\t\t\t\t\t\t\t\torderbookKind={orderbookKind}\n\t\t\t\t\t\t\t\taction={action}\n\t\t\t\t\t\t\t\thighestOffer={highestOffer?.order}\n\t\t\t\t\t\t\t\tlowestListing={lowestListing?.order}\n\t\t\t\t\t\t\t\tisOwned={!!balance}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t)}\n\t\t\t\t</article>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","import { Box, type IconProps } from '@0xsequence/design-system';\nimport { iconVariants } from './styles.css';\n\nconst Svg = () => (\n\t<svg\n\t\twidth=\"16\"\n\t\theight=\"12\"\n\t\tviewBox=\"0 0 16 12\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\trole=\"img\"\n\t\taria-labelledby=\"diamond-eye-title\"\n\t>\n\t\t<title id=\"diamond-eye-title\">Diamond Eye Icon</title>\n\t\t<path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M5.00447 0.108826L0.611084 4.50526L7.99997 11.8911L15.3889 4.50526L10.9955 0.108826H5.00447ZM4.60507 2.90461C6.4718 1.0297 9.52815 1.02968 11.3949 2.90459L12.9925 4.50223L11.3949 6.09983C9.52815 7.97473 6.4718 7.97473 4.60507 6.09985L3.00749 4.50223L4.60507 2.90461ZM5.70321 4.50209C5.70321 5.77095 6.73193 6.79865 7.99974 6.79865C9.2676 6.79865 10.2963 5.77095 10.2963 4.50209C10.2963 3.23322 9.2676 2.20553 7.99974 2.20553C6.73193 2.20553 5.70321 3.23322 5.70321 4.50209ZM7.99974 5.50058C7.44853 5.50058 7.00125 5.05377 7.00125 4.50209C7.00125 3.9504 7.44853 3.50359 7.99974 3.50359C8.55095 3.50359 8.99825 3.9504 8.99825 4.50209C8.99825 5.05377 8.55095 5.50058 7.99974 5.50058Z\"\n\t\t\tfill=\"white\"\n\t\t/>\n\t</svg>\n);\n\nconst SvgDiamondEyeIcon = ({ size = 'sm', ...props }: IconProps) => (\n\t<Box\n\t\tas={Svg}\n\t\tclassName={iconVariants({\n\t\t\tsize,\n\t\t})}\n\t\t{...props}\n\t/>\n);\n\nexport default SvgDiamondEyeIcon;\n","'use client';\n\nimport { Button } from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport type { Hex } from 'viem';\nimport { InvalidStepError } from '../../../../../utils/_internal/error/transaction';\nimport type { Order, OrderbookKind } from '../../../../_internal';\nimport { useBuyModal } from '../../../modals/BuyModal';\nimport { useCreateListingModal } from '../../../modals/CreateListingModal';\nimport { useMakeOfferModal } from '../../../modals/MakeOfferModal';\nimport { useSellModal } from '../../../modals/SellModal';\nimport { useTransferModal } from '../../../modals/TransferModal';\n\nimport { CollectibleCardAction } from './types';\n\ntype ActionButtonProps = {\n\tchainId: string;\n\tcollectionAddress: Hex;\n\ttokenId: string;\n\torderbookKind: OrderbookKind;\n\tisTransfer?: boolean;\n\taction: CollectibleCardAction;\n\tisOwned: boolean;\n\thighestOffer?: Order;\n\tlowestListing?: Order;\n};\n\nexport const ActionButton = observer(\n\t({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\ttokenId,\n\t\torderbookKind,\n\t\taction,\n\t\thighestOffer,\n\t\tlowestListing,\n\t}: ActionButtonProps) => {\n\t\tconst { show: showCreateListingModal } = useCreateListingModal();\n\t\tconst { show: showMakeOfferModal } = useMakeOfferModal();\n\t\tconst { show: showSellModal } = useSellModal();\n\t\tconst { show: showTransferModal } = useTransferModal();\n\t\tconst { show: showBuyModal } = useBuyModal();\n\n\t\tif (action === CollectibleCardAction.BUY) {\n\t\t\tif (!lowestListing)\n\t\t\t\tthrow new InvalidStepError('BUY', 'lowestListing is required');\n\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Buy\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowBuyModal({\n\t\t\t\t\t\t\tcollectionAddress,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\ttokenId: tokenId,\n\t\t\t\t\t\t\torder: lowestListing,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (action === CollectibleCardAction.SELL) {\n\t\t\tif (!highestOffer)\n\t\t\t\tthrow new InvalidStepError('SELL', 'highestOffer is required');\n\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Sell\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowSellModal({\n\t\t\t\t\t\t\tcollectionAddress,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\ttokenId: tokenId,\n\t\t\t\t\t\t\torder: highestOffer,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (action === CollectibleCardAction.LIST) {\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Create listing\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowCreateListingModal({\n\t\t\t\t\t\t\tcollectionAddress: collectionAddress as Hex,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\tcollectibleId: tokenId,\n\t\t\t\t\t\t\torderbookKind,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (action === CollectibleCardAction.OFFER) {\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Make an offer\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowMakeOfferModal({\n\t\t\t\t\t\t\tcollectionAddress: collectionAddress as Hex,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\tcollectibleId: tokenId,\n\t\t\t\t\t\t\torderbookKind,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (action === CollectibleCardAction.TRANSFER) {\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Transfer\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowTransferModal({\n\t\t\t\t\t\t\tcollectionAddress: collectionAddress as Hex,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\tcollectibleId: tokenId,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t},\n);\n\ntype ActionButtonBodyProps = {\n\tlabel: string;\n\tonClick: () => void;\n};\n\nfunction ActionButtonBody({ label, onClick }: ActionButtonBodyProps) {\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"primary\"\n\t\t\tlabel={label}\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\t\t\tonClick={(e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tonClick();\n\t\t\t}}\n\t\t\t// leftIcon={leftIcon}\n\t\t\tsize=\"xs\"\n\t\t\tshape=\"square\"\n\t\t\twidth=\"full\"\n\t\t/>\n\t);\n}\n","import { Box, IconButton, Image, Text } from '@0xsequence/design-system';\nimport { formatUnits } from 'viem';\nimport { useAccount } from 'wagmi';\nimport { ContractType, type Currency, type Order } from '../../../_internal';\nimport SvgBellIcon from '../../icons/Bell';\nimport { footer, offerBellButton } from './styles.css';\n\ntype FooterProps = {\n\tname: string;\n\ttype?: ContractType;\n\tonOfferClick?: () => void;\n\thighestOffer?: Order;\n\tlowestListingPriceAmount?: string;\n\tlowestListingCurrency?: Currency;\n\tbalance?: string;\n\tisAnimated?: boolean;\n};\n\nexport const Footer = ({\n\tname,\n\ttype,\n\tonOfferClick,\n\thighestOffer,\n\tlowestListingPriceAmount,\n\tlowestListingCurrency,\n\tbalance,\n\tisAnimated,\n}: FooterProps) => {\n\tconst { address } = useAccount();\n\tconst listed = !!lowestListingPriceAmount && !!lowestListingCurrency;\n\n\tif (name.length > 15 && highestOffer) {\n\t\tname = `${name.substring(0, 13)}...`;\n\t}\n\tif (name.length > 17 && !highestOffer) {\n\t\tname = `${name.substring(0, 17)}...`;\n\t}\n\n\treturn (\n\t\t<Box\n\t\t\tdisplay=\"flex\"\n\t\t\tflexDirection=\"column\"\n\t\t\talignItems=\"flex-start\"\n\t\t\tgap=\"2\"\n\t\t\tpadding=\"4\"\n\t\t\twhiteSpace=\"nowrap\"\n\t\t\tposition=\"relative\"\n\t\t\tclassName={!!address && isAnimated ? footer.animated : footer.static}\n\t\t>\n\t\t\t<Box\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t\tposition=\"relative\"\n\t\t\t\twidth=\"full\"\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\tcolor=\"text100\"\n\t\t\t\t\tfontSize=\"normal\"\n\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\ttextAlign=\"left\"\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\n\t\t\t\t\t{name}\n\t\t\t\t</Text>\n\n\t\t\t\t{highestOffer && onOfferClick && (\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tclassName={offerBellButton}\n\t\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\t\tright=\"0\"\n\t\t\t\t\t\ttop=\"0\"\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonOfferClick?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ticon={(props) => <SvgBellIcon {...props} size={'xs'} />}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Box>\n\n\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"1\">\n\t\t\t\t{listed && (\n\t\t\t\t\t<Image src={lowestListingCurrency?.imageUrl} width=\"3\" height=\"3\" />\n\t\t\t\t)}\n\n\t\t\t\t<Text\n\t\t\t\t\tcolor={listed ? 'text100' : 'text50'}\n\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\ttextAlign=\"left\"\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\n\t\t\t\t\t{listed &&\n\t\t\t\t\t\t`${formatUnits(\n\t\t\t\t\t\t\tBigInt(lowestListingPriceAmount),\n\t\t\t\t\t\t\tlowestListingCurrency.decimals,\n\t\t\t\t\t\t)} ${lowestListingCurrency.symbol}`}\n\n\t\t\t\t\t{!listed && 'Not listed yet'}\n\t\t\t\t</Text>\n\t\t\t</Box>\n\n\t\t\t<TokenTypeBalancePill balance={balance} type={type as ContractType} />\n\t\t</Box>\n\t);\n};\n\nconst TokenTypeBalancePill = ({\n\tbalance,\n\ttype,\n}: { balance?: string; type: ContractType }) => {\n\tconst displayText =\n\t\ttype === ContractType.ERC1155\n\t\t\t? balance\n\t\t\t\t? `Owned: ${balance}`\n\t\t\t\t: 'ERC-1155'\n\t\t\t: 'ERC-721';\n\n\treturn (\n\t\t<Text\n\t\t\tbackground=\"backgroundSecondary\"\n\t\t\tcolor=\"text80\"\n\t\t\tfontSize=\"small\"\n\t\t\ttextAlign=\"left\"\n\t\t\tfontFamily=\"body\"\n\t\t\tpaddingX=\"2\"\n\t\t\tpaddingY=\"1\"\n\t\t\tborderRadius=\"sm\"\n\t\t>\n\t\t\t{displayText}\n\t\t</Text>\n\t);\n};\n","import { Box, type IconProps } from '@0xsequence/design-system';\nimport { iconVariants } from './styles.css';\n\nconst Svg = () => (\n\t<svg\n\t\twidth=\"17\"\n\t\theight=\"17\"\n\t\tviewBox=\"0 0 17 17\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\trole=\"img\"\n\t\taria-labelledby=\"bell-title\"\n\t>\n\t\t<title id=\"bell-title\">Notification Bell</title>\n\t\t<path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M12.3127 7.45705V9.74274C12.3127 10.3805 12.6293 10.6971 12.9647 11.0326L12.9652 11.033L12.9679 11.0358C13.3205 11.3893 13.6843 11.754 13.6843 12.4854C13.6843 12.5491 13.6335 12.5998 13.57 12.5998H3.51277C3.44959 12.5998 3.39844 12.5489 3.39844 12.4854C3.39844 11.7539 3.76242 11.389 4.11507 11.0354L4.11754 11.033C4.45305 10.6975 4.76984 10.3807 4.76984 9.74245V7.45676C4.76984 5.6932 5.98854 4.21248 7.62704 3.802V3.11399C7.62704 2.60926 8.03659 2.19971 8.54132 2.19971C9.04606 2.19971 9.45561 2.60926 9.45561 3.11399V3.802C11.094 4.21286 12.3127 5.69335 12.3127 7.45705ZM10.3698 13.1711C10.3698 14.1809 9.55099 14.9997 8.54121 14.9997C7.53128 14.9997 6.71272 14.181 6.71272 13.1711H10.3698ZM8.758 7.70501C9.30005 7.85574 9.6696 7.99832 9.86302 8.13224C10.1776 8.35015 10.3374 8.67657 10.338 9.106C10.338 9.7284 10.1359 10.1706 9.72956 10.4326C9.50571 10.5778 9.18295 10.6723 8.75846 10.7195V11.4005H8.42657V10.7195C7.74604 10.6746 7.28244 10.4349 7.04094 9.99812C6.90703 9.76157 6.83984 9.44246 6.83984 9.04019H7.46277C7.48004 9.35983 7.53041 9.59501 7.6135 9.74163C7.75837 10.0063 8.0303 10.1548 8.42664 10.1861V8.27703C7.9177 8.18078 7.54357 8.01963 7.30116 7.79532C7.0605 7.57102 6.93929 7.25914 6.93929 6.86234C6.93929 6.50686 7.06917 6.18768 7.32977 5.90212C7.58991 5.61657 7.95581 5.47132 8.42619 5.46675V5.00049H8.75808V5.45861C9.22343 5.4927 9.58119 5.62981 9.82863 5.87039C10.0787 6.11144 10.2086 6.43062 10.2204 6.82651H9.60569C9.5907 6.64899 9.54299 6.49507 9.4631 6.36884C9.31595 6.13183 9.08076 6.00697 8.758 5.99518V7.70501ZM7.80143 7.36315C7.95574 7.49478 8.16369 7.58608 8.42611 7.63691L8.42619 5.98886C8.11651 5.99936 7.89723 6.09424 7.76651 6.2681C7.63572 6.4447 7.57036 6.62815 7.57036 6.82019C7.57036 7.05081 7.64705 7.23289 7.80143 7.36315ZM8.75747 10.2033C9.15883 10.1847 9.43305 10.0394 9.58606 9.76522C9.66504 9.62408 9.70415 9.46285 9.70399 9.27948C9.70399 8.98624 9.59686 8.76376 9.38123 8.61121C9.2582 8.52219 9.05079 8.4391 8.75747 8.35921V10.2033Z\"\n\t\t\tfill=\"white\"\n\t\t/>\n\t</svg>\n);\n\nconst SvgBellIcon = ({ size = 'sm', ...props }: IconProps) => (\n\t<Box\n\t\tas={Svg}\n\t\tclassName={iconVariants({\n\t\t\tsize,\n\t\t})}\n\t\t{...props}\n\t/>\n);\n\nexport default SvgBellIcon;\n"],"mappings":"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","names":["observer","AccountModal","observer","useState","parseUnits","Skeleton","Text","observer","useEffect","useState","Box","Text","jsx","jsxs","Box","Text","Box","Text","observer","Box","Text","jsx","observable","jsx","jsxs","observer","collectibleImage","Box","Text","closeButton","dialogOverlay","jsx","jsxs","observer","useState","useEffect","dialogOverlay","Text","Skeleton","closeButton","useEffect","Box","jsx","Box","Box","Spinner","jsx","Box","Spinner","Box","Skeleton","Text","observer","Button","Content","Portal","Root","jsx","jsx","jsxs","Root","Button","Portal","Content","useState","jsx","jsxs","observer","ExpirationDateSelect","Skeleton","Box","Text","Text","jsx","Text","Box","Text","observer","useAccount","Box","useState","jsx","Skeleton","observer","useEffect","jsx","observer","CurrencyOptionsSelect","useEffect","Skeleton","currency","useState","useEffect","useState","useEffect","useState","useEffect","jsx","jsxs","observer","PriceInput","useAccount","Text","Box","Box","IconButton","NumericInput","jsx","jsxs","Box","NumericInput","IconButton","Box","Image","Skeleton","Text","jsx","jsxs","Box","Skeleton","Image","Text","observable","addDays","initialState","addDays","observable","Box","jsx","jsxs","Modal","observer","useState","parseUnits","state","Show","observer","parseUnits","Box","Image","Skeleton","Text","formatUnits","jsx","jsxs","formatUnits","Box","Text","Image","Skeleton","Box","Image","Skeleton","Text","formatDistanceToNow","jsx","jsxs","observable","initialState","useQuery","collection","useGetTokenApprovalData","useQuery","useTransactionSteps","useEffect","useGetTokenApprovalData","useTransactionSteps","jsx","jsxs","Show","Modal","observer","parseUnits","Box","Button","CloseIcon","IconButton","Image","Text","observer","Close","Content","Overlay","Portal","Root","observable","initialState","jsx","jsxs","observer","Root","Portal","Overlay","Content","Box","Text","Close","IconButton","CloseIcon","Button","Image","CloseIcon","IconButton","Show","observer","Close","Content","Overlay","Portal","Root","useAccount","observable","initialState","Box","Button","Text","observable","useAccount","Fragment","jsx","jsxs","useAccount","observable","Box","Text","Button","Box","Button","Text","observer","jsx","jsxs","observer","Box","Text","Button","jsx","jsxs","useAccount","Show","Modal","observer","Root","Portal","Overlay","dialogOverlay","Content","Close","closeButton","IconButton","CloseIcon","Box","Show","observer","parseUnits","useAccount","observable","addDays","initialState","addDays","actions","observable","useEffect","useQuery","ONE_DAY_IN_SECONDS","useGetTokenApprovalData","useTransactionSteps","useGetTokenApprovalData","useEffect","useTransactionSteps","jsx","jsxs","Show","Modal","observer","useAccount","parseUnits","Box","use$","observable","initialState","useEffect","parseUnits","Box","Text","TokenImage","observer","formatUnits","parseUnits","jsx","jsxs","observer","currency","parseUnits","Box","Text","TokenImage","formatUnits","useQuery","jsx","use$","Fragment","jsx","jsxs","observer","useState","Box","IconButton","Skeleton","useAccount","Box","jsx","jsxs","Box","Button","observer","jsx","observer","Button","Box","IconButton","Image","Text","formatUnits","useAccount","Box","jsx","jsxs","Svg","Box","jsx","jsxs","useAccount","Box","Text","IconButton","Image","formatUnits","jsx","jsxs","Box","Skeleton","useAccount","useState","IconButton"]}
|