@0xsequence/marketplace-sdk 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -1
- package/dist/{BellIcon-DMKEumAz.js → BellIcon.js} +4 -4
- package/dist/BellIcon.js.map +1 -0
- package/dist/{CartIcon-UyB4NYKt.js → CartIcon.js} +7 -7
- package/dist/CartIcon.js.map +1 -0
- package/dist/CollectibleCard.d.ts +8 -0
- package/dist/{_internal-DkS2VUn5.js → _internal.js} +2 -2
- package/dist/_internal.js.map +1 -0
- package/dist/{abi-fa-o9gH3.js → abi.js} +2 -2
- package/dist/abi.js.map +1 -0
- package/dist/{alien_swap-Cq8LuElo.js → alien_swap.js} +1 -1
- package/dist/alien_swap.js.map +1 -0
- package/dist/{api-GwTR0dBA.js → api.js} +10 -20
- package/dist/api.js.map +1 -0
- package/dist/{aqua-xyz-0yye_c-Z.js → aqua-xyz.js} +1 -1
- package/dist/aqua-xyz.js.map +1 -0
- package/dist/{aura-TaxFvTFQ.js → aura.js} +1 -1
- package/dist/aura.js.map +1 -0
- package/dist/{blur-BupOTobO.js → blur.js} +1 -1
- package/dist/blur.js.map +1 -0
- package/dist/{builder-api-m4JAA6ee.js → builder-api.js} +3 -3
- package/dist/builder-api.js.map +1 -0
- package/dist/{builder.gen--XD71cNL.js → builder.gen.js} +3 -6
- package/dist/builder.gen.js.map +1 -0
- package/dist/{coinbase-DTgZ4wDT.js → coinbase.js} +1 -1
- package/dist/coinbase.js.map +1 -0
- package/dist/{collectibles-CZ6i8sXK.js → collectibles.js} +13 -18
- package/dist/collectibles.js.map +1 -0
- package/dist/{collections-5NcU-7ZR.js → collections.js} +17 -28
- package/dist/collections.js.map +1 -0
- package/dist/{components-CY8kx2kb.js → components.js} +15 -21
- package/dist/components.js.map +1 -0
- package/dist/{contracts-DRJHF89h.js → contracts.js} +5 -6
- package/dist/contracts.js.map +1 -0
- package/dist/{create-config-CFBeD8CB.d.ts → create-config.d.ts} +6 -6
- package/dist/{create-config-BxyfYCEk.js → create-config.js} +11 -15
- package/dist/create-config.js.map +1 -0
- package/dist/{element-D4dDznlu.js → element.js} +1 -1
- package/dist/element.js.map +1 -0
- package/dist/{filters-B5niI_fX.d.ts → filters.d.ts} +7 -7
- package/dist/{foundation-GHZOKAzN.js → foundation.js} +1 -1
- package/dist/foundation.js.map +1 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.js +15 -15
- package/dist/{index-BkZ7SPLc.d.ts → index10.d.ts} +13 -18
- package/dist/{index-DASjaiJL.d.ts → index11.d.ts} +25 -33
- package/dist/{index-j3nuJWyJ.d.ts → index12.d.ts} +9 -11
- package/dist/{index-CbERNN3s.d.ts → index13.d.ts} +16 -26
- package/dist/{index-UXRoZmd_.d.ts → index14.d.ts} +9 -9
- package/dist/{index-BtDAHMW_.d.ts → index16.d.ts} +8 -8
- package/dist/{index-BIuYTMc2.d.ts → index17.d.ts} +9 -10
- package/dist/{index-DVI_vggD.d.ts → index19.d.ts} +14 -17
- package/dist/{index-nVb7o0hc.d.ts → index2.d.ts} +2 -2
- package/dist/{index-C-c_M_sE.d.ts → index21.d.ts} +9 -10
- package/dist/{index-BYQOPS8e.d.ts → index23.d.ts} +64 -77
- package/dist/{index-DqxQeYT2.d.ts → index24.d.ts} +36 -39
- package/dist/{index-DxAReMEO.d.ts → index25.d.ts} +34 -34
- package/dist/{index-DIc8OqWV.d.ts → index26.d.ts} +14 -8
- package/dist/{index-BnUku_aF.d.ts → index27.d.ts} +101 -108
- package/dist/{index-CNIiC8Z_.d.ts → index28.d.ts} +6 -9
- package/dist/{index-BNrz99xy.d.ts → index29.d.ts} +3 -3
- package/dist/{index-8scPf0CS.d.ts → index3.d.ts} +2 -2
- package/dist/{index-DD7Vc4cE.d.ts → index4.d.ts} +2 -2
- package/dist/{index-isFvc5gd.d.ts → index5.d.ts} +2 -2
- package/dist/{index-pbE88Tt7.d.ts → index6.d.ts} +2 -2
- package/dist/{index-Dsf9FRtr.d.ts → index7.d.ts} +3 -3
- package/dist/index8.d.ts +18 -0
- package/dist/{index-CsfxsN0t.d.ts → index9.d.ts} +4 -4
- package/dist/{inventory--t6Zu55O.js → inventory.js} +11 -18
- package/dist/inventory.js.map +1 -0
- package/dist/{listCollectiblesPaginated-BlE5mSzh.d.ts → listCollectiblesPaginated.d.ts} +27 -32
- package/dist/{listCollections-DWyqFSQ3.d.ts → listCollections.d.ts} +102 -109
- package/dist/{looks-rare-2HBhMpOf.js → looks-rare.js} +1 -1
- package/dist/looks-rare.js.map +1 -0
- package/dist/{lowestListing-DsunDO1c.d.ts → lowestListing.d.ts} +28 -38
- package/dist/{magic-eden-BYdTp-uk.js → magic-eden.js} +1 -1
- package/dist/magic-eden.js.map +1 -0
- package/dist/{manifold-yE0x6ZmO.js → manifold.js} +1 -1
- package/dist/manifold.js.map +1 -0
- package/dist/{market-DuBpFsDg.js → market.js} +19 -31
- package/dist/market.js.map +1 -0
- package/dist/{marketCurrencies-BgwmbGFk.d.ts → marketCurrencies.d.ts} +9 -10
- package/dist/{marketCurrencies-Bolonndy.js → marketCurrencies.js} +10 -13
- package/dist/marketCurrencies.js.map +1 -0
- package/dist/{marketplace-logos-Cz9RrtQo.js → marketplace-logos.js} +23 -23
- package/dist/marketplace-logos.js.map +1 -0
- package/dist/{marketplace.gen-906FrJQJ.js → marketplace.gen.js} +4 -7
- package/dist/marketplace.gen.js.map +1 -0
- package/dist/{marketplace-NQB-sEQL.js → marketplace.js} +2 -2
- package/dist/marketplace.js.map +1 -0
- package/dist/{marketplaceConfig-Bqjo7NYO.js → marketplaceConfig.js} +4 -8
- package/dist/marketplaceConfig.js.map +1 -0
- package/dist/{mintify-BXQx3mZB.js → mintify.js} +1 -1
- package/dist/mintify.js.map +1 -0
- package/dist/{network-DwdZ_5-7.js → network.js} +3 -3
- package/dist/network.js.map +1 -0
- package/dist/{networkconfigToWagmiChain-Ct-hGq8M.js → networkconfigToWagmiChain.js} +2 -2
- package/dist/networkconfigToWagmiChain.js.map +1 -0
- package/dist/{nftx-B929_3Ce.js → nftx.js} +1 -1
- package/dist/nftx.js.map +1 -0
- package/dist/{okx-sZ0-Udny.js → okx.js} +1 -1
- package/dist/okx.js.map +1 -0
- package/dist/{open-sea-DO9PhTrz.js → open-sea.js} +1 -1
- package/dist/open-sea.js.map +1 -0
- package/dist/{orders-DH76ym2e.js → orders.js} +17 -24
- package/dist/orders.js.map +1 -0
- package/dist/{primary-sale-1u4QlPdA.js → primary-sale.js} +2 -2
- package/dist/primary-sale.js.map +1 -0
- package/dist/{primary-sales-CECrqatg.js → primary-sales.js} +8 -12
- package/dist/primary-sales.js.map +1 -0
- package/dist/{query-brXxOcH0.d.ts → query.d.ts} +2 -2
- package/dist/{rarible-Ccb2hs7y.js → rarible.js} +1 -1
- package/dist/rarible.js.map +1 -0
- package/dist/react/_internal/api/index.d.ts +1 -1
- package/dist/react/_internal/api/index.js +6 -6
- package/dist/react/_internal/databeat/index.d.ts +1 -1
- package/dist/react/_internal/databeat/index.js +37 -37
- package/dist/react/_internal/index.d.ts +1 -1
- package/dist/react/_internal/index.js +10 -10
- package/dist/react/_internal/wagmi/index.d.ts +1 -1
- package/dist/react/_internal/wagmi/index.js +5 -5
- package/dist/react/hooks/config/index.d.ts +8 -8
- package/dist/react/hooks/config/index.js +37 -37
- package/dist/react/hooks/contracts/index.d.ts +6 -6
- package/dist/react/hooks/contracts/index.js +15 -15
- package/dist/react/hooks/data/collectibles/index.d.ts +4 -10
- package/dist/react/hooks/data/collectibles/index.js +37 -37
- package/dist/react/hooks/data/collections/index.d.ts +10 -10
- package/dist/react/hooks/data/collections/index.js +37 -37
- package/dist/react/hooks/data/index.d.ts +36 -36
- package/dist/react/hooks/data/index.js +37 -37
- package/dist/react/hooks/data/inventory/index.d.ts +36 -36
- package/dist/react/hooks/data/inventory/index.js +37 -37
- package/dist/react/hooks/data/market/index.d.ts +5 -11
- package/dist/react/hooks/data/market/index.js +37 -37
- package/dist/react/hooks/data/orders/index.d.ts +4 -10
- package/dist/react/hooks/data/orders/index.js +37 -37
- package/dist/react/hooks/data/primary-sales/index.d.ts +36 -36
- package/dist/react/hooks/data/primary-sales/index.js +37 -37
- package/dist/react/hooks/data/tokens/index.d.ts +4 -4
- package/dist/react/hooks/data/tokens/index.js +37 -37
- package/dist/react/hooks/index.d.ts +36 -36
- package/dist/react/hooks/index.js +37 -37
- package/dist/react/hooks/transactions/index.d.ts +2 -2
- package/dist/react/hooks/transactions/index.js +37 -37
- package/dist/react/hooks/ui/index.d.ts +4 -4
- package/dist/react/hooks/ui/index.js +37 -37
- package/dist/react/hooks/utils/index.d.ts +36 -36
- package/dist/react/hooks/utils/index.js +37 -37
- package/dist/react/index.d.ts +36 -36
- package/dist/react/index.js +37 -37
- package/dist/react/queries/collectibles/index.d.ts +4 -10
- package/dist/react/queries/collectibles/index.js +20 -20
- package/dist/react/queries/collections/index.d.ts +10 -10
- package/dist/react/queries/collections/index.js +18 -18
- package/dist/react/queries/index.d.ts +23 -23
- package/dist/react/queries/index.js +29 -29
- package/dist/react/queries/inventory/index.d.ts +2 -2
- package/dist/react/queries/inventory/index.js +20 -20
- package/dist/react/queries/market/index.d.ts +5 -5
- package/dist/react/queries/market/index.js +20 -20
- package/dist/react/queries/orders/index.d.ts +4 -10
- package/dist/react/queries/orders/index.js +11 -11
- package/dist/react/queries/primary-sales/index.d.ts +3 -3
- package/dist/react/queries/primary-sales/index.js +11 -11
- package/dist/react/queries/tokens/index.d.ts +4 -4
- package/dist/react/queries/tokens/index.js +11 -11
- package/dist/react/queries/utils/index.d.ts +3 -3
- package/dist/react/queries/utils/index.js +20 -20
- package/dist/react/ssr/index.d.ts +7 -7
- package/dist/react/ssr/index.js +13 -16
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +2 -2
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +20 -20
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +5 -5
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +37 -37
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -4
- package/dist/react/ui/components/marketplace-collectible-card/index.js +37 -37
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +11 -11
- package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
- package/dist/react/ui/components/marketplace-logos/index.js +1 -1
- package/dist/react/ui/icons/index.js +14 -14
- package/dist/react/ui/index.d.ts +4 -4
- package/dist/react/ui/index.js +37 -37
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +37 -37
- package/dist/react/utils/index.d.ts +1 -1
- package/dist/react/utils/index.js +7 -7
- package/dist/{react-CBsgOdVP.js → react.js} +665 -744
- package/dist/react.js.map +1 -0
- package/dist/{sequence-CRdb1yEs.js → sequence.js} +1 -1
- package/dist/sequence.js.map +1 -0
- package/dist/{src-Dz2CfBL0.js → src.js} +2 -2
- package/dist/src.js.map +1 -0
- package/dist/styles/index.css +1 -1
- package/dist/{sudo-swap-BIklG2gq.js → sudo-swap.js} +1 -1
- package/dist/sudo-swap.js.map +1 -0
- package/dist/{super-rare-h8645_5E.js → super-rare.js} +1 -1
- package/dist/super-rare.js.map +1 -0
- package/dist/{token-Cv7l2ZaL.js → token.js} +2 -2
- package/dist/token.js.map +1 -0
- package/dist/{tokenBalances-CouzNX4j.js → tokenBalances.js} +4 -5
- package/dist/tokenBalances.js.map +1 -0
- package/dist/{tokenSupplies-C3zJll0M.d.ts → tokenSupplies.d.ts} +27 -31
- package/dist/{tokens-BvIRUCGG.js → tokens.js} +10 -16
- package/dist/tokens.js.map +1 -0
- package/dist/{transaction-DZUW5RHu.js → transaction.js} +2 -2
- package/dist/transaction.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +3 -3
- package/dist/{types-CMDwfhfR.d.ts → types.d.ts} +6 -6
- package/dist/{types-B_-cnkcP.js → types.js} +2 -2
- package/dist/types.js.map +1 -0
- package/dist/utils/abi/index.d.ts +4 -4
- package/dist/utils/abi/index.js +4 -4
- package/dist/utils/abi/marketplace/index.d.ts +1 -1
- package/dist/utils/abi/marketplace/index.js +1 -1
- package/dist/utils/abi/primary-sale/index.d.ts +1 -1
- package/dist/utils/abi/primary-sale/index.js +1 -1
- package/dist/utils/abi/token/index.d.ts +1 -1
- package/dist/utils/abi/token/index.js +1 -1
- package/dist/utils/index.d.ts +6 -6
- package/dist/utils/index.js +12 -12
- package/dist/{utils-9ToOvt-c.js → utils.js} +9 -14
- package/dist/utils.js.map +1 -0
- package/dist/{utils-BCYTEOvy.js → utils2.js} +12 -16
- package/dist/utils2.js.map +1 -0
- package/dist/{utils-B6di6O-C.js → utils3.js} +3 -3
- package/dist/utils3.js.map +1 -0
- package/dist/{waitForTransactionReceipt-CbSeUSXe.js → waitForTransactionReceipt.js} +5 -6
- package/dist/waitForTransactionReceipt.js.map +1 -0
- package/dist/{x2y2-OvF__ugj.js → x2y2.js} +1 -1
- package/dist/x2y2.js.map +1 -0
- package/dist/{zora-DzCeu-eE.js → zora.js} +1 -1
- package/dist/zora.js.map +1 -0
- package/package.json +27 -27
- package/src/react/_internal/api/marketplace.gen.ts +1 -1
- package/src/react/_internal/wagmi/get-connectors.ts +12 -1
- package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +152 -141
- package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +44 -60
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155SalePaymentParams.test.tsx +381 -0
- package/src/react/ui/modals/BuyModal/hooks/useERC1155SalePaymentParams.ts +257 -0
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +1 -1
- package/src/react/ui/modals/TransferModal/index.tsx +24 -2
- package/src/styles/styles.ts +2 -2
- package/tsdown.config.ts +1 -0
- package/dist/BellIcon-DMKEumAz.js.map +0 -1
- package/dist/CartIcon-UyB4NYKt.js.map +0 -1
- package/dist/CollectibleCard-z05qWzKE.d.ts +0 -8
- package/dist/_internal-DkS2VUn5.js.map +0 -1
- package/dist/abi-fa-o9gH3.js.map +0 -1
- package/dist/alien_swap-Cq8LuElo.js.map +0 -1
- package/dist/api-GwTR0dBA.js.map +0 -1
- package/dist/aqua-xyz-0yye_c-Z.js.map +0 -1
- package/dist/aura-TaxFvTFQ.js.map +0 -1
- package/dist/blur-BupOTobO.js.map +0 -1
- package/dist/builder-api-m4JAA6ee.js.map +0 -1
- package/dist/builder.gen--XD71cNL.js.map +0 -1
- package/dist/coinbase-DTgZ4wDT.js.map +0 -1
- package/dist/collectibles-CZ6i8sXK.js.map +0 -1
- package/dist/collections-5NcU-7ZR.js.map +0 -1
- package/dist/components-CY8kx2kb.js.map +0 -1
- package/dist/contracts-DRJHF89h.js.map +0 -1
- package/dist/create-config-BxyfYCEk.js.map +0 -1
- package/dist/element-D4dDznlu.js.map +0 -1
- package/dist/foundation-GHZOKAzN.js.map +0 -1
- package/dist/index-9qsplZ8r.d.ts +0 -18
- package/dist/inventory--t6Zu55O.js.map +0 -1
- package/dist/looks-rare-2HBhMpOf.js.map +0 -1
- package/dist/magic-eden-BYdTp-uk.js.map +0 -1
- package/dist/manifold-yE0x6ZmO.js.map +0 -1
- package/dist/market-DuBpFsDg.js.map +0 -1
- package/dist/marketCurrencies-Bolonndy.js.map +0 -1
- package/dist/marketplace-NQB-sEQL.js.map +0 -1
- package/dist/marketplace-logos-Cz9RrtQo.js.map +0 -1
- package/dist/marketplace.gen-906FrJQJ.js.map +0 -1
- package/dist/marketplaceConfig-Bqjo7NYO.js.map +0 -1
- package/dist/mintify-BXQx3mZB.js.map +0 -1
- package/dist/network-DwdZ_5-7.js.map +0 -1
- package/dist/networkconfigToWagmiChain-Ct-hGq8M.js.map +0 -1
- package/dist/nftx-B929_3Ce.js.map +0 -1
- package/dist/okx-sZ0-Udny.js.map +0 -1
- package/dist/open-sea-DO9PhTrz.js.map +0 -1
- package/dist/orders-DH76ym2e.js.map +0 -1
- package/dist/primary-sale-1u4QlPdA.js.map +0 -1
- package/dist/primary-sales-CECrqatg.js.map +0 -1
- package/dist/rarible-Ccb2hs7y.js.map +0 -1
- package/dist/react-CBsgOdVP.js.map +0 -1
- package/dist/sequence-CRdb1yEs.js.map +0 -1
- package/dist/src-Dz2CfBL0.js.map +0 -1
- package/dist/sudo-swap-BIklG2gq.js.map +0 -1
- package/dist/super-rare-h8645_5E.js.map +0 -1
- package/dist/token-Cv7l2ZaL.js.map +0 -1
- package/dist/tokenBalances-CouzNX4j.js.map +0 -1
- package/dist/tokens-BvIRUCGG.js.map +0 -1
- package/dist/transaction-DZUW5RHu.js.map +0 -1
- package/dist/types-B_-cnkcP.js.map +0 -1
- package/dist/utils-9ToOvt-c.js.map +0 -1
- package/dist/utils-B6di6O-C.js.map +0 -1
- package/dist/utils-BCYTEOvy.js.map +0 -1
- package/dist/waitForTransactionReceipt-CbSeUSXe.js.map +0 -1
- package/dist/x2y2-OvF__ugj.js.map +0 -1
- package/dist/zora-DzCeu-eE.js.map +0 -1
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +0 -395
- package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +0 -103
- /package/dist/{index-CCggO_hw.d.ts → index15.d.ts} +0 -0
- /package/dist/{index-CKefEBrI.d.ts → index18.d.ts} +0 -0
- /package/dist/{index-DgsCqh_P.d.ts → index20.d.ts} +0 -0
- /package/dist/{index-xpO4AQyS.d.ts → index22.d.ts} +0 -0
- /package/dist/{queries-CyajGg_O.js → queries.js} +0 -0
- /package/dist/{wagmi-Bseovd6Q.js → wagmi.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zora-DzCeu-eE.js","names":[],"sources":["../src/react/ui/images/marketplaces/zora.png"],"sourcesContent":["\"data:image/png;base64,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\""],"mappings":";mBAAA"}
|
|
@@ -1,395 +0,0 @@
|
|
|
1
|
-
import { renderHook } from '@test';
|
|
2
|
-
import type { Address } from 'viem';
|
|
3
|
-
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
-
import {
|
|
5
|
-
type CheckoutOptions,
|
|
6
|
-
TransactionCrypto,
|
|
7
|
-
} from '../../../../../_internal';
|
|
8
|
-
import { useERC1155Checkout } from '../useERC1155Checkout';
|
|
9
|
-
|
|
10
|
-
// Mock @0xsequence/checkout
|
|
11
|
-
vi.mock('@0xsequence/checkout', () => ({
|
|
12
|
-
useERC1155SaleContractCheckout: vi.fn(() => ({
|
|
13
|
-
openCheckoutModal: vi.fn(),
|
|
14
|
-
isLoading: false,
|
|
15
|
-
isError: false,
|
|
16
|
-
})),
|
|
17
|
-
}));
|
|
18
|
-
|
|
19
|
-
// Mock wagmi's useAccount hook
|
|
20
|
-
vi.mock('wagmi', async () => {
|
|
21
|
-
const actual = await vi.importActual('wagmi');
|
|
22
|
-
return {
|
|
23
|
-
...actual,
|
|
24
|
-
useAccount: vi.fn(() => ({
|
|
25
|
-
address: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266' as Address,
|
|
26
|
-
})),
|
|
27
|
-
};
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
// Mock store hooks
|
|
31
|
-
vi.mock('../../store', () => ({
|
|
32
|
-
useQuantity: vi.fn(() => 2),
|
|
33
|
-
useOnSuccess: vi.fn(() => vi.fn()),
|
|
34
|
-
useOnError: vi.fn(() => vi.fn()),
|
|
35
|
-
useBuyAnalyticsId: vi.fn(() => '123'),
|
|
36
|
-
useBuyModalProps: vi.fn(() => ({
|
|
37
|
-
chainId: 1,
|
|
38
|
-
collectionAddress: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd',
|
|
39
|
-
marketplaceType: 'shop',
|
|
40
|
-
salesContractAddress: '0x1234567890123456789012345678901234567890',
|
|
41
|
-
items: [],
|
|
42
|
-
quantityDecimals: 0,
|
|
43
|
-
quantityRemaining: 100,
|
|
44
|
-
salePrice: {
|
|
45
|
-
amount: '1000000000000000000',
|
|
46
|
-
currencyAddress: '0x0000000000000000000000000000000000000000',
|
|
47
|
-
},
|
|
48
|
-
})),
|
|
49
|
-
buyModalStore: {
|
|
50
|
-
send: vi.fn(),
|
|
51
|
-
},
|
|
52
|
-
}));
|
|
53
|
-
|
|
54
|
-
const mockCheckoutOptions = {
|
|
55
|
-
crypto: TransactionCrypto.all,
|
|
56
|
-
swap: [],
|
|
57
|
-
nftCheckout: [],
|
|
58
|
-
onRamp: [],
|
|
59
|
-
} satisfies CheckoutOptions;
|
|
60
|
-
|
|
61
|
-
const mockItems = [
|
|
62
|
-
{ tokenId: '1', quantity: '2' },
|
|
63
|
-
{ tokenId: '2', quantity: '1' },
|
|
64
|
-
];
|
|
65
|
-
|
|
66
|
-
describe('useERC1155Checkout', () => {
|
|
67
|
-
let mockUseERC1155SaleContractCheckout: ReturnType<typeof vi.fn>;
|
|
68
|
-
|
|
69
|
-
beforeEach(async () => {
|
|
70
|
-
vi.clearAllMocks();
|
|
71
|
-
|
|
72
|
-
// Setup the mock for useERC1155SaleContractCheckout
|
|
73
|
-
mockUseERC1155SaleContractCheckout = vi.mocked(
|
|
74
|
-
(await import('@0xsequence/checkout')).useERC1155SaleContractCheckout,
|
|
75
|
-
);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
afterEach(() => {
|
|
79
|
-
vi.restoreAllMocks();
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it('should call useERC1155SaleContractCheckout with correct parameters', () => {
|
|
83
|
-
const mockCheckout = {
|
|
84
|
-
openCheckoutModal: vi.fn(),
|
|
85
|
-
isLoading: false,
|
|
86
|
-
isError: false,
|
|
87
|
-
};
|
|
88
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
89
|
-
|
|
90
|
-
const { result } = renderHook(() =>
|
|
91
|
-
useERC1155Checkout({
|
|
92
|
-
chainId: 1,
|
|
93
|
-
salesContractAddress: '0x456',
|
|
94
|
-
collectionAddress: '0x123',
|
|
95
|
-
items: mockItems,
|
|
96
|
-
checkoutOptions: mockCheckoutOptions,
|
|
97
|
-
enabled: true,
|
|
98
|
-
}),
|
|
99
|
-
);
|
|
100
|
-
|
|
101
|
-
expect(
|
|
102
|
-
mockUseERC1155SaleContractCheckout.mock.calls,
|
|
103
|
-
).toMatchInlineSnapshot(`
|
|
104
|
-
[
|
|
105
|
-
[
|
|
106
|
-
{
|
|
107
|
-
"chain": 1,
|
|
108
|
-
"checkoutOptions": {
|
|
109
|
-
"crypto": "all",
|
|
110
|
-
"nftCheckout": [],
|
|
111
|
-
"onRamp": [],
|
|
112
|
-
"swap": [],
|
|
113
|
-
},
|
|
114
|
-
"collectionAddress": "0x123",
|
|
115
|
-
"contractAddress": "0x456",
|
|
116
|
-
"customProviderCallback": undefined,
|
|
117
|
-
"items": [
|
|
118
|
-
{
|
|
119
|
-
"quantity": "2",
|
|
120
|
-
"tokenId": "1",
|
|
121
|
-
},
|
|
122
|
-
],
|
|
123
|
-
"onClose": [Function],
|
|
124
|
-
"onError": [Function],
|
|
125
|
-
"onSuccess": [Function],
|
|
126
|
-
"successActionButtons": undefined,
|
|
127
|
-
"supplementaryAnalyticsInfo": {
|
|
128
|
-
"marketplaceType": "shop",
|
|
129
|
-
"saleAnalyticsId": "123",
|
|
130
|
-
},
|
|
131
|
-
"wallet": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
|
|
132
|
-
},
|
|
133
|
-
],
|
|
134
|
-
]
|
|
135
|
-
`);
|
|
136
|
-
|
|
137
|
-
expect(result.current.isEnabled).toBe(true);
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
it('should return isEnabled false when no wallet is connected', async () => {
|
|
141
|
-
const { useAccount } = vi.mocked(await import('wagmi'));
|
|
142
|
-
useAccount.mockReturnValue({
|
|
143
|
-
address: undefined,
|
|
144
|
-
isConnected: false,
|
|
145
|
-
isConnecting: false,
|
|
146
|
-
isDisconnected: true,
|
|
147
|
-
isReconnecting: false,
|
|
148
|
-
connector: null,
|
|
149
|
-
addresses: undefined,
|
|
150
|
-
chain: undefined,
|
|
151
|
-
chainId: undefined,
|
|
152
|
-
status: 'disconnected',
|
|
153
|
-
} as never);
|
|
154
|
-
|
|
155
|
-
const mockCheckout = {
|
|
156
|
-
openCheckoutModal: vi.fn(),
|
|
157
|
-
isLoading: false,
|
|
158
|
-
isError: false,
|
|
159
|
-
};
|
|
160
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
161
|
-
|
|
162
|
-
const { result } = renderHook(() =>
|
|
163
|
-
useERC1155Checkout({
|
|
164
|
-
chainId: 1,
|
|
165
|
-
salesContractAddress: '0x456',
|
|
166
|
-
collectionAddress: '0x123',
|
|
167
|
-
items: mockItems,
|
|
168
|
-
enabled: true,
|
|
169
|
-
}),
|
|
170
|
-
);
|
|
171
|
-
|
|
172
|
-
expect(result.current.isEnabled).toBe(false);
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
it('should return isEnabled false when explicitly disabled', () => {
|
|
176
|
-
const mockCheckout = {
|
|
177
|
-
openCheckoutModal: vi.fn(),
|
|
178
|
-
isLoading: false,
|
|
179
|
-
isError: false,
|
|
180
|
-
};
|
|
181
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
182
|
-
|
|
183
|
-
const { result } = renderHook(() =>
|
|
184
|
-
useERC1155Checkout({
|
|
185
|
-
chainId: 1,
|
|
186
|
-
salesContractAddress: '0x456',
|
|
187
|
-
collectionAddress: '0x123',
|
|
188
|
-
items: mockItems,
|
|
189
|
-
enabled: false,
|
|
190
|
-
}),
|
|
191
|
-
);
|
|
192
|
-
|
|
193
|
-
expect(result.current.isEnabled).toBe(false);
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
it('should handle custom provider callback', () => {
|
|
197
|
-
const customCallback = vi.fn();
|
|
198
|
-
const mockCheckout = {
|
|
199
|
-
openCheckoutModal: vi.fn(),
|
|
200
|
-
isLoading: false,
|
|
201
|
-
isError: false,
|
|
202
|
-
};
|
|
203
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
204
|
-
|
|
205
|
-
renderHook(() =>
|
|
206
|
-
useERC1155Checkout({
|
|
207
|
-
chainId: 1,
|
|
208
|
-
salesContractAddress: '0x456',
|
|
209
|
-
collectionAddress: '0x123',
|
|
210
|
-
items: mockItems,
|
|
211
|
-
customProviderCallback: customCallback,
|
|
212
|
-
enabled: true,
|
|
213
|
-
}),
|
|
214
|
-
);
|
|
215
|
-
|
|
216
|
-
expect(mockUseERC1155SaleContractCheckout).toHaveBeenCalledWith(
|
|
217
|
-
expect.objectContaining({
|
|
218
|
-
customProviderCallback: customCallback,
|
|
219
|
-
}),
|
|
220
|
-
);
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
it('should use default quantity of 1 when quantity store returns null', async () => {
|
|
224
|
-
const storeModule = await import('../../store');
|
|
225
|
-
const useQuantitySpy = vi.spyOn(storeModule, 'useQuantity');
|
|
226
|
-
useQuantitySpy.mockReturnValue(null);
|
|
227
|
-
|
|
228
|
-
const mockCheckout = {
|
|
229
|
-
openCheckoutModal: vi.fn(),
|
|
230
|
-
isLoading: false,
|
|
231
|
-
isError: false,
|
|
232
|
-
};
|
|
233
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
234
|
-
|
|
235
|
-
renderHook(() =>
|
|
236
|
-
useERC1155Checkout({
|
|
237
|
-
chainId: 1,
|
|
238
|
-
salesContractAddress: '0x456',
|
|
239
|
-
collectionAddress: '0x123',
|
|
240
|
-
items: mockItems,
|
|
241
|
-
enabled: true,
|
|
242
|
-
}),
|
|
243
|
-
);
|
|
244
|
-
|
|
245
|
-
expect(mockUseERC1155SaleContractCheckout).toHaveBeenCalledWith(
|
|
246
|
-
expect.objectContaining({
|
|
247
|
-
items: [
|
|
248
|
-
{
|
|
249
|
-
tokenId: '1',
|
|
250
|
-
quantity: '1', // Default value
|
|
251
|
-
},
|
|
252
|
-
],
|
|
253
|
-
}),
|
|
254
|
-
);
|
|
255
|
-
|
|
256
|
-
useQuantitySpy.mockRestore();
|
|
257
|
-
});
|
|
258
|
-
|
|
259
|
-
it('should handle different chain IDs', () => {
|
|
260
|
-
const mockCheckout = {
|
|
261
|
-
openCheckoutModal: vi.fn(),
|
|
262
|
-
isLoading: false,
|
|
263
|
-
isError: false,
|
|
264
|
-
};
|
|
265
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
266
|
-
|
|
267
|
-
renderHook(() =>
|
|
268
|
-
useERC1155Checkout({
|
|
269
|
-
chainId: 137, // Polygon
|
|
270
|
-
salesContractAddress: '0x456',
|
|
271
|
-
collectionAddress: '0x123',
|
|
272
|
-
items: mockItems,
|
|
273
|
-
enabled: true,
|
|
274
|
-
}),
|
|
275
|
-
);
|
|
276
|
-
|
|
277
|
-
expect(mockUseERC1155SaleContractCheckout).toHaveBeenCalledWith(
|
|
278
|
-
expect.objectContaining({
|
|
279
|
-
chain: 137,
|
|
280
|
-
}),
|
|
281
|
-
);
|
|
282
|
-
});
|
|
283
|
-
|
|
284
|
-
it('should omit checkoutOptions when not provided', () => {
|
|
285
|
-
const mockCheckout = {
|
|
286
|
-
openCheckoutModal: vi.fn(),
|
|
287
|
-
isLoading: false,
|
|
288
|
-
isError: false,
|
|
289
|
-
};
|
|
290
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
291
|
-
|
|
292
|
-
renderHook(() =>
|
|
293
|
-
useERC1155Checkout({
|
|
294
|
-
chainId: 1,
|
|
295
|
-
salesContractAddress: '0x456',
|
|
296
|
-
collectionAddress: '0x123',
|
|
297
|
-
items: mockItems,
|
|
298
|
-
enabled: true,
|
|
299
|
-
}),
|
|
300
|
-
);
|
|
301
|
-
|
|
302
|
-
const callArgs = mockUseERC1155SaleContractCheckout.mock.calls[0][0];
|
|
303
|
-
expect(callArgs).not.toHaveProperty('checkoutOptions');
|
|
304
|
-
});
|
|
305
|
-
|
|
306
|
-
it('should spread all properties from useERC1155SaleContractCheckout', () => {
|
|
307
|
-
const mockCheckout = {
|
|
308
|
-
openCheckoutModal: vi.fn(),
|
|
309
|
-
isLoading: false,
|
|
310
|
-
isError: false,
|
|
311
|
-
additionalProp: 'test',
|
|
312
|
-
};
|
|
313
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
314
|
-
|
|
315
|
-
const { result } = renderHook(() =>
|
|
316
|
-
useERC1155Checkout({
|
|
317
|
-
chainId: 1,
|
|
318
|
-
salesContractAddress: '0x456',
|
|
319
|
-
collectionAddress: '0x123',
|
|
320
|
-
items: mockItems,
|
|
321
|
-
enabled: true,
|
|
322
|
-
}),
|
|
323
|
-
);
|
|
324
|
-
|
|
325
|
-
expect(result.current.openCheckoutModal).toBe(
|
|
326
|
-
mockCheckout.openCheckoutModal,
|
|
327
|
-
);
|
|
328
|
-
expect(result.current.isLoading).toBe(mockCheckout.isLoading);
|
|
329
|
-
expect(result.current.isError).toBe(mockCheckout.isError);
|
|
330
|
-
});
|
|
331
|
-
|
|
332
|
-
it('should include callback functions in checkout params', () => {
|
|
333
|
-
const mockCheckout = {
|
|
334
|
-
openCheckoutModal: vi.fn(),
|
|
335
|
-
isLoading: false,
|
|
336
|
-
isError: false,
|
|
337
|
-
};
|
|
338
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
339
|
-
|
|
340
|
-
renderHook(() =>
|
|
341
|
-
useERC1155Checkout({
|
|
342
|
-
chainId: 1,
|
|
343
|
-
salesContractAddress: '0x456',
|
|
344
|
-
collectionAddress: '0x123',
|
|
345
|
-
items: mockItems,
|
|
346
|
-
enabled: true,
|
|
347
|
-
}),
|
|
348
|
-
);
|
|
349
|
-
|
|
350
|
-
const callArgs = mockUseERC1155SaleContractCheckout.mock.calls[0][0];
|
|
351
|
-
|
|
352
|
-
expect(callArgs.onSuccess).toBeInstanceOf(Function);
|
|
353
|
-
expect(callArgs.onError).toBeInstanceOf(Function);
|
|
354
|
-
expect(callArgs.onClose).toBeInstanceOf(Function);
|
|
355
|
-
});
|
|
356
|
-
|
|
357
|
-
it('should use empty wallet string when address is undefined', async () => {
|
|
358
|
-
const { useAccount } = vi.mocked(await import('wagmi'));
|
|
359
|
-
useAccount.mockReturnValue({
|
|
360
|
-
address: undefined,
|
|
361
|
-
isConnected: false,
|
|
362
|
-
isConnecting: false,
|
|
363
|
-
isDisconnected: true,
|
|
364
|
-
isReconnecting: false,
|
|
365
|
-
connector: null,
|
|
366
|
-
addresses: undefined,
|
|
367
|
-
chain: undefined,
|
|
368
|
-
chainId: undefined,
|
|
369
|
-
status: 'disconnected',
|
|
370
|
-
} as never);
|
|
371
|
-
|
|
372
|
-
const mockCheckout = {
|
|
373
|
-
openCheckoutModal: vi.fn(),
|
|
374
|
-
isLoading: false,
|
|
375
|
-
isError: false,
|
|
376
|
-
};
|
|
377
|
-
mockUseERC1155SaleContractCheckout.mockReturnValue(mockCheckout);
|
|
378
|
-
|
|
379
|
-
renderHook(() =>
|
|
380
|
-
useERC1155Checkout({
|
|
381
|
-
chainId: 1,
|
|
382
|
-
salesContractAddress: '0x456',
|
|
383
|
-
collectionAddress: '0x123',
|
|
384
|
-
items: mockItems,
|
|
385
|
-
enabled: true,
|
|
386
|
-
}),
|
|
387
|
-
);
|
|
388
|
-
|
|
389
|
-
expect(mockUseERC1155SaleContractCheckout).toHaveBeenCalledWith(
|
|
390
|
-
expect.objectContaining({
|
|
391
|
-
wallet: '',
|
|
392
|
-
}),
|
|
393
|
-
);
|
|
394
|
-
});
|
|
395
|
-
});
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { useERC1155SaleContractCheckout } from '@0xsequence/checkout';
|
|
2
|
-
import type { Hash } from 'viem';
|
|
3
|
-
import { useAccount } from 'wagmi';
|
|
4
|
-
import type {
|
|
5
|
-
CheckoutOptions,
|
|
6
|
-
CheckoutOptionsItem,
|
|
7
|
-
} from '../../../../_internal';
|
|
8
|
-
import {
|
|
9
|
-
balanceQueries,
|
|
10
|
-
collectableKeys,
|
|
11
|
-
getQueryClient,
|
|
12
|
-
} from '../../../../_internal';
|
|
13
|
-
import {
|
|
14
|
-
buyModalStore,
|
|
15
|
-
useBuyAnalyticsId,
|
|
16
|
-
useBuyModalProps,
|
|
17
|
-
useOnError,
|
|
18
|
-
useOnSuccess,
|
|
19
|
-
useQuantity,
|
|
20
|
-
} from '../store';
|
|
21
|
-
|
|
22
|
-
interface UseERC1155CheckoutParams {
|
|
23
|
-
chainId: number;
|
|
24
|
-
salesContractAddress: string;
|
|
25
|
-
collectionAddress: string;
|
|
26
|
-
items: Array<CheckoutOptionsItem>;
|
|
27
|
-
checkoutOptions?: CheckoutOptions;
|
|
28
|
-
customProviderCallback?: (
|
|
29
|
-
onSuccess: (txHash: string) => void,
|
|
30
|
-
onError: (error: Error) => void,
|
|
31
|
-
onClose: () => void,
|
|
32
|
-
) => void;
|
|
33
|
-
enabled?: boolean;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export const useERC1155Checkout = ({
|
|
37
|
-
chainId,
|
|
38
|
-
salesContractAddress,
|
|
39
|
-
collectionAddress,
|
|
40
|
-
items,
|
|
41
|
-
checkoutOptions,
|
|
42
|
-
customProviderCallback,
|
|
43
|
-
enabled = true,
|
|
44
|
-
}: UseERC1155CheckoutParams) => {
|
|
45
|
-
const { address: accountAddress } = useAccount();
|
|
46
|
-
const quantity = useQuantity();
|
|
47
|
-
const onSuccess = useOnSuccess();
|
|
48
|
-
const onError = useOnError();
|
|
49
|
-
const saleAnalyticsId = useBuyAnalyticsId();
|
|
50
|
-
|
|
51
|
-
const buyModalProps = useBuyModalProps();
|
|
52
|
-
|
|
53
|
-
const checkout = useERC1155SaleContractCheckout({
|
|
54
|
-
chain: chainId,
|
|
55
|
-
contractAddress: salesContractAddress,
|
|
56
|
-
collectionAddress,
|
|
57
|
-
items: [
|
|
58
|
-
{
|
|
59
|
-
...items[0],
|
|
60
|
-
quantity: quantity?.toString() || '1',
|
|
61
|
-
},
|
|
62
|
-
],
|
|
63
|
-
wallet: accountAddress ?? '',
|
|
64
|
-
// Pass checkout options if available
|
|
65
|
-
...(checkoutOptions && { checkoutOptions }),
|
|
66
|
-
onSuccess: (txHash?: string) => {
|
|
67
|
-
if (txHash) {
|
|
68
|
-
onSuccess({ hash: txHash as Hash });
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
onError: (error: Error) => {
|
|
72
|
-
onError(error);
|
|
73
|
-
},
|
|
74
|
-
onClose: () => {
|
|
75
|
-
const queryClient = getQueryClient();
|
|
76
|
-
queryClient.invalidateQueries({
|
|
77
|
-
queryKey: balanceQueries.inventory,
|
|
78
|
-
});
|
|
79
|
-
queryClient.invalidateQueries({
|
|
80
|
-
queryKey: [...collectableKeys.userBalances],
|
|
81
|
-
refetchType: 'inactive',
|
|
82
|
-
});
|
|
83
|
-
queryClient.invalidateQueries({
|
|
84
|
-
queryKey: collectableKeys.listPrimarySaleItems,
|
|
85
|
-
});
|
|
86
|
-
buyModalStore.send({ type: 'close' });
|
|
87
|
-
},
|
|
88
|
-
customProviderCallback,
|
|
89
|
-
supplementaryAnalyticsInfo: {
|
|
90
|
-
marketplaceType: 'shop',
|
|
91
|
-
saleAnalyticsId,
|
|
92
|
-
},
|
|
93
|
-
successActionButtons: buyModalProps.successActionButtons,
|
|
94
|
-
...(buyModalProps.onRampProvider && {
|
|
95
|
-
onRampProvider: buyModalProps.onRampProvider,
|
|
96
|
-
}),
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
return {
|
|
100
|
-
...checkout,
|
|
101
|
-
isEnabled: Boolean(enabled && accountAddress),
|
|
102
|
-
};
|
|
103
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|