@0xsequence/marketplace-sdk 0.8.12 → 0.10.0
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/.storybook/main.ts +63 -0
- package/.storybook/preview.ts +24 -0
- package/.storybook/vitest.setup.ts +6 -0
- package/CHANGELOG.md +158 -21
- package/dist/{CartIcon-Bll1rbxv.js → CalendarIcon-CqsuAuCm.js} +30 -77
- package/dist/CalendarIcon-CqsuAuCm.js.map +1 -0
- package/dist/{types-BIJOaL4j.d.ts → CollectibleCard-Dd-CG6dE.d.ts} +11 -7
- package/dist/InfoIcon-v0w_Lu7t.js +53 -0
- package/dist/InfoIcon-v0w_Lu7t.js.map +1 -0
- package/dist/_internal-C75gOSNo.js +14 -0
- package/dist/_internal-C75gOSNo.js.map +1 -0
- package/dist/actionModal-CMUeVsFX.js +116 -0
- package/dist/actionModal-CMUeVsFX.js.map +1 -0
- package/dist/{alien_swap-B_76IMma.js → alien_swap-CYv6YlOF.js} +1 -1
- package/dist/{alien_swap-B_76IMma.js.map → alien_swap-CYv6YlOF.js.map} +1 -1
- package/dist/{api-1KFxYh7o.js → api-BiMGqWdz.js} +79 -87
- package/dist/api-BiMGqWdz.js.map +1 -0
- package/dist/{aqua-xyz-CMN_TFY5.js → aqua-xyz-Bzn5baeH.js} +1 -1
- package/dist/{aqua-xyz-CMN_TFY5.js.map → aqua-xyz-Bzn5baeH.js.map} +1 -1
- package/dist/{aura-Cye_TuHj.js → aura-DzIWh8WT.js} +1 -1
- package/dist/{aura-Cye_TuHj.js.map → aura-DzIWh8WT.js.map} +1 -1
- package/dist/base-DqaJPvfN.js +22 -0
- package/dist/base-DqaJPvfN.js.map +1 -0
- package/dist/{blur-DWDMyMpK.js → blur-DSH-Cbpj.js} +1 -1
- package/dist/{blur-DWDMyMpK.js.map → blur-DSH-Cbpj.js.map} +1 -1
- package/dist/{builder-api-BQvzykoU.js → builder-api-BFuZNOaN.js} +2 -2
- package/dist/{builder-api-BQvzykoU.js.map → builder-api-BFuZNOaN.js.map} +1 -1
- package/dist/{builder.gen-CxP9NT1p.js → builder.gen-B9wR2nvF.js} +1 -1
- package/dist/builder.gen-B9wR2nvF.js.map +1 -0
- package/dist/{coinbase-ByA_XRB0.js → coinbase-Df8URNxq.js} +1 -1
- package/dist/{coinbase-ByA_XRB0.js.map → coinbase-Df8URNxq.js.map} +1 -1
- package/dist/{sdk-config-DJzxVPld.d.ts → create-config-DKJ-F0jc.d.ts} +458 -86
- package/dist/{wagmi-DRctYEk6.js → create-config-fQ-jbJD1.js} +33 -16
- package/dist/create-config-fQ-jbJD1.js.map +1 -0
- package/dist/{element-b77CyXIZ.js → element-Cx6uJu5N.js} +1 -1
- package/dist/{element-b77CyXIZ.js.map → element-Cx6uJu5N.js.map} +1 -1
- package/dist/{foundation-DbOrKP9Y.js → foundation-D6U4aRLN.js} +1 -1
- package/dist/{foundation-DbOrKP9Y.js.map → foundation-D6U4aRLN.js.map} +1 -1
- package/dist/get-provider-CYYHfrlg.js +10 -0
- package/dist/get-provider-CYYHfrlg.js.map +1 -0
- package/dist/get-query-client-D19vvfJo.js +23 -0
- package/dist/get-query-client-D19vvfJo.js.map +1 -0
- package/dist/hooks-4pxIbLbM.js +4044 -0
- package/dist/hooks-4pxIbLbM.js.map +1 -0
- package/dist/{index-1bezgsFq.d.ts → index-136YrWDH.d.ts} +929 -255
- package/dist/{index-D5v5iluA.d.ts → index-BAhaEfqY.d.ts} +1 -1
- package/dist/index-BKBin-rq.d.ts +979 -0
- package/dist/index-BUWB_RXp.d.ts +3144 -0
- package/dist/{index-Cl7PQOGu.d.ts → index-BhVFc2rX.d.ts} +28 -25
- package/dist/{index-DXMfTZ1F.d.ts → index-C5aqo8xu.d.ts} +1 -1
- package/dist/{index-BIMIpDiI.d.ts → index-CKrYP7ot.d.ts} +74 -103
- package/dist/{index-BEYefG1G.d.ts → index-CUwMH7Ht.d.ts} +5 -5
- package/dist/{index-BjIwVzc4.d.ts → index-Cu70Lw-w.d.ts} +238 -238
- package/dist/index.css +427 -1
- package/dist/index.d.ts +8 -10
- package/dist/index.js +15 -11
- package/dist/{looks-rare-C1VqNcSM.js → looks-rare-ChBRBY-p.js} +1 -1
- package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-ChBRBY-p.js.map} +1 -1
- package/dist/{magic-eden-ea_AGCZr.js → magic-eden-D5U7N1xL.js} +1 -1
- package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-D5U7N1xL.js.map} +1 -1
- package/dist/{manifold-8y8J2sjT.js → manifold-CtLF52zU.js} +1 -1
- package/dist/{manifold-8y8J2sjT.js.map → manifold-CtLF52zU.js.map} +1 -1
- package/dist/{marketplace-nwnZv9Cb.js → marketplace-DmFiyBoS.js} +1 -1
- package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-DmFiyBoS.js.map} +1 -1
- package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-Cd6W-qOq.js} +21 -21
- package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-Cd6W-qOq.js.map} +1 -1
- package/dist/{marketplace.gen-Dqk8vRmD.js → marketplace.gen-HpnpL5xU.js} +12 -3
- package/dist/marketplace.gen-HpnpL5xU.js.map +1 -0
- package/dist/{marketplaceConfig-D2MYFqll.js → marketplaceConfig-GQTTmihy.js} +3 -3
- package/dist/marketplaceConfig-GQTTmihy.js.map +1 -0
- package/dist/{mintify-LA68TzWg.js → mintify-Bi3Bce68.js} +1 -1
- package/dist/{mintify-LA68TzWg.js.map → mintify-Bi3Bce68.js.map} +1 -1
- package/dist/network-CGD0oKtS.js +15 -0
- package/dist/network-CGD0oKtS.js.map +1 -0
- package/dist/{nftx-D3Tc8nzd.js → nftx-BDQZjtkX.js} +1 -1
- package/dist/{nftx-D3Tc8nzd.js.map → nftx-BDQZjtkX.js.map} +1 -1
- package/dist/{okx-hbqg6oIJ.js → okx-D4meadLe.js} +1 -1
- package/dist/{okx-hbqg6oIJ.js.map → okx-D4meadLe.js.map} +1 -1
- package/dist/{open-sea-BccuK8-t.js → open-sea-DN0hgfVw.js} +1 -1
- package/dist/{open-sea-BccuK8-t.js.map → open-sea-DN0hgfVw.js.map} +1 -1
- package/dist/options-BBBR8u_4.js +0 -0
- package/dist/{primary-sale-Cw95phYC.js → primary-sale-CmWxSfFQ.js} +279 -279
- package/dist/primary-sale-CmWxSfFQ.js.map +1 -0
- package/dist/provider-DPGUA10G.js +125 -0
- package/dist/provider-DPGUA10G.js.map +1 -0
- package/dist/queries-Ce_2othB.js +757 -0
- package/dist/queries-Ce_2othB.js.map +1 -0
- package/dist/{rarible-BgTwwj9g.js → rarible-B0xlD88A.js} +1 -1
- package/dist/{rarible-BgTwwj9g.js.map → rarible-B0xlD88A.js.map} +1 -1
- package/dist/react/_internal/api/index.d.ts +2 -4
- package/dist/react/_internal/api/index.js +9 -6
- package/dist/react/_internal/databeat/index.d.ts +2 -73
- package/dist/react/_internal/databeat/index.js +4 -21
- package/dist/react/_internal/index.d.ts +2 -7
- package/dist/react/_internal/index.js +13 -8
- package/dist/react/_internal/wagmi/index.d.ts +2 -4
- package/dist/react/_internal/wagmi/index.js +6 -4
- package/dist/react/hooks/index.d.ts +13 -17
- package/dist/react/hooks/index.js +25 -21
- package/dist/react/hooks/options/index.d.ts +3 -5
- package/dist/react/hooks/options/index.js +15 -10
- package/dist/react/index.d.ts +13 -40
- package/dist/react/index.js +30 -21
- package/dist/react/queries/index.d.ts +9 -8
- package/dist/react/queries/index.js +22 -17
- package/dist/react/ssr/index.d.ts +7 -9
- package/dist/react/ssr/index.js +13 -8
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +3 -9
- package/dist/react/ui/components/marketplace-collectible-card/index.js +29 -20
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -7
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +13 -8
- 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 -10
- package/dist/react/ui/index.d.ts +3 -9
- package/dist/react/ui/index.js +29 -20
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +5 -5
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +25 -20
- package/dist/{react-BG7o4PId.js → react-DP0M2Wfm.js} +4919 -7839
- package/dist/react-DP0M2Wfm.js.map +1 -0
- package/dist/{react-BbHBl6gg.css → react-DeDyTgo7.css} +1 -1
- package/dist/{react-BbHBl6gg.css.map → react-DeDyTgo7.css.map} +1 -1
- package/dist/{sequence-Do3kzb4J.js → sequence-BIrOVRXO.js} +1 -1
- package/dist/{sequence-Do3kzb4J.js.map → sequence-BIrOVRXO.js.map} +1 -1
- package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-BPMon-M5.js} +1 -1
- package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-BPMon-M5.js.map} +1 -1
- package/dist/{super-rare-eCm1SE6O.js → super-rare-kPN6Ua8i.js} +1 -1
- package/dist/{super-rare-eCm1SE6O.js.map → super-rare-kPN6Ua8i.js.map} +1 -1
- package/dist/{token-CO5llIla.js → token-CHSBPYVG.js} +1540 -761
- package/dist/token-CHSBPYVG.js.map +1 -0
- package/dist/{transaction-CcVViHEL.js → transaction-CnctdNzS.js} +3 -21
- package/dist/transaction-CnctdNzS.js.map +1 -0
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.js +3 -3
- package/dist/{types-DwWE6xOF.js → types-Yw2ywj6j.js} +1 -1
- package/dist/types-Yw2ywj6j.js.map +1 -0
- package/dist/utils/abi/index.d.ts +5 -5
- package/dist/utils/abi/index.js +5 -5
- 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 +2 -2
- package/dist/utils/abi/token/index.js +2 -2
- package/dist/utils/index.d.ts +7 -8
- package/dist/utils/index.js +13 -10
- package/dist/{utils-BFdxaToy.js → utils-9RXDgcBl.js} +86 -93
- package/dist/utils-9RXDgcBl.js.map +1 -0
- package/dist/{utils-Cat9_pef.js → utils-DjVJ9tov.js} +5 -6
- package/dist/utils-DjVJ9tov.js.map +1 -0
- package/dist/wagmi-Do_KW5ke.js +0 -0
- package/dist/{x2y2-DD17tT91.js → x2y2-BLz-_Q2O.js} +1 -1
- package/dist/{x2y2-DD17tT91.js.map → x2y2-BLz-_Q2O.js.map} +1 -1
- package/dist/{zora-BpSG9UzS.js → zora-UGhKs-aL.js} +1 -1
- package/dist/{zora-BpSG9UzS.js.map → zora-UGhKs-aL.js.map} +1 -1
- package/eslint/use-client.js +0 -6
- package/eslint.config.mjs +4 -0
- package/package.json +47 -35
- package/postcss.config.mjs +6 -0
- package/src/index.css +5 -4
- package/src/index.ts +2 -1
- package/src/react/__tests__/provider.test.tsx +4 -3
- package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
- package/src/react/_internal/api/__mocks__/indexer.msw.ts +24 -8
- package/src/react/_internal/api/__mocks__/laos.msw.ts +387 -0
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +6 -6
- package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
- package/src/react/_internal/api/__tests__/laos-api.test.ts +756 -0
- package/src/react/_internal/api/builder.gen.ts +6 -6
- package/src/react/_internal/api/get-query-client.ts +2 -2
- package/src/react/_internal/api/index.ts +2 -2
- package/src/react/_internal/api/laos-api.ts +3 -0
- package/src/react/_internal/api/marketplace.gen.ts +43 -3
- package/src/react/_internal/api/query-keys.ts +21 -6
- package/src/react/_internal/api/services.ts +30 -45
- package/src/react/_internal/databeat/index.ts +15 -14
- package/src/react/_internal/databeat/types.ts +22 -0
- package/src/react/_internal/databeat/utils.ts +26 -0
- package/src/react/_internal/index.ts +1 -1
- package/src/react/_internal/types.ts +10 -23
- package/src/react/_internal/utils.ts +4 -5
- package/src/react/_internal/wagmi/create-config.ts +43 -19
- package/src/react/_internal/wagmi/get-connectors.ts +9 -7
- package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
- package/src/react/_internal/wallet/wallet.ts +22 -22
- package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +20 -0
- package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +12 -2
- package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +1 -1
- package/src/react/hooks/__tests__/useBalanceOfCollectible.laos.test.tsx +367 -0
- package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
- package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
- package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
- package/src/react/hooks/__tests__/useCheckoutOptions.test.tsx +158 -0
- package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +42 -65
- package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
- package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
- package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +16 -25
- package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
- package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +12 -4
- package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
- package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +4 -4
- package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
- package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
- package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
- package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
- package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +7 -3
- package/src/react/hooks/__tests__/useFilters.test.tsx +3 -3
- package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
- package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +3 -3
- package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
- package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
- package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
- package/src/react/hooks/__tests__/useGetTokenRanges.test.tsx +111 -0
- package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -4
- package/src/react/hooks/__tests__/useInventory.test.tsx +1 -1
- package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
- package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
- package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
- package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
- package/src/react/hooks/__tests__/useListCollections.test.tsx +3 -3
- package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
- package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
- package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
- package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +137 -0
- package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
- package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
- package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
- package/src/react/hooks/__tests__/useTransferTokens.test.tsx +469 -0
- package/src/react/hooks/index.ts +29 -24
- package/src/react/hooks/options/index.ts +0 -1
- package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
- package/src/react/hooks/useBalanceOfCollectible.tsx +1 -1
- package/src/react/hooks/useCancelTransactionSteps.tsx +2 -2
- package/src/react/hooks/useCheckoutOptions.tsx +84 -54
- package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +98 -57
- package/src/react/hooks/useCollectible.tsx +64 -49
- package/src/react/hooks/useCollection.tsx +60 -11
- package/src/react/hooks/useCollectionBalanceDetails.tsx +93 -73
- package/src/react/hooks/useCollectionDetails.ts +69 -0
- package/src/react/hooks/useCollectionDetailsPolling.tsx +7 -3
- package/src/react/hooks/useComparePrices.tsx +91 -86
- package/src/react/hooks/useConvertPriceToUSD.tsx +83 -86
- package/src/react/hooks/useCountListingsForCollectible.tsx +64 -53
- package/src/react/hooks/useCountOfCollectables.tsx +60 -69
- package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
- package/src/react/hooks/useCountOffersForCollectible.tsx +64 -53
- package/src/react/hooks/useCurrency.tsx +56 -64
- package/src/react/hooks/useCurrencyBalance.tsx +132 -46
- package/src/react/hooks/useERC721SaleMintedTokens.tsx +8 -5
- package/src/react/hooks/useFilterState.tsx +1 -2
- package/src/react/hooks/useFilters.tsx +154 -111
- package/src/react/hooks/useFloorOrder.tsx +65 -40
- package/src/react/hooks/useGenerateCancelTransaction.tsx +5 -10
- package/src/react/hooks/useGenerateListingTransaction.tsx +1 -1
- package/src/react/hooks/useGenerateOfferTransaction.tsx +1 -1
- package/src/react/hooks/useGenerateSellTransaction.tsx +5 -10
- package/src/react/hooks/useGetCountOfPrimarySaleItems.tsx +48 -0
- package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
- package/src/react/hooks/useGetTokenRanges.tsx +92 -0
- package/src/react/hooks/useHighestOffer.tsx +68 -4
- package/src/react/hooks/useInventory.tsx +1 -1
- package/src/react/hooks/useList1155ShopCardData.tsx +57 -82
- package/src/react/hooks/useList721ShopCardData.tsx +98 -63
- package/src/react/hooks/useListBalances.tsx +1 -1
- package/src/react/hooks/useListCollectibleActivities.tsx +89 -50
- package/src/react/hooks/useListCollectibles.tsx +81 -16
- package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -66
- package/src/react/hooks/useListCollectionActivities.tsx +84 -50
- package/src/react/hooks/useListCollections.tsx +71 -17
- package/src/react/hooks/useListListingsForCollectible.tsx +90 -50
- package/src/react/hooks/useListMarketCardData.tsx +3 -2
- package/src/react/hooks/useListOffersForCollectible.tsx +9 -14
- package/src/react/hooks/useListPrimarySaleItems.tsx +66 -0
- package/src/react/hooks/useListShopCardData.tsx +70 -0
- package/src/react/hooks/useListTokenMetadata.ts +64 -12
- package/src/react/hooks/useListTokenMetadata.tsx +73 -0
- package/src/react/hooks/useLowestListing.tsx +68 -4
- package/src/react/hooks/useMarketCurrencies.tsx +62 -5
- package/src/react/hooks/useOpenConnectModal.tsx +9 -0
- package/src/react/hooks/useRoyalty.tsx +57 -13
- package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
- package/src/react/hooks/useTokenSaleDetailsBatch.tsx +3 -7
- package/src/react/hooks/useTokenSupplies.ts +81 -0
- package/src/react/hooks/useTransferTokens.tsx +2 -2
- package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
- package/src/react/index.ts +5 -3
- package/src/react/provider.tsx +73 -9
- package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +123 -0
- package/src/react/queries/__tests__/inventory.laos.test.ts +496 -0
- package/src/react/queries/balanceOfCollectible.ts +8 -5
- package/src/react/queries/checkoutOptions.ts +85 -0
- package/src/react/queries/checkoutOptionsSalesContract.ts +89 -0
- package/src/react/queries/collectible.ts +66 -0
- package/src/react/queries/collection.ts +55 -0
- package/src/react/queries/collectionBalanceDetails.ts +92 -0
- package/src/react/queries/collectionDetails.ts +64 -0
- package/src/react/queries/comparePrices.ts +108 -0
- package/src/react/queries/convertPriceToUSD.ts +92 -0
- package/src/react/queries/countListingsForCollectible.ts +73 -0
- package/src/react/queries/countOfCollectables.ts +83 -0
- package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
- package/src/react/queries/countOffersForCollectible.ts +73 -0
- package/src/react/queries/currency.ts +83 -0
- package/src/react/queries/filters.ts +138 -0
- package/src/react/queries/floorOrder.ts +63 -0
- package/src/react/queries/getTokenRanges.ts +62 -0
- package/src/react/queries/highestOffer.ts +46 -40
- package/src/react/queries/index.ts +10 -4
- package/src/react/queries/inventory.ts +10 -4
- package/src/react/queries/listBalances.ts +5 -4
- package/src/react/queries/listCollectibleActivities.ts +97 -0
- package/src/react/queries/listCollectibles.ts +67 -50
- package/src/react/queries/listCollectiblesPaginated.ts +87 -0
- package/src/react/queries/listCollectionActivities.ts +95 -0
- package/src/react/queries/listCollections.ts +53 -10
- package/src/react/queries/listListingsForCollectible.ts +82 -0
- package/src/react/queries/listTokenMetadata.ts +47 -23
- package/src/react/queries/lowestListing.ts +46 -31
- package/src/react/queries/marketCurrencies.ts +42 -29
- package/src/react/queries/marketplaceConfig.ts +4 -4
- package/src/react/queries/primarySaleItems.ts +85 -0
- package/src/react/queries/primarySaleItemsCount.ts +64 -0
- package/src/react/queries/tokenSupplies.ts +93 -0
- package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +12 -2
- package/src/react/ssr/create-ssr-client.ts +1 -1
- package/src/react/types/query.ts +34 -0
- package/src/react/ui/components/ModelViewer.tsx +1 -1
- package/src/react/ui/components/_internals/action-button/ActionButton.tsx +66 -66
- package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +22 -4
- package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +14 -8
- package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +5 -4
- package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +3 -0
- package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
- package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +20 -18
- package/src/react/ui/components/_internals/action-button/store.ts +72 -34
- package/src/react/ui/components/_internals/custom-select/CustomSelect.stories.tsx +582 -0
- package/src/react/ui/components/_internals/pill/Pill.stories.tsx +83 -0
- package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +1 -1
- package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +12 -5
- package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -4
- package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +3 -0
- package/src/react/ui/components/marketplace-collectible-card/index.ts +1 -1
- package/src/react/ui/components/marketplace-collectible-card/types.ts +11 -7
- package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
- package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -2
- package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +7 -6
- package/src/react/ui/components/marketplace-logos/marketplace-logos.stories.tsx +199 -0
- package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
- package/src/react/ui/components/media/Media.stories.tsx +642 -0
- package/src/react/ui/components/media/Media.tsx +29 -20
- package/src/react/ui/components/media/types.ts +6 -0
- package/src/react/ui/index.ts +8 -10
- package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +15 -0
- package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +100 -87
- package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +11 -5
- package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -2
- package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +17 -11
- package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +4 -1
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +1 -1
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +30 -27
- package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +3 -3
- package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +11 -2
- package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +2 -2
- package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +10 -3
- package/src/react/ui/modals/BuyModal/index.tsx +9 -1
- package/src/react/ui/modals/BuyModal/store.ts +26 -0
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +28 -11
- package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
- package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
- package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -2
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -6
- package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
- package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +31 -14
- package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +1 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +7 -7
- package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
- package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
- package/src/react/ui/modals/SellModal/Modal.tsx +14 -11
- package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
- package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +1 -1
- package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
- package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +6 -6
- package/src/react/ui/modals/SellModal/store.ts +3 -3
- package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +1 -1
- package/src/react/ui/modals/TransferModal/__tests__/__snapshots__/store.test.ts.snap +17 -0
- package/src/react/ui/modals/TransferModal/__tests__/store.test.ts +366 -0
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +402 -0
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +52 -50
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +39 -47
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +9 -8
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +33 -37
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +19 -10
- package/src/react/ui/modals/TransferModal/index.tsx +28 -31
- package/src/react/ui/modals/TransferModal/messages.ts +1 -1
- package/src/react/ui/modals/TransferModal/store.ts +122 -0
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -1
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +2 -4
- package/src/react/ui/modals/_internal/components/calendar/index.tsx +0 -1
- package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +10 -14
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +6 -3
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +23 -18
- package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
- package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +6 -6
- package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
- package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +41 -26
- package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +68 -59
- package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +23 -17
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +340 -41
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +95 -101
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +72 -14
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +29 -14
- package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +88 -89
- package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +37 -11
- package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
- package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +32 -20
- package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +92 -63
- package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +44 -45
- package/src/react/ui/modals/_internal/types.ts +2 -2
- package/src/react/ui/modals/modal-provider.tsx +2 -3
- package/src/types/api-types.ts +36 -36
- package/src/types/buyModalErrors.ts +1 -1
- package/src/types/index.ts +5 -5
- package/src/types/new-marketplace-types.ts +1 -1
- package/src/types/sdk-config.ts +8 -2
- package/src/types/types.ts +1 -0
- package/src/types/waas-types.ts +1 -1
- package/src/utils/abi/index.ts +1 -1
- package/src/utils/abi/primary-sale/index.ts +1 -1
- package/src/utils/abi/token/index.ts +2 -1
- package/src/utils/decode/erc20.ts +1 -1
- package/src/utils/index.ts +3 -3
- package/src/utils/network.ts +15 -0
- package/test/const.ts +3 -1
- package/test/mocks/wallet.ts +1 -1
- package/test/test-utils.tsx +5 -4
- package/vitest.shims.d.ts +2 -0
- package/vitest.storybook.config.js +33 -0
- package/.changeset/fluffy-jokes-lay.md +0 -5
- package/.changeset/wise-bugs-boil.md +0 -8
- package/dist/CartIcon-Bll1rbxv.js.map +0 -1
- package/dist/CollectibleCard-CLQTl0_6.d.ts +0 -8
- package/dist/_internal-69NEWNUE.js +0 -34
- package/dist/_internal-69NEWNUE.js.map +0 -1
- package/dist/api-1KFxYh7o.js.map +0 -1
- package/dist/builder-api-DoK3907S.d.ts +0 -12
- package/dist/builder.gen-CxP9NT1p.js.map +0 -1
- package/dist/index-4-kfOFdx.d.ts +0 -22
- package/dist/index-BHiSG-Yi.d.ts +0 -312
- package/dist/index-BQW0PUkQ.d.ts +0 -3973
- package/dist/index-BfH21xmk.d.ts +0 -117
- package/dist/index-CN8puQQJ.d.ts +0 -24
- package/dist/index-DafWjEb4.d.ts +0 -65
- package/dist/marketplace.gen-Dqk8vRmD.js.map +0 -1
- package/dist/marketplaceConfig-D2MYFqll.js.map +0 -1
- package/dist/options-DCi6_23w.js +0 -34
- package/dist/options-DCi6_23w.js.map +0 -1
- package/dist/primary-sale-Cw95phYC.js.map +0 -1
- package/dist/queries-DPvwtnO7.js +0 -486
- package/dist/queries-DPvwtnO7.js.map +0 -1
- package/dist/react-BG7o4PId.js.map +0 -1
- package/dist/token-CO5llIla.js.map +0 -1
- package/dist/transaction-CcVViHEL.js.map +0 -1
- package/dist/types-DwWE6xOF.js.map +0 -1
- package/dist/useCollection-C-mclKU0.d.ts +0 -66
- package/dist/utils-BFdxaToy.js.map +0 -1
- package/dist/utils-Cat9_pef.js.map +0 -1
- package/dist/wagmi-DRctYEk6.js.map +0 -1
- package/src/react/_internal/api/zod-schema.ts +0 -678
- package/src/react/hooks/options/collectionOptions.ts +0 -41
- package/src/react/hooks/useCollectionDetails.tsx +0 -50
- package/src/react/hooks/useGetTokenSuppliesMap.ts +0 -33
- package/src/react/hooks/useListPrimarySaleItems.ts +0 -42
- package/src/react/queries/getTokenSupplies.ts +0 -38
- package/src/react/ui/modals/TransferModal/_store.ts +0 -72
- package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
- package/tsconfig.tsbuildinfo +0 -1
- /package/dist/{abi-BKyRjVcZ.js → abi-BMvgNbKQ.js} +0 -0
- /package/dist/{index-C39K_8SG.d.ts → index-CD2bj_xW.d.ts} +0 -0
- /package/dist/{index-ij9f8GAA.d.ts → index-DvpBZgor.d.ts} +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
//
|
|
6
6
|
// webrpc-gen -schema=builder.main.ridl -target=typescript -client -out=../../webapp/src/rpc/proto/builder.gen.ts
|
|
7
7
|
|
|
8
|
-
import { OrderbookKind } from "./marketplace.gen";
|
|
8
|
+
import type { OrderbookKind } from "./marketplace.gen";
|
|
9
9
|
|
|
10
10
|
export const WebrpcHeader = "Webrpc";
|
|
11
11
|
export const WebrpcHeaderValue =
|
|
@@ -59,10 +59,10 @@ export interface MarketplaceSettings {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
export interface MarketplacePage {
|
|
62
|
-
enabled: boolean
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
enabled: boolean
|
|
63
|
+
bannerUrl: string
|
|
64
|
+
ogImage: string
|
|
65
|
+
private: boolean
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
export interface MarketplaceSocials {
|
|
@@ -135,7 +135,7 @@ export interface ShopCollection {
|
|
|
135
135
|
saleAddress: string;
|
|
136
136
|
name: string;
|
|
137
137
|
bannerUrl: string;
|
|
138
|
-
|
|
138
|
+
tokenIds: Array<string>;
|
|
139
139
|
createdAt?: string;
|
|
140
140
|
updatedAt?: string;
|
|
141
141
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
QueryClient,
|
|
3
2
|
defaultShouldDehydrateQuery,
|
|
3
|
+
QueryClient,
|
|
4
4
|
} from '@tanstack/react-query';
|
|
5
5
|
import { hashFn } from 'wagmi/query';
|
|
6
6
|
|
|
@@ -20,7 +20,7 @@ function makeQueryClient() {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
let browserQueryClient: QueryClient | undefined
|
|
23
|
+
let browserQueryClient: QueryClient | undefined;
|
|
24
24
|
|
|
25
25
|
export function getQueryClient() {
|
|
26
26
|
if (typeof globalThis.document === 'undefined') {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './get-query-client';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './laos-api';
|
|
3
3
|
export * from './marketplace.gen';
|
|
4
|
+
export * from './marketplace-api';
|
|
4
5
|
export * from './query-keys';
|
|
5
6
|
export * from './services';
|
|
6
|
-
export * from './laos-api';
|
|
@@ -22,6 +22,7 @@ export type TokenSuppliesParams = {
|
|
|
22
22
|
export type TokenBalancesParams = {
|
|
23
23
|
chainId: string;
|
|
24
24
|
accountAddress: string;
|
|
25
|
+
contractAddress: string;
|
|
25
26
|
includeMetadata?: boolean;
|
|
26
27
|
page?: PaginationOptions;
|
|
27
28
|
};
|
|
@@ -71,6 +72,7 @@ export class LaosAPI {
|
|
|
71
72
|
async getTokenBalances({
|
|
72
73
|
chainId,
|
|
73
74
|
accountAddress,
|
|
75
|
+
contractAddress,
|
|
74
76
|
includeMetadata = true,
|
|
75
77
|
page = {
|
|
76
78
|
sort: [
|
|
@@ -89,6 +91,7 @@ export class LaosAPI {
|
|
|
89
91
|
body: JSON.stringify({
|
|
90
92
|
chainId,
|
|
91
93
|
accountAddress,
|
|
94
|
+
contractAddress,
|
|
92
95
|
includeMetadata,
|
|
93
96
|
page,
|
|
94
97
|
}),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
-
// marketplace-api
|
|
2
|
+
// marketplace-api cf3a5fae407a732cd5a90e4fd68184ac5591b2c1
|
|
3
3
|
// --
|
|
4
4
|
// Code generated by webrpc-gen@v0.25.4 with typescript generator. DO NOT EDIT.
|
|
5
5
|
//
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
export const WebrpcHeader = "Webrpc";
|
|
9
9
|
|
|
10
10
|
export const WebrpcHeaderValue =
|
|
11
|
-
"webrpc@v0.25.4;gen-typescript@v0.17.0;marketplace-api@v0.0.0-
|
|
11
|
+
"webrpc@v0.25.4;gen-typescript@v0.17.0;marketplace-api@v0.0.0-cf3a5fae407a732cd5a90e4fd68184ac5591b2c1;marketplace-sdk@v0.10.0";
|
|
12
12
|
|
|
13
13
|
// WebRPC description and code-gen version
|
|
14
14
|
export const WebRPCVersion = "v1";
|
|
@@ -17,7 +17,7 @@ export const WebRPCVersion = "v1";
|
|
|
17
17
|
export const WebRPCSchemaVersion = "";
|
|
18
18
|
|
|
19
19
|
// Schema hash generated from your RIDL schema
|
|
20
|
-
export const WebRPCSchemaHash = "
|
|
20
|
+
export const WebRPCSchemaHash = "cf3a5fae407a732cd5a90e4fd68184ac5591b2c1";
|
|
21
21
|
|
|
22
22
|
type WebrpcGenVersions = {
|
|
23
23
|
webrpcGenVersion: string;
|
|
@@ -585,7 +585,9 @@ export interface PrimarySaleItem {
|
|
|
585
585
|
priceDecimals: number;
|
|
586
586
|
priceAmount: string;
|
|
587
587
|
priceAmountFormatted: string;
|
|
588
|
+
supply: string;
|
|
588
589
|
supplyCap: string;
|
|
590
|
+
unlimitedSupply: boolean;
|
|
589
591
|
createdAt: string;
|
|
590
592
|
updatedAt: string;
|
|
591
593
|
deletedAt?: string;
|
|
@@ -1024,6 +1026,11 @@ export interface Marketplace {
|
|
|
1024
1026
|
headers?: object,
|
|
1025
1027
|
signal?: AbortSignal
|
|
1026
1028
|
): Promise<SupportedMarketplacesReturn>;
|
|
1029
|
+
getPrimarySaleItem(
|
|
1030
|
+
args: GetPrimarySaleItemArgs,
|
|
1031
|
+
headers?: object,
|
|
1032
|
+
signal?: AbortSignal
|
|
1033
|
+
): Promise<GetPrimarySaleItemReturn>;
|
|
1027
1034
|
listPrimarySaleItems(
|
|
1028
1035
|
args: ListPrimarySaleItemsArgs,
|
|
1029
1036
|
headers?: object,
|
|
@@ -1437,6 +1444,15 @@ export interface SupportedMarketplacesArgs {
|
|
|
1437
1444
|
export interface SupportedMarketplacesReturn {
|
|
1438
1445
|
marketplaces: Array<MarketplaceKind>;
|
|
1439
1446
|
}
|
|
1447
|
+
export interface GetPrimarySaleItemArgs {
|
|
1448
|
+
chainId: string;
|
|
1449
|
+
primarySaleContractAddress: string;
|
|
1450
|
+
tokenId: string;
|
|
1451
|
+
}
|
|
1452
|
+
|
|
1453
|
+
export interface GetPrimarySaleItemReturn {
|
|
1454
|
+
item: CollectiblePrimarySaleItem;
|
|
1455
|
+
}
|
|
1440
1456
|
export interface ListPrimarySaleItemsArgs {
|
|
1441
1457
|
chainId: string;
|
|
1442
1458
|
primarySaleContractAddress: string;
|
|
@@ -2764,6 +2780,30 @@ export class Marketplace implements Marketplace {
|
|
|
2764
2780
|
);
|
|
2765
2781
|
};
|
|
2766
2782
|
|
|
2783
|
+
getPrimarySaleItem = (
|
|
2784
|
+
args: GetPrimarySaleItemArgs,
|
|
2785
|
+
headers?: object,
|
|
2786
|
+
signal?: AbortSignal
|
|
2787
|
+
): Promise<GetPrimarySaleItemReturn> => {
|
|
2788
|
+
return this.fetch(
|
|
2789
|
+
this.url("GetPrimarySaleItem"),
|
|
2790
|
+
createHTTPRequest(args, headers, signal)
|
|
2791
|
+
).then(
|
|
2792
|
+
(res) => {
|
|
2793
|
+
return buildResponse(res).then((_data) => {
|
|
2794
|
+
return {
|
|
2795
|
+
item: <CollectiblePrimarySaleItem>_data.item,
|
|
2796
|
+
};
|
|
2797
|
+
});
|
|
2798
|
+
},
|
|
2799
|
+
(error) => {
|
|
2800
|
+
throw WebrpcRequestFailedError.new({
|
|
2801
|
+
cause: `fetch(): ${error.message || ""}`,
|
|
2802
|
+
});
|
|
2803
|
+
}
|
|
2804
|
+
);
|
|
2805
|
+
};
|
|
2806
|
+
|
|
2767
2807
|
listPrimarySaleItems = (
|
|
2768
2808
|
args: ListPrimarySaleItemsArgs,
|
|
2769
2809
|
headers?: object,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// biome-ignore lint/complexity/noStaticOnlyClass:
|
|
1
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
|
|
2
2
|
class CollectableKeys {
|
|
3
3
|
static all = ['collectable'] as const;
|
|
4
4
|
static details = [...CollectableKeys.all, 'details'] as const;
|
|
@@ -35,7 +35,7 @@ class CollectableKeys {
|
|
|
35
35
|
] as const;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
// biome-ignore lint/complexity/noStaticOnlyClass:
|
|
38
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
|
|
39
39
|
class CollectionKeys {
|
|
40
40
|
static all = ['collections'] as const;
|
|
41
41
|
static list = [...CollectionKeys.all, 'list'] as const;
|
|
@@ -46,7 +46,7 @@ class CollectionKeys {
|
|
|
46
46
|
] as const;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
// biome-ignore lint/complexity/noStaticOnlyClass:
|
|
49
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
|
|
50
50
|
class BalanceQueries {
|
|
51
51
|
static all = ['balances'] as const;
|
|
52
52
|
static lists = [...BalanceQueries.all, 'tokenBalances'] as const;
|
|
@@ -56,14 +56,14 @@ class BalanceQueries {
|
|
|
56
56
|
] as const;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
// biome-ignore lint/complexity/noStaticOnlyClass:
|
|
59
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
|
|
60
60
|
class CheckoutKeys {
|
|
61
61
|
static all = ['checkouts'] as const;
|
|
62
62
|
static options = [...CheckoutKeys.all, 'options'] as const;
|
|
63
63
|
static cartItems = [...CheckoutKeys.all, 'cartItems'] as const;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
// biome-ignore lint/complexity/noStaticOnlyClass:
|
|
66
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
|
|
67
67
|
class CurrencyKeys {
|
|
68
68
|
static all = ['currencies'] as const;
|
|
69
69
|
static lists = [...CurrencyKeys.all, 'list'] as const;
|
|
@@ -71,14 +71,29 @@ class CurrencyKeys {
|
|
|
71
71
|
static conversion = [...CurrencyKeys.all, 'conversion'] as const;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
// biome-ignore lint/complexity/noStaticOnlyClass:
|
|
74
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
|
|
75
75
|
class ConfigKeys {
|
|
76
76
|
static all = ['configs'] as const;
|
|
77
77
|
static marketplace = [...ConfigKeys.all, 'marketplace'] as const;
|
|
78
78
|
}
|
|
79
|
+
|
|
80
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
|
|
81
|
+
class TokenKeys {
|
|
82
|
+
static all = ['tokens'] as const;
|
|
83
|
+
static metadata = [...TokenKeys.all, 'metadata'] as const;
|
|
84
|
+
static supplies = [...TokenKeys.all, 'supplies'] as const;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// biome-ignore lint/complexity/noStaticOnlyClass: static class provides better organization and type safety for query keys
|
|
88
|
+
class TokenSuppliesKeys {
|
|
89
|
+
static all = ['tokenSupplies'] as const;
|
|
90
|
+
static maps = [...TokenSuppliesKeys.all, 'map'] as const;
|
|
91
|
+
}
|
|
79
92
|
export const collectableKeys = CollectableKeys;
|
|
80
93
|
export const collectionKeys = CollectionKeys;
|
|
81
94
|
export const balanceQueries = BalanceQueries;
|
|
82
95
|
export const checkoutKeys = CheckoutKeys;
|
|
83
96
|
export const currencyKeys = CurrencyKeys;
|
|
84
97
|
export const configKeys = ConfigKeys;
|
|
98
|
+
export const tokenKeys = TokenKeys;
|
|
99
|
+
export const tokenSuppliesKeys = TokenSuppliesKeys;
|
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
import { SequenceAPIClient } from '@0xsequence/api';
|
|
2
2
|
import { SequenceIndexer } from '@0xsequence/indexer';
|
|
3
3
|
import { SequenceMetadata } from '@0xsequence/metadata';
|
|
4
|
-
import {
|
|
4
|
+
import { stringTemplate } from '@0xsequence/network';
|
|
5
5
|
import type { ApiConfig, Env, SdkConfig } from '../../../types/sdk-config';
|
|
6
|
-
import {
|
|
6
|
+
import { getNetwork } from '../../../utils/network';
|
|
7
7
|
import { BuilderAPI } from './builder-api';
|
|
8
8
|
import { SequenceMarketplace } from './marketplace-api';
|
|
9
9
|
|
|
10
10
|
const SERVICES = {
|
|
11
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
|
|
11
12
|
sequenceApi: 'https://${prefix}api.sequence.app',
|
|
13
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
|
|
12
14
|
metadata: 'https://${prefix}metadata.sequence.app',
|
|
15
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
|
|
13
16
|
indexer: 'https://${prefix}${network}-indexer.sequence.app',
|
|
17
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
|
|
14
18
|
marketplaceApi: 'https://${prefix}marketplace-api.sequence.app',
|
|
19
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: template placeholder for stringTemplate function
|
|
15
20
|
builderRpcApi: 'https://${prefix}api.sequence.build',
|
|
16
21
|
};
|
|
17
22
|
|
|
18
23
|
type ChainNameOrId = string | number;
|
|
19
24
|
|
|
20
|
-
const getNetwork = (nameOrId: ChainNameOrId) => {
|
|
21
|
-
for (const network of Object.values(networks)) {
|
|
22
|
-
if (
|
|
23
|
-
network.name === String(nameOrId).toLowerCase() ||
|
|
24
|
-
network.chainId === Number(nameOrId)
|
|
25
|
-
) {
|
|
26
|
-
return network;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
throw new MissingConfigError(`Network configuration for chain ${nameOrId}`);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
25
|
const metadataURL = (env: Env = 'production') => {
|
|
33
26
|
const prefix = getPrefix(env);
|
|
34
27
|
return stringTemplate(SERVICES.metadata, { prefix });
|
|
@@ -41,10 +34,6 @@ const indexerURL = (chain: ChainNameOrId, env: Env = 'production') => {
|
|
|
41
34
|
};
|
|
42
35
|
|
|
43
36
|
const marketplaceApiURL = (env: Env = 'production') => {
|
|
44
|
-
// TODO: remove this once we have a production endpoint
|
|
45
|
-
if (env === 'development') {
|
|
46
|
-
return 'https://dev-marketplace-api-v2.sequence-dev.app';
|
|
47
|
-
}
|
|
48
37
|
const prefix = getPrefix(env);
|
|
49
38
|
return stringTemplate(SERVICES.marketplaceApi, { prefix });
|
|
50
39
|
};
|
|
@@ -60,45 +49,41 @@ export const sequenceApiUrl = (env: Env = 'production') => {
|
|
|
60
49
|
};
|
|
61
50
|
|
|
62
51
|
export const getBuilderClient = (config: SdkConfig) => {
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return new BuilderAPI(
|
|
52
|
+
const overrides = config._internal?.overrides?.api?.builder;
|
|
53
|
+
const url =
|
|
54
|
+
overrides?.url || builderRpcApiURL(overrides?.env || 'production');
|
|
55
|
+
const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
|
|
56
|
+
return new BuilderAPI(url, projectAccessKey);
|
|
68
57
|
};
|
|
69
58
|
|
|
70
59
|
export const getMetadataClient = (config: SdkConfig) => {
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return new SequenceMetadata(metadataURL(env), projectAccessKey);
|
|
60
|
+
const overrides = config._internal?.overrides?.api?.metadata;
|
|
61
|
+
const url = overrides?.url || metadataURL(overrides?.env || 'production');
|
|
62
|
+
const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
|
|
63
|
+
return new SequenceMetadata(url, projectAccessKey);
|
|
76
64
|
};
|
|
77
65
|
|
|
78
66
|
export const getIndexerClient = (chain: ChainNameOrId, config: SdkConfig) => {
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return new SequenceIndexer(
|
|
67
|
+
const overrides = config._internal?.overrides?.api?.indexer;
|
|
68
|
+
const url =
|
|
69
|
+
overrides?.url || indexerURL(chain, overrides?.env || 'production');
|
|
70
|
+
const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
|
|
71
|
+
return new SequenceIndexer(url, projectAccessKey);
|
|
84
72
|
};
|
|
85
73
|
|
|
86
74
|
export const getMarketplaceClient = (config: SdkConfig) => {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return new SequenceMarketplace(marketplaceApiURL(env), projectAccessKey);
|
|
75
|
+
const overrides = config._internal?.overrides?.api?.marketplace;
|
|
76
|
+
const url =
|
|
77
|
+
overrides?.url || marketplaceApiURL(overrides?.env || 'production');
|
|
78
|
+
const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
|
|
79
|
+
return new SequenceMarketplace(url, projectAccessKey);
|
|
93
80
|
};
|
|
94
81
|
|
|
95
82
|
export const getSequenceApiClient = (config: SdkConfig) => {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
const projectAccessKey =
|
|
99
|
-
|
|
100
|
-
config.projectAccessKey;
|
|
101
|
-
return new SequenceAPIClient(sequenceApiUrl(env), projectAccessKey);
|
|
83
|
+
const overrides = config._internal?.overrides?.api?.sequenceApi;
|
|
84
|
+
const url = overrides?.url || sequenceApiUrl(overrides?.env || 'production');
|
|
85
|
+
const projectAccessKey = overrides?.accessKey || config.projectAccessKey;
|
|
86
|
+
return new SequenceAPIClient(url, projectAccessKey);
|
|
102
87
|
};
|
|
103
88
|
|
|
104
89
|
const getPrefix = (env: ApiConfig['env']) => {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Event as DatabeatEvent } from '@databeat/tracker';
|
|
2
2
|
import { Databeat } from '@databeat/tracker';
|
|
3
|
+
import { useContext } from 'react';
|
|
3
4
|
|
|
4
|
-
import {
|
|
5
|
+
import { MarketplaceSdkContext } from '../../provider';
|
|
5
6
|
import type {
|
|
6
7
|
EventType,
|
|
8
|
+
TrackBuyModalOpened,
|
|
7
9
|
TrackCreateListing,
|
|
8
10
|
TrackCreateOffer,
|
|
9
11
|
TrackSellItems,
|
|
@@ -22,6 +24,14 @@ export class DatabeatAnalytics extends Databeat<Extract<EventTypes, string>> {
|
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
26
|
|
|
27
|
+
trackBuyModalOpened(args: TrackBuyModalOpened) {
|
|
28
|
+
this.track({
|
|
29
|
+
event: 'BUY_MODAL_OPENED',
|
|
30
|
+
props: args.props,
|
|
31
|
+
nums: args.nums,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
25
35
|
trackCreateListing(args: TrackCreateListing) {
|
|
26
36
|
this.track({
|
|
27
37
|
event: 'CREATE_LISTING',
|
|
@@ -47,16 +57,7 @@ export class DatabeatAnalytics extends Databeat<Extract<EventTypes, string>> {
|
|
|
47
57
|
}
|
|
48
58
|
|
|
49
59
|
export const useAnalytics = () => {
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const auth: Auth = {};
|
|
54
|
-
auth.headers = { 'X-Access-Key': config.projectAccessKey };
|
|
55
|
-
|
|
56
|
-
return new DatabeatAnalytics(server, auth, {
|
|
57
|
-
defaultEnabled: true,
|
|
58
|
-
initProps: () => {
|
|
59
|
-
return { origin: window.location.origin };
|
|
60
|
-
},
|
|
61
|
-
});
|
|
60
|
+
const context = useContext(MarketplaceSdkContext);
|
|
61
|
+
|
|
62
|
+
return context.analytics;
|
|
62
63
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BuyModalProps } from '../../ui/modals/BuyModal/store';
|
|
1
2
|
import type { MarketplaceKind, OrderbookKind } from '../api';
|
|
2
3
|
|
|
3
4
|
export enum EventType {
|
|
@@ -8,6 +9,7 @@ export enum EventType {
|
|
|
8
9
|
CANCEL_LISTING = 4,
|
|
9
10
|
CANCEL_OFFER = 5,
|
|
10
11
|
TRANSACTION_FAILED = 6,
|
|
12
|
+
BUY_MODAL_OPENED = 7,
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
interface PropsEvent {
|
|
@@ -41,6 +43,26 @@ export interface TrackBuyItems {
|
|
|
41
43
|
nums: TradeItemsValues;
|
|
42
44
|
}
|
|
43
45
|
|
|
46
|
+
type BuyModalOpenedProps = Omit<
|
|
47
|
+
BuyModalProps,
|
|
48
|
+
| 'marketplaceType'
|
|
49
|
+
| 'customCreditCardProviderCallback'
|
|
50
|
+
| 'chainId'
|
|
51
|
+
| 'skipNativeBalanceCheck'
|
|
52
|
+
| 'nativeTokenAddress'
|
|
53
|
+
> & {
|
|
54
|
+
buyAnalyticsId: string;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
type BuyModalOpenedNums = {
|
|
58
|
+
chainId: number;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export interface TrackBuyModalOpened {
|
|
62
|
+
props: BuyModalOpenedProps;
|
|
63
|
+
nums: BuyModalOpenedNums;
|
|
64
|
+
}
|
|
65
|
+
|
|
44
66
|
export interface TrackSellItems {
|
|
45
67
|
props: TradeItemsInfo & Transaction;
|
|
46
68
|
nums: TradeItemsValues;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Flattens an object and turns it into a string and number object for use with analytics
|
|
2
|
+
// Ignores arrays and converts booleans to strings
|
|
3
|
+
export function flattenAnalyticsArgs(args: object) {
|
|
4
|
+
const analyticsProps: Record<string, string> = {};
|
|
5
|
+
const analyticsNums: Record<string, number> = {};
|
|
6
|
+
|
|
7
|
+
function recurse(obj: object, prefix = '') {
|
|
8
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
9
|
+
const path = prefix ? `${prefix}.${key}` : key;
|
|
10
|
+
if (typeof value === 'string' || typeof value === 'boolean') {
|
|
11
|
+
analyticsProps[path] = value.toString();
|
|
12
|
+
} else if (typeof value === 'number') {
|
|
13
|
+
analyticsNums[path] = value;
|
|
14
|
+
} else if (isPojo(value)) {
|
|
15
|
+
recurse(value, path);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
recurse(args);
|
|
21
|
+
return { analyticsProps, analyticsNums };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function isPojo(val: unknown): val is Record<string, unknown> {
|
|
25
|
+
return typeof val === 'object' && val !== null && !Array.isArray(val);
|
|
26
|
+
}
|
|
@@ -1,30 +1,11 @@
|
|
|
1
|
-
import type { Address } from 'viem';
|
|
2
|
-
import { z } from 'zod';
|
|
3
1
|
import type { ContractType, CreateReq } from '../../types';
|
|
4
2
|
import type { MarketplaceKind } from './api';
|
|
5
3
|
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
})
|
|
10
|
-
.optional();
|
|
11
|
-
|
|
12
|
-
export type QueryArg = z.infer<typeof QueryArgSchema>;
|
|
13
|
-
|
|
14
|
-
export const CollectableIdSchema = z.string().or(z.number());
|
|
15
|
-
|
|
16
|
-
export const AddressSchema = z.string().transform((val, ctx) => {
|
|
17
|
-
const regex = /^0x[a-fA-F0-9]{40}$/;
|
|
18
|
-
|
|
19
|
-
if (!regex.test(val)) {
|
|
20
|
-
ctx.addIssue({
|
|
21
|
-
code: z.ZodIssueCode.custom,
|
|
22
|
-
message: `Invalid Address ${val}`,
|
|
23
|
-
});
|
|
24
|
-
}
|
|
4
|
+
export interface QueryArg {
|
|
5
|
+
enabled?: boolean;
|
|
6
|
+
}
|
|
25
7
|
|
|
26
|
-
|
|
27
|
-
});
|
|
8
|
+
export type CollectableId = string | number;
|
|
28
9
|
|
|
29
10
|
export type CollectionType = ContractType.ERC1155 | ContractType.ERC721;
|
|
30
11
|
|
|
@@ -75,3 +56,9 @@ export interface CancelInput {
|
|
|
75
56
|
orderId: string;
|
|
76
57
|
marketplace: MarketplaceKind;
|
|
77
58
|
}
|
|
59
|
+
|
|
60
|
+
export type ValuesOptional<T> = {
|
|
61
|
+
[K in keyof T]: T[K] | undefined;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { TypedData, TypedDataDomain } from 'viem';
|
|
2
|
-
import type { Hex } from 'viem';
|
|
1
|
+
import type { Address, Hex, TypedData, TypedDataDomain } from 'viem';
|
|
3
2
|
import { type PostRequest, type Signature, type Step, StepType } from './api';
|
|
4
3
|
|
|
5
4
|
export interface SignatureStep {
|
|
@@ -7,7 +6,7 @@ export interface SignatureStep {
|
|
|
7
6
|
domain?: TypedDataDomain;
|
|
8
7
|
types?: TypedData;
|
|
9
8
|
primaryType?: string;
|
|
10
|
-
to:
|
|
9
|
+
to: Address; // TODO: This should not be here, its wrongly typed in webrpc
|
|
11
10
|
data: string;
|
|
12
11
|
value: string;
|
|
13
12
|
price: string;
|
|
@@ -23,7 +22,7 @@ export interface TransactionStep {
|
|
|
23
22
|
| StepType.createOffer
|
|
24
23
|
| StepType.createListing;
|
|
25
24
|
data: Hex;
|
|
26
|
-
to:
|
|
25
|
+
to: Address;
|
|
27
26
|
value: Hex;
|
|
28
27
|
price: Hex;
|
|
29
28
|
maxFeePerGas?: Hex;
|
|
@@ -33,7 +32,7 @@ export interface TransactionStep {
|
|
|
33
32
|
export interface ApprovalStep {
|
|
34
33
|
id: StepType.tokenApproval;
|
|
35
34
|
data: string;
|
|
36
|
-
to:
|
|
35
|
+
to: Address;
|
|
37
36
|
value: string;
|
|
38
37
|
price: string;
|
|
39
38
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getDefaultChains } from '@0xsequence/connect';
|
|
2
2
|
import { allNetworks, findNetworkConfig } from '@0xsequence/network';
|
|
3
3
|
import type { Chain, Transport } from 'viem';
|
|
4
|
-
import {
|
|
4
|
+
import { cookieStorage, createConfig, createStorage, http } from 'wagmi';
|
|
5
5
|
import type { Env, SdkConfig } from '../../../types';
|
|
6
6
|
import type { MarketplaceConfig } from '../../../types/new-marketplace-types';
|
|
7
7
|
import { DEFAULT_NETWORK } from '../consts';
|
|
@@ -12,18 +12,10 @@ export const createWagmiConfig = (
|
|
|
12
12
|
sdkConfig: SdkConfig,
|
|
13
13
|
ssr?: boolean,
|
|
14
14
|
) => {
|
|
15
|
-
const chains =
|
|
16
|
-
|
|
17
|
-
sdkConfig
|
|
18
|
-
|
|
19
|
-
sdkConfig._internal?.overrides?.api?.nodeGateway?.accessKey ??
|
|
20
|
-
sdkConfig.projectAccessKey;
|
|
21
|
-
|
|
22
|
-
const transports = getTransportConfigs(
|
|
23
|
-
chains,
|
|
24
|
-
projectAccessKey,
|
|
25
|
-
nodeGatewayEnv,
|
|
26
|
-
);
|
|
15
|
+
const { chains, transports } = getWagmiChainsAndTransports({
|
|
16
|
+
marketplaceConfig,
|
|
17
|
+
sdkConfig,
|
|
18
|
+
});
|
|
27
19
|
|
|
28
20
|
const walletType = marketplaceConfig.settings.walletOptions.walletType;
|
|
29
21
|
|
|
@@ -50,6 +42,30 @@ export const createWagmiConfig = (
|
|
|
50
42
|
});
|
|
51
43
|
};
|
|
52
44
|
|
|
45
|
+
export function getWagmiChainsAndTransports({
|
|
46
|
+
marketplaceConfig,
|
|
47
|
+
sdkConfig,
|
|
48
|
+
}: {
|
|
49
|
+
marketplaceConfig: MarketplaceConfig;
|
|
50
|
+
sdkConfig: SdkConfig;
|
|
51
|
+
}) {
|
|
52
|
+
const chains = getChainConfigs(marketplaceConfig);
|
|
53
|
+
const nodeGatewayOverrides = sdkConfig._internal?.overrides?.api?.nodeGateway;
|
|
54
|
+
const nodeGatewayEnv = nodeGatewayOverrides?.env ?? 'production';
|
|
55
|
+
const nodeGatewayUrl = nodeGatewayOverrides?.url;
|
|
56
|
+
const projectAccessKey =
|
|
57
|
+
nodeGatewayOverrides?.accessKey ?? sdkConfig.projectAccessKey;
|
|
58
|
+
|
|
59
|
+
const transports = getTransportConfigs(
|
|
60
|
+
chains,
|
|
61
|
+
projectAccessKey,
|
|
62
|
+
nodeGatewayEnv,
|
|
63
|
+
nodeGatewayUrl,
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
return { chains, transports };
|
|
67
|
+
}
|
|
68
|
+
|
|
53
69
|
function getAllCollections(marketConfig: MarketplaceConfig) {
|
|
54
70
|
return [...marketConfig.market.collections, ...marketConfig.shop.collections];
|
|
55
71
|
}
|
|
@@ -71,18 +87,26 @@ function getChainConfigs(marketConfig: MarketplaceConfig): [Chain, ...Chain[]] {
|
|
|
71
87
|
function getTransportConfigs(
|
|
72
88
|
chains: [Chain, ...Chain[]],
|
|
73
89
|
projectAccessKey: string,
|
|
74
|
-
nodeGatewayEnv: Env,
|
|
90
|
+
nodeGatewayEnv: Env | undefined,
|
|
91
|
+
nodeGatewayUrl?: string,
|
|
75
92
|
): Record<number, Transport> {
|
|
76
93
|
return chains.reduce(
|
|
77
94
|
(acc, chain) => {
|
|
78
95
|
const network = findNetworkConfig(allNetworks, chain.id);
|
|
79
96
|
if (network) {
|
|
80
|
-
let rpcUrl
|
|
81
|
-
if (
|
|
82
|
-
|
|
97
|
+
let rpcUrl: string;
|
|
98
|
+
if (nodeGatewayUrl) {
|
|
99
|
+
// Use manual URL if provided
|
|
100
|
+
rpcUrl = nodeGatewayUrl;
|
|
101
|
+
} else {
|
|
102
|
+
// Use default URL with environment prefix
|
|
103
|
+
rpcUrl = network.rpcUrl;
|
|
104
|
+
if (nodeGatewayEnv === 'development') {
|
|
105
|
+
rpcUrl = rpcUrl.replace('nodes.', 'dev-nodes.');
|
|
106
|
+
}
|
|
107
|
+
if (!network.rpcUrl.endsWith(projectAccessKey))
|
|
108
|
+
rpcUrl = `${rpcUrl}/${projectAccessKey}`;
|
|
83
109
|
}
|
|
84
|
-
if (!network.rpcUrl.endsWith(projectAccessKey))
|
|
85
|
-
rpcUrl = `${rpcUrl}/${projectAccessKey}`;
|
|
86
110
|
acc[chain.id] = http(rpcUrl);
|
|
87
111
|
}
|
|
88
112
|
return acc;
|