@0xsequence/marketplace-sdk 0.8.1 → 0.8.2
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/.changeset/flat-parks-clean.md +8 -0
- package/CHANGELOG.md +9 -0
- package/dist/{builder-types-QlHwc9bI.d.ts → builder-types-Wrqq6YoW.d.ts} +1 -1
- package/dist/{chunk-3JU7SQVE.js → chunk-4DFOSZTE.js} +60 -23
- package/dist/chunk-4DFOSZTE.js.map +1 -0
- package/dist/{chunk-Q5RKAMYF.js → chunk-BGY4WXER.js} +43 -1
- package/dist/chunk-BGY4WXER.js.map +1 -0
- package/dist/{chunk-X3QNSQER.js → chunk-F6CUGMI4.js} +44 -67
- package/dist/chunk-F6CUGMI4.js.map +1 -0
- package/dist/{chunk-A5ACY5YV.js → chunk-LDHGFXPJ.js} +2 -2
- package/dist/{chunk-BN36GABQ.js → chunk-S2UFNIYX.js} +82 -61
- package/dist/chunk-S2UFNIYX.js.map +1 -0
- package/dist/{chunk-BCO4CYE4.js → chunk-SJU6QZHM.js} +2 -2
- package/dist/{chunk-2VHHJNXY.js → chunk-WXKV5N4T.js} +3 -3
- package/dist/{chunk-ABSYNRT5.js → chunk-XOHAZXBZ.js} +3 -11
- package/dist/chunk-XOHAZXBZ.js.map +1 -0
- package/dist/{create-config-ClkUr27C.d.ts → create-config-B58hoCDv.d.ts} +1 -1
- package/dist/{index-CnaFSNE9.d.ts → index-PhhCRKUH.d.ts} +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +10 -6
- package/dist/{listCollectibles-B0tbqnRd.d.ts → lowestListing-CuLxIWxy.d.ts} +49 -42
- package/dist/{marketplace.gen-BTHxxhG2.d.ts → marketplace.gen-De2-sxiG.d.ts} +1 -1
- package/dist/react/_internal/api/index.d.ts +2 -2
- package/dist/react/_internal/databeat/index.d.ts +1 -1
- package/dist/react/_internal/databeat/index.js +7 -7
- package/dist/react/_internal/index.d.ts +5 -5
- package/dist/react/_internal/wagmi/index.d.ts +3 -3
- package/dist/react/hooks/index.d.ts +8 -143
- package/dist/react/hooks/index.js +8 -10
- package/dist/react/hooks/options/index.d.ts +3 -3
- package/dist/react/index.d.ts +8 -8
- package/dist/react/index.js +12 -14
- package/dist/react/queries/index.d.ts +2 -2
- package/dist/react/queries/index.js +10 -27
- package/dist/react/queries/index.js.map +1 -1
- package/dist/react/ssr/index.d.ts +2 -2
- package/dist/react/ui/components/collectible-card/index.d.ts +1 -1
- package/dist/react/ui/components/collectible-card/index.js +10 -10
- package/dist/react/ui/icons/index.js +4 -4
- package/dist/react/ui/index.d.ts +1 -1
- package/dist/react/ui/index.js +10 -10
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +7 -7
- package/dist/{services-ybGoDJd9.d.ts → services-BdzIAR9w.d.ts} +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/{types-o_pKUpQG.d.ts → types-CmHOStH3.d.ts} +2 -2
- package/dist/utils/abi/index.js +5 -5
- package/dist/utils/index.d.ts +54 -2
- package/dist/utils/index.js +10 -6
- package/package.json +4 -2
- package/src/react/hooks/__tests__/useHighestOffer.test.tsx +7 -8
- package/src/react/hooks/__tests__/useLowestListing.test.tsx +4 -5
- package/src/react/hooks/useHighestOffer.tsx +1 -39
- package/src/react/hooks/useLowestListing.tsx +4 -51
- package/src/react/queries/highestOffer.ts +25 -30
- package/src/react/queries/index.ts +1 -0
- package/src/react/queries/lowestListing.ts +52 -0
- package/src/react/ui/modals/BuyModal/ERC1155QuantityModal.tsx +6 -9
- package/src/react/ui/modals/BuyModal/Modal.tsx +26 -8
- package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +6 -2
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +4 -4
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +1 -5
- package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +18 -14
- package/src/types/api-types.ts +1 -1
- package/src/types/types.ts +5 -0
- package/src/utils/price.ts +103 -0
- package/dist/chunk-3JU7SQVE.js.map +0 -1
- package/dist/chunk-ABSYNRT5.js.map +0 -1
- package/dist/chunk-BN36GABQ.js.map +0 -1
- package/dist/chunk-Q5RKAMYF.js.map +0 -1
- package/dist/chunk-X3QNSQER.js.map +0 -1
- /package/dist/{chunk-A5ACY5YV.js.map → chunk-LDHGFXPJ.js.map} +0 -0
- /package/dist/{chunk-BCO4CYE4.js.map → chunk-SJU6QZHM.js.map} +0 -0
- /package/dist/{chunk-2VHHJNXY.js.map → chunk-WXKV5N4T.js.map} +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
"@0xsequence/marketplace-sdk": patch
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
- Unified order type and new query for lowest listing [#278](https://github.com/0xsequence/marketplace-sdk/pull/278)
|
|
6
|
+
- Fixed earnings calculation and improved number formatting in transaction details [#281](https://github.com/0xsequence/marketplace-sdk/pull/281)
|
|
7
|
+
- Fixed incorrect native currency decimals in QuantetyModal [#280](https://github.com/0xsequence/marketplace-sdk/pull/280)
|
|
8
|
+
- Fixed React state updates during render in BuyModal [#277](https://github.com/0xsequence/marketplace-sdk/pull/277)
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @0xsequence/marketplace-sdk
|
|
2
2
|
|
|
3
|
+
## 0.8.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- - Unified order type and new query for lowest listing [#278](https://github.com/0xsequence/marketplace-sdk/pull/278)
|
|
8
|
+
- Fixed earnings calculation and improved number formatting in transaction details [#281](https://github.com/0xsequence/marketplace-sdk/pull/281)
|
|
9
|
+
- Fixed incorrect native currency decimals in QuantetyModal [#280](https://github.com/0xsequence/marketplace-sdk/pull/280)
|
|
10
|
+
- Fixed React state updates during render in BuyModal [#277](https://github.com/0xsequence/marketplace-sdk/pull/277)
|
|
11
|
+
|
|
3
12
|
## 0.8.1
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -45,31 +45,29 @@ function balanceOfCollectibleOptions(args, config) {
|
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
// src/react/queries/
|
|
48
|
+
// src/react/queries/getTokenSupplies.ts
|
|
49
49
|
import { queryOptions as queryOptions2 } from "@tanstack/react-query";
|
|
50
|
-
async function
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (data.order) {
|
|
58
|
-
order = {
|
|
59
|
-
...data.order,
|
|
60
|
-
priceAmount: BigInt(data.order.priceAmount),
|
|
61
|
-
priceAmountNet: BigInt(data.order.priceAmountNet)
|
|
62
|
-
};
|
|
50
|
+
async function getTokenSupplies(args, config) {
|
|
51
|
+
if (args.isLaos721) {
|
|
52
|
+
const laosApi = new LaosAPI();
|
|
53
|
+
return laosApi.getTokenSupplies({
|
|
54
|
+
chainId: args.chainId.toString(),
|
|
55
|
+
contractAddress: args.contractAddress
|
|
56
|
+
});
|
|
63
57
|
}
|
|
64
|
-
|
|
58
|
+
const indexerClient = getIndexerClient(args.chainId, config);
|
|
59
|
+
return await indexerClient.getTokenSupplies(args);
|
|
65
60
|
}
|
|
66
|
-
function
|
|
61
|
+
function getTokenSuppliesOptions(args, config) {
|
|
67
62
|
return queryOptions2({
|
|
68
|
-
queryKey: [
|
|
69
|
-
queryFn: () =>
|
|
63
|
+
queryKey: ["getTokenSupplies", args],
|
|
64
|
+
queryFn: () => getTokenSupplies(args, config)
|
|
70
65
|
});
|
|
71
66
|
}
|
|
72
67
|
|
|
68
|
+
// src/react/queries/listCollectibles.ts
|
|
69
|
+
import { infiniteQueryOptions as infiniteQueryOptions2 } from "@tanstack/react-query";
|
|
70
|
+
|
|
73
71
|
// src/react/queries/listBalances.ts
|
|
74
72
|
import { infiniteQueryOptions } from "@tanstack/react-query";
|
|
75
73
|
async function fetchBalances(args, config, page) {
|
|
@@ -119,7 +117,6 @@ function listBalancesOptions(args, config) {
|
|
|
119
117
|
}
|
|
120
118
|
|
|
121
119
|
// src/react/queries/listCollectibles.ts
|
|
122
|
-
import { infiniteQueryOptions as infiniteQueryOptions2 } from "@tanstack/react-query";
|
|
123
120
|
async function fetchCollectibles(args, config, page) {
|
|
124
121
|
const marketplaceClient = getMarketplaceClient(args.chainId, config);
|
|
125
122
|
const parsedArgs = {
|
|
@@ -169,14 +166,54 @@ function listCollectiblesOptions(args, config) {
|
|
|
169
166
|
});
|
|
170
167
|
}
|
|
171
168
|
|
|
169
|
+
// src/react/queries/highestOffer.ts
|
|
170
|
+
import { queryOptions as queryOptions3 } from "@tanstack/react-query";
|
|
171
|
+
async function fetchHighestOffer(args, config) {
|
|
172
|
+
const marketplaceClient = getMarketplaceClient(args.chainId, config);
|
|
173
|
+
const data = await marketplaceClient.getCollectibleHighestOffer({
|
|
174
|
+
contractAddress: args.collectionAddress,
|
|
175
|
+
...args
|
|
176
|
+
});
|
|
177
|
+
return data.order ?? null;
|
|
178
|
+
}
|
|
179
|
+
function highestOfferOptions(args, config) {
|
|
180
|
+
return queryOptions3({
|
|
181
|
+
enabled: args.query?.enabled ?? true,
|
|
182
|
+
queryKey: [...collectableKeys.highestOffers, args],
|
|
183
|
+
queryFn: () => fetchHighestOffer(args, config)
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// src/react/queries/lowestListing.ts
|
|
188
|
+
import { queryOptions as queryOptions4 } from "@tanstack/react-query";
|
|
189
|
+
async function fetchLowestListing(args, config) {
|
|
190
|
+
const marketplaceClient = getMarketplaceClient(args.chainId, config);
|
|
191
|
+
const data = await marketplaceClient.getCollectibleLowestListing({
|
|
192
|
+
contractAddress: args.collectionAddress,
|
|
193
|
+
...args
|
|
194
|
+
});
|
|
195
|
+
return data.order || null;
|
|
196
|
+
}
|
|
197
|
+
function lowestListingOptions(args, config) {
|
|
198
|
+
return queryOptions4({
|
|
199
|
+
enabled: args.query?.enabled ?? true,
|
|
200
|
+
queryKey: [...collectableKeys.lowestListings, args],
|
|
201
|
+
queryFn: () => fetchLowestListing(args, config)
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
|
|
172
205
|
export {
|
|
173
206
|
fetchBalanceOfCollectible,
|
|
174
207
|
balanceOfCollectibleOptions,
|
|
175
|
-
|
|
176
|
-
|
|
208
|
+
getTokenSupplies,
|
|
209
|
+
getTokenSuppliesOptions,
|
|
177
210
|
fetchBalances,
|
|
178
211
|
listBalancesOptions,
|
|
179
212
|
fetchCollectibles,
|
|
180
|
-
listCollectiblesOptions
|
|
213
|
+
listCollectiblesOptions,
|
|
214
|
+
fetchHighestOffer,
|
|
215
|
+
highestOfferOptions,
|
|
216
|
+
fetchLowestListing,
|
|
217
|
+
lowestListingOptions
|
|
181
218
|
};
|
|
182
|
-
//# sourceMappingURL=chunk-
|
|
219
|
+
//# sourceMappingURL=chunk-4DFOSZTE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/queries/balanceOfCollectible.ts","../src/react/queries/getTokenSupplies.ts","../src/react/queries/listCollectibles.ts","../src/react/queries/listBalances.ts","../src/react/queries/highestOffer.ts","../src/react/queries/lowestListing.ts"],"sourcesContent":["import { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { UseQueryParameters } from 'wagmi/query';\nimport type { SdkConfig } from '../../types';\nimport { LaosAPI, collectableKeys, getIndexerClient } from '../_internal';\n\nexport type UseBalanceOfCollectibleArgs = {\n\tcollectionAddress: Hex;\n\tcollectableId: string;\n\tuserAddress: Hex | undefined;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tquery?: UseQueryParameters;\n};\n\n/**\n * Fetches the balance of a specific collectible for a user\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @returns The balance data\n */\nexport async function fetchBalanceOfCollectible(\n\targs: Omit<UseBalanceOfCollectibleArgs, 'userAddress'> & { userAddress: Hex },\n\tconfig: SdkConfig,\n) {\n\tif (args.isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\t\tconst response = await laosApi.getTokenBalances({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\taccountAddress: args.userAddress,\n\t\t\tincludeMetadata: true,\n\t\t});\n\n\t\treturn response.balances[0] || null;\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient\n\t\t.getTokenBalances({\n\t\t\taccountAddress: args.userAddress,\n\t\t\tcontractAddress: args.collectionAddress,\n\t\t\ttokenID: args.collectableId,\n\t\t\tincludeMetadata: false,\n\t\t\tmetadataOptions: {\n\t\t\t\tverifiedOnly: true,\n\t\t\t\tincludeContracts: [args.collectionAddress],\n\t\t\t},\n\t\t})\n\t\t.then((res) => res.balances[0] || null);\n}\n\n/**\n * Creates a tanstack query options object for the balance query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function balanceOfCollectibleOptions(\n\targs: UseBalanceOfCollectibleArgs,\n\tconfig: SdkConfig,\n) {\n\tconst enabled = !!args.userAddress && (args.query?.enabled ?? true);\n\treturn queryOptions({\n\t\tqueryKey: [...collectableKeys.userBalances, args],\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchBalanceOfCollectible(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: this is guaranteed by the userAddress check above\n\t\t\t\t\t\t\tuserAddress: args.userAddress!,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t)\n\t\t\t: skipToken,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../types';\n//TODO: This is not complete, there is no hook for this,\n// add it if we need it in the future\nimport { LaosAPI, getIndexerClient } from '../_internal';\n\nexport type UseGetTokenSuppliesArgs = {\n\tchainId: number;\n\tcontractAddress: string;\n\ttokenId: string;\n\tisLaos721?: boolean;\n};\n\nexport async function getTokenSupplies(\n\targs: UseGetTokenSuppliesArgs,\n\tconfig: SdkConfig,\n) {\n\tif (args.isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\t\treturn laosApi.getTokenSupplies({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\tcontractAddress: args.contractAddress,\n\t\t});\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn await indexerClient.getTokenSupplies(args);\n}\n\nexport function getTokenSuppliesOptions(\n\targs: UseGetTokenSuppliesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tqueryKey: ['getTokenSupplies', args],\n\t\tqueryFn: () => getTokenSupplies(args, config),\n\t});\n}\n","import { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { Page, SdkConfig } from '../../types';\nimport type {\n\tCollectibleOrder,\n\tCollectiblesFilter,\n\tListCollectiblesArgs,\n\tListCollectiblesReturn,\n} from '../_internal';\nimport { OrderSide, collectableKeys, getMarketplaceClient } from '../_internal';\nimport { fetchBalances } from './listBalances';\nexport type UseListCollectiblesArgs = {\n\tcollectionAddress: Hex;\n\tchainId: number;\n\tside: OrderSide;\n\tfilter?: CollectiblesFilter;\n\tisLaos721?: boolean;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n};\n\n/**\n * Fetches a list of collectibles with pagination support\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @param page - Page parameters for pagination\n * @returns The collectibles data\n */\nexport async function fetchCollectibles(\n\targs: UseListCollectiblesArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<ListCollectiblesReturn> {\n\tconst marketplaceClient = getMarketplaceClient(args.chainId, config);\n\tconst parsedArgs = {\n\t\t...args,\n\t\tcontractAddress: args.collectionAddress,\n\t\tpage: page,\n\t\tside: args.side,\n\t} satisfies ListCollectiblesArgs;\n\n\tif (args.isLaos721 && args.side === OrderSide.listing) {\n\t\ttry {\n\t\t\tconst balances = await fetchBalances(args, config, page);\n\t\t\tconst collectibles: CollectibleOrder[] = balances.balances.map(\n\t\t\t\t(balance) => {\n\t\t\t\t\tif (!balance.tokenMetadata)\n\t\t\t\t\t\tthrow new Error('Token metadata not found');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\ttokenId: balance.tokenID ?? '',\n\t\t\t\t\t\t\tattributes: balance.tokenMetadata.attributes,\n\t\t\t\t\t\t\timage: balance.tokenMetadata.image,\n\t\t\t\t\t\t\tname: balance.tokenMetadata.name,\n\t\t\t\t\t\t\tdescription: balance.tokenMetadata.description,\n\t\t\t\t\t\t\tvideo: balance.tokenMetadata.video,\n\t\t\t\t\t\t\taudio: balance.tokenMetadata.audio,\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\treturn {\n\t\t\t\tcollectibles: collectibles,\n\t\t\t\t//@ts-expect-error\n\t\t\t\tpage: balances.page,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\t// If the request fails, ignore the error and return the collectibles from our indexer\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\treturn await marketplaceClient.listCollectibles(parsedArgs);\n}\n\n/**\n * Creates a tanstack infinite query options object for the collectibles query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function listCollectiblesOptions(\n\targs: UseListCollectiblesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn infiniteQueryOptions({\n\t\t...args.query,\n\t\tqueryKey: [...collectableKeys.lists, args, config],\n\t\tqueryFn: ({ pageParam }) => fetchCollectibles(args, config, pageParam),\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) =>\n\t\t\tlastPage.page?.more ? lastPage.page : undefined,\n\t});\n}\n","import type { GetTokenBalancesReturn, Page } from '@0xsequence/indexer';\nimport { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport { balanceQueries, getIndexerClient } from '../_internal';\n\nexport type UseListBalancesArgs = {\n\tchainId: number;\n\taccountAddress?: Hex;\n\tcontractAddress?: Hex;\n\ttokenId?: string;\n\tincludeMetadata?: boolean;\n\tmetadataOptions?: {\n\t\tverifiedOnly?: boolean;\n\t\tunverifiedOnly?: boolean;\n\t\tincludeContracts?: Hex[];\n\t};\n\tincludeCollectionTokens?: boolean;\n\tpage?: Page;\n\tisLaos721?: boolean;\n\t//TODO: More options\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n};\n\n/**\n * Fetches a list of token balances with pagination support\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @param page - Page parameters for pagination\n * @returns The token balances data\n */\nexport async function fetchBalances(\n\targs: UseListBalancesArgs,\n\tconfig: SdkConfig,\n\tpage: Page,\n): Promise<GetTokenBalancesReturn> {\n\tif (args.isLaos721) {\n\t\tconst response = await fetch(\n\t\t\t'https://extensions.api.laosnetwork.io/token/GetTokenBalances',\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tchainId: args.chainId.toString(),\n\t\t\t\t\taccountAddress: args.accountAddress,\n\t\t\t\t\tincludeMetadata: args.includeMetadata ?? true,\n\t\t\t\t\tpage: {\n\t\t\t\t\t\tsort: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolumn: 'CREATED_AT',\n\t\t\t\t\t\t\t\torder: 'DESC',\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);\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Laos API request failed with status ${response.status}`);\n\t\t}\n\n\t\t// TODO: This is pretty unsafe, we should validate the response\n\t\treturn response.json() as Promise<GetTokenBalancesReturn>;\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient.getTokenBalances({\n\t\t...args,\n\t\ttokenID: args.tokenId,\n\t\tpage: page,\n\t});\n}\n\n/**\n * Creates a tanstack infinite query options object for the balances query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function listBalancesOptions(\n\targs: UseListBalancesArgs,\n\tconfig: SdkConfig,\n) {\n\treturn infiniteQueryOptions({\n\t\t...args.query,\n\t\tqueryKey: [...balanceQueries.lists, args, config],\n\t\tqueryFn: ({ pageParam }) => fetchBalances(args, config, pageParam),\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) => lastPage.page.after,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype GetCollectibleHighestOfferArgs,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n} from '../_internal';\n\nexport interface UseHighestOfferArgs\n\textends Omit<GetCollectibleHighestOfferArgs, 'contractAddress'> {\n\tcollectionAddress: Address;\n\tchainId: number;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\nexport async function fetchHighestOffer(\n\targs: UseHighestOfferArgs,\n\tconfig: SdkConfig,\n) {\n\tconst marketplaceClient = getMarketplaceClient(args.chainId, config);\n\n\tconst data = await marketplaceClient.getCollectibleHighestOffer({\n\t\tcontractAddress: args.collectionAddress,\n\t\t...args,\n\t});\n\n\t// let order: Order | undefined;\n\t// if (data.order) {\n\t// \torder = {\n\t// \t\t...data.order,\n\t// \t\tpriceAmount: BigInt(data.order.priceAmount),\n\t// \t\tpriceAmountNet: BigInt(data.order.priceAmountNet),\n\t// \t};\n\t// }\n\n\treturn data.order ?? null;\n}\n\n/**\n * Creates a tanstack query options object for the highest offer query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function highestOfferOptions(\n\targs: UseHighestOfferArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tenabled: args.query?.enabled ?? true,\n\t\tqueryKey: [...collectableKeys.highestOffers, args],\n\t\tqueryFn: () => fetchHighestOffer(args, config),\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../types';\nimport {\n\ttype GetCollectibleLowestListingArgs,\n\ttype GetCollectibleLowestListingReturn,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n} from '../_internal';\n\nexport interface UseLowestListingArgs\n\textends Omit<GetCollectibleLowestListingArgs, 'contractAddress'> {\n\tcollectionAddress: Address;\n\tchainId: number;\n\tquery?: {\n\t\tenabled?: boolean;\n\t};\n}\n\nexport async function fetchLowestListing(\n\targs: UseLowestListingArgs,\n\tconfig: SdkConfig,\n): Promise<GetCollectibleLowestListingReturn['order'] | null> {\n\tconst marketplaceClient = getMarketplaceClient(args.chainId, config);\n\n\tconst data = await marketplaceClient.getCollectibleLowestListing({\n\t\tcontractAddress: args.collectionAddress,\n\t\t...args,\n\t});\n\n\t// let order: Order | undefined;\n\t// if (data.order) {\n\t// \torder = {\n\t// \t\t...data.order,\n\t// \t\tpriceAmount: BigInt(data.order.priceAmount),\n\t// \t\tpriceAmountNet: BigInt(data.order.priceAmountNet),\n\t// \t};\n\t// }\n\n\treturn data.order || null;\n}\n\nexport function lowestListingOptions(\n\targs: UseLowestListingArgs,\n\tconfig: SdkConfig,\n) {\n\treturn queryOptions({\n\t\tenabled: args.query?.enabled ?? true,\n\t\tqueryKey: [...collectableKeys.lowestListings, args],\n\t\tqueryFn: () => fetchLowestListing(args, config),\n\t});\n}\n"],"mappings":"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","names":["queryOptions","queryOptions","infiniteQueryOptions","infiniteQueryOptions","queryOptions","queryOptions","queryOptions","queryOptions"]}
|
|
@@ -35,6 +35,7 @@ var getPresentableChainName = (chainId) => {
|
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
// src/utils/price.ts
|
|
38
|
+
import * as dn from "dnum";
|
|
38
39
|
import { formatUnits } from "viem";
|
|
39
40
|
var calculatePriceDifferencePercentage = ({
|
|
40
41
|
inputPriceRaw,
|
|
@@ -54,6 +55,45 @@ var formatPrice = (amount, decimals) => {
|
|
|
54
55
|
maximumFractionDigits: decimals
|
|
55
56
|
});
|
|
56
57
|
};
|
|
58
|
+
var calculateEarningsAfterFees = (amount, decimals, fees) => {
|
|
59
|
+
try {
|
|
60
|
+
const decimalAmount = Number(formatUnits(amount, decimals));
|
|
61
|
+
let earnings = dn.from(decimalAmount.toString(), decimals);
|
|
62
|
+
for (const fee of fees) {
|
|
63
|
+
if (fee > 0) {
|
|
64
|
+
const feeMultiplier = dn.from((1 - fee / 100).toString(), decimals);
|
|
65
|
+
earnings = dn.multiply(earnings, feeMultiplier);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return dn.format(earnings, {
|
|
69
|
+
digits: decimals,
|
|
70
|
+
trailingZeros: false,
|
|
71
|
+
locale: "en-US"
|
|
72
|
+
});
|
|
73
|
+
} catch (error) {
|
|
74
|
+
console.error("Error calculating earnings after fees:", error);
|
|
75
|
+
return "0";
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
var formatPriceWithFee = (amount, decimals, feePercentage) => {
|
|
79
|
+
try {
|
|
80
|
+
const decimalAmount = Number(formatUnits(amount, decimals));
|
|
81
|
+
const price = dn.from(decimalAmount.toString(), decimals);
|
|
82
|
+
const feeMultiplier = dn.from(
|
|
83
|
+
(1 + feePercentage / 100).toString(),
|
|
84
|
+
decimals
|
|
85
|
+
);
|
|
86
|
+
const totalPrice = dn.multiply(price, feeMultiplier);
|
|
87
|
+
return dn.format(totalPrice, {
|
|
88
|
+
digits: decimals,
|
|
89
|
+
trailingZeros: false,
|
|
90
|
+
locale: "en-US"
|
|
91
|
+
});
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.error("Error formatting price with fee:", error);
|
|
94
|
+
return "0";
|
|
95
|
+
}
|
|
96
|
+
};
|
|
57
97
|
|
|
58
98
|
// src/utils/getMarketplaceDetails.ts
|
|
59
99
|
var MARKETPLACES = {
|
|
@@ -157,8 +197,10 @@ export {
|
|
|
157
197
|
getPresentableChainName,
|
|
158
198
|
calculatePriceDifferencePercentage,
|
|
159
199
|
formatPrice,
|
|
200
|
+
calculateEarningsAfterFees,
|
|
201
|
+
formatPriceWithFee,
|
|
160
202
|
getMarketplaceDetails,
|
|
161
203
|
networkToWagmiChain,
|
|
162
204
|
cn
|
|
163
205
|
};
|
|
164
|
-
//# sourceMappingURL=chunk-
|
|
206
|
+
//# sourceMappingURL=chunk-BGY4WXER.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/address.ts","../src/utils/network.ts","../src/utils/price.ts","../src/utils/getMarketplaceDetails.ts","../src/utils/networkconfigToWagmiChain.ts","../src/utils/cn.ts"],"sourcesContent":["export const truncateMiddle = (\n\taddress: string,\n\tminPrefix = 20,\n\tminSuffix = 3,\n): string => {\n\tif (minPrefix + minSuffix >= 40) {\n\t\treturn address;\n\t}\n\treturn `${address.substring(0, 2 + minPrefix)}…${address.substring(address.length - minSuffix)}`;\n};\n\nexport const truncateEnd = (text: string | undefined, truncateAt: number) => {\n\tif (!text) return '';\n\n\tlet finalText = text;\n\n\tif (text.length >= truncateAt) {\n\t\tfinalText = `${text.slice(0, truncateAt)}...`;\n\t}\n\n\treturn finalText;\n};\n\nexport const compareAddress = (a = '', b = '') => {\n\treturn a.toLowerCase() === b.toLowerCase();\n};\n","import { networks } from '@0xsequence/network';\n\nexport const getPresentableChainName = (chainId: number) => {\n\treturn networks[chainId as keyof typeof networks]?.title ?? 'Unknown Network';\n};\n","import * as dn from 'dnum';\nimport { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\n};\n\n/**\n * Calculates the percentage difference between two prices\n * @param args - Object containing input price, base price, and decimals\n * @returns The percentage difference as a string with 2 decimal places\n * @example\n * ```ts\n * const diff = calculatePriceDifferencePercentage({\n * inputPriceRaw: 1000000n,\n * basePriceRaw: 900000n,\n * decimals: 6\n * }); // Returns \"11.11\"\n * ```\n */\nexport const calculatePriceDifferencePercentage = ({\n\tinputPriceRaw,\n\tbasePriceRaw,\n\tdecimals,\n}: CalculatePriceDifferencePercentageArgs) => {\n\tconst inputPrice = Number(formatUnits(inputPriceRaw, decimals));\n\tconst basePrice = Number(formatUnits(basePriceRaw, decimals));\n\tconst difference = inputPrice - basePrice;\n\tconst percentageDifference = (difference / basePrice) * 100;\n\n\treturn percentageDifference.toFixed(2);\n};\n\n/**\n * Formats a raw price amount with the specified number of decimal places\n * @param amount - The raw price amount as a bigint\n * @param decimals - Number of decimal places to format to\n * @returns Formatted price string with proper decimal and thousands separators\n * @example\n * ```ts\n * const formatted = formatPrice(1000000n, 6); // Returns \"1.000000\"\n * ```\n */\nexport const formatPrice = (amount: bigint, decimals: number): string => {\n\tconst formattedUnits = Number(formatUnits(amount, decimals));\n\treturn formattedUnits.toLocaleString('en-US', {\n\t\tminimumFractionDigits: 0,\n\t\tmaximumFractionDigits: decimals,\n\t});\n};\n\n/**\n * Calculates the final earnings amount after applying multiple fee percentages\n * @param amount - The raw amount as a bigint (e.g., from a blockchain transaction)\n * @param decimals - The number of decimal places for the currency (e.g., 18 for ETH, 6 for USDC)\n * @param fees - Array of fee percentages to apply (e.g., [2.5, 1.0] for 2.5% and 1% fees)\n * @returns Formatted string representing the final earnings after all fees are applied\n * @throws Will return '0' if there's an error in calculation\n * @example\n * ```ts\n * const earnings = calculateEarningsAfterFees(\n * 1000000000000000000n, // 1 ETH\n * 18, // ETH decimals\n * [2.5, 1.0] // 2.5% and 1% fees\n * ); // Returns \"0.96525\" (1 ETH after 2.5% and 1% fees)\n * ```\n */\nexport const calculateEarningsAfterFees = (\n\tamount: bigint,\n\tdecimals: number,\n\tfees: number[],\n): string => {\n\ttry {\n\t\tconst decimalAmount = Number(formatUnits(amount, decimals));\n\t\tlet earnings = dn.from(decimalAmount.toString(), decimals);\n\n\t\tfor (const fee of fees) {\n\t\t\tif (fee > 0) {\n\t\t\t\tconst feeMultiplier = dn.from((1 - fee / 100).toString(), decimals);\n\t\t\t\tearnings = dn.multiply(earnings, feeMultiplier);\n\t\t\t}\n\t\t}\n\n\t\treturn dn.format(earnings, {\n\t\t\tdigits: decimals,\n\t\t\ttrailingZeros: false,\n\t\t\tlocale: 'en-US',\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('Error calculating earnings after fees:', error);\n\t\treturn '0';\n\t}\n};\n\n/**\n * Formats a price amount with fee applied\n * @param amount - The raw price amount as a bigint\n * @param decimals - Number of decimal places for the currency\n * @param feePercentage - Fee percentage to apply (e.g., 3.5 for 3.5%)\n * @returns Formatted price string with fee applied and proper decimal/thousands separators\n * @example\n * ```ts\n * const priceWithFee = formatPriceWithFee(1000000n, 6, 3.5); // Returns \"1.035\"\n * ```\n */\nexport const formatPriceWithFee = (\n\tamount: bigint,\n\tdecimals: number,\n\tfeePercentage: number,\n): string => {\n\ttry {\n\t\tconst decimalAmount = Number(formatUnits(amount, decimals));\n\t\tconst price = dn.from(decimalAmount.toString(), decimals);\n\t\tconst feeMultiplier = dn.from(\n\t\t\t(1 + feePercentage / 100).toString(),\n\t\t\tdecimals,\n\t\t);\n\t\tconst totalPrice = dn.multiply(price, feeMultiplier);\n\n\t\treturn dn.format(totalPrice, {\n\t\t\tdigits: decimals,\n\t\t\ttrailingZeros: false,\n\t\t\tlocale: 'en-US',\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('Error formatting price with fee:', error);\n\t\treturn '0';\n\t}\n};\n","import type { Image } from '@0xsequence/design-system';\nimport type { ComponentType } from 'react';\nimport {\n\tAlienSwapLogo,\n\tBlurLogo,\n\tLooksRareLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tOpenSeaLogo,\n\tSequenceLogo,\n\tX2y2Logo,\n} from '../react/ui/components/marketplace-logos';\nimport { MarketplaceKind } from '../types';\n\ninterface Marketplace {\n\tlogo: ComponentType<React.ComponentProps<typeof Image>>;\n\tdisplayName: string;\n}\n\nconst MARKETPLACES: Record<string, Marketplace> = {\n\tsequence: {\n\t\tlogo: SequenceLogo,\n\t\tdisplayName: 'Sequence',\n\t},\n\topensea: {\n\t\tlogo: OpenSeaLogo,\n\t\tdisplayName: 'OpenSea',\n\t},\n\tmagiceden: {\n\t\tlogo: MagicEdenLogo,\n\t\tdisplayName: 'Magic Eden',\n\t},\n\tmintify: {\n\t\tlogo: MintifyLogo,\n\t\tdisplayName: 'Mintify',\n\t},\n\tlooksrare: {\n\t\tlogo: LooksRareLogo,\n\t\tdisplayName: 'Looks Rare',\n\t},\n\tx2y2: {\n\t\tlogo: X2y2Logo,\n\t\tdisplayName: 'X2Y2',\n\t},\n\tblur: {\n\t\tlogo: BlurLogo,\n\t\tdisplayName: 'Blur',\n\t},\n\talienswap: {\n\t\tlogo: AlienSwapLogo,\n\t\tdisplayName: 'AlienSwap',\n\t},\n} as const;\n\nconst KIND_TO_MARKETPLACE: Partial<\n\tRecord<MarketplaceKind, keyof typeof MARKETPLACES>\n> = {\n\t[MarketplaceKind.sequence_marketplace_v1]: 'sequence',\n\t[MarketplaceKind.sequence_marketplace_v2]: 'sequence',\n\t[MarketplaceKind.opensea]: 'opensea',\n\t[MarketplaceKind.mintify]: 'mintify',\n\t[MarketplaceKind.looks_rare]: 'looksrare',\n\t[MarketplaceKind.x2y2]: 'x2y2',\n\t[MarketplaceKind.blur]: 'blur',\n};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add suport for more marketplaces and improve detection of marketplace\nexport function getMarketplaceDetails({\n\toriginName,\n\tkind,\n}: MarketplaceDetailsProp) {\n\tif (\n\t\tkind === MarketplaceKind.sequence_marketplace_v1 ||\n\t\tkind === MarketplaceKind.sequence_marketplace_v2\n\t) {\n\t\treturn MARKETPLACES.sequence;\n\t}\n\n\tlet name = originName.toLowerCase();\n\n\ttry {\n\t\t//Check if the name can be parsed as a url\n\t\tnew URL(name);\n\t\t// if it can we are naively trying to extract the root domain\n\t\tname = getRootDomain(name) || name;\n\t} catch {}\n\n\tname = name.replace(/ /g, '');\n\n\tconst details = MARKETPLACES[name];\n\n\tif (details) {\n\t\treturn details;\n\t}\n\n\tif (KIND_TO_MARKETPLACE[kind]) {\n\t\treturn MARKETPLACES[KIND_TO_MARKETPLACE[kind]];\n\t}\n}\n\nfunction getRootDomain(url: string) {\n\tconst domain = url.replace(/^(https?:\\/\\/)?(www\\.)?/, '');\n\tconst parts = domain.split('.');\n\treturn parts[parts.length - 2] || parts[0];\n}\n","import type { NetworkConfig } from '@0xsequence/network';\nimport type { Chain } from 'viem';\n\nexport const networkToWagmiChain = (network: NetworkConfig): Chain => ({\n\t...network,\n\tid: Number(network.chainId),\n\tname: network.name,\n\tnativeCurrency: { ...network.nativeToken },\n\trpcUrls: {\n\t\tdefault: {\n\t\t\thttp: [network.rpcUrl],\n\t\t},\n\t\tpublic: {\n\t\t\thttp: [network.rpcUrl],\n\t\t},\n\t},\n});\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n"],"mappings":";;;;;;;;;;;;AAAO,IAAM,iBAAiB,CAC7B,SACA,YAAY,IACZ,YAAY,MACA;AACZ,MAAI,YAAY,aAAa,IAAI;AAChC,WAAO;AAAA,EACR;AACA,SAAO,GAAG,QAAQ,UAAU,GAAG,IAAI,SAAS,CAAC,SAAI,QAAQ,UAAU,QAAQ,SAAS,SAAS,CAAC;AAC/F;AAEO,IAAM,cAAc,CAAC,MAA0B,eAAuB;AAC5E,MAAI,CAAC,KAAM,QAAO;AAElB,MAAI,YAAY;AAEhB,MAAI,KAAK,UAAU,YAAY;AAC9B,gBAAY,GAAG,KAAK,MAAM,GAAG,UAAU,CAAC;AAAA,EACzC;AAEA,SAAO;AACR;AAEO,IAAM,iBAAiB,CAAC,IAAI,IAAI,IAAI,OAAO;AACjD,SAAO,EAAE,YAAY,MAAM,EAAE,YAAY;AAC1C;;;ACzBA,SAAS,gBAAgB;AAElB,IAAM,0BAA0B,CAAC,YAAoB;AAC3D,SAAO,SAAS,OAAgC,GAAG,SAAS;AAC7D;;;ACJA,YAAY,QAAQ;AACpB,SAAS,mBAAmB;AAqBrB,IAAM,qCAAqC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AACD,MAA8C;AAC7C,QAAM,aAAa,OAAO,YAAY,eAAe,QAAQ,CAAC;AAC9D,QAAM,YAAY,OAAO,YAAY,cAAc,QAAQ,CAAC;AAC5D,QAAM,aAAa,aAAa;AAChC,QAAM,uBAAwB,aAAa,YAAa;AAExD,SAAO,qBAAqB,QAAQ,CAAC;AACtC;AAYO,IAAM,cAAc,CAAC,QAAgB,aAA6B;AACxE,QAAM,iBAAiB,OAAO,YAAY,QAAQ,QAAQ,CAAC;AAC3D,SAAO,eAAe,eAAe,SAAS;AAAA,IAC7C,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,EACxB,CAAC;AACF;AAkBO,IAAM,6BAA6B,CACzC,QACA,UACA,SACY;AACZ,MAAI;AACH,UAAM,gBAAgB,OAAO,YAAY,QAAQ,QAAQ,CAAC;AAC1D,QAAI,WAAc,QAAK,cAAc,SAAS,GAAG,QAAQ;AAEzD,eAAW,OAAO,MAAM;AACvB,UAAI,MAAM,GAAG;AACZ,cAAM,gBAAmB,SAAM,IAAI,MAAM,KAAK,SAAS,GAAG,QAAQ;AAClE,mBAAc,YAAS,UAAU,aAAa;AAAA,MAC/C;AAAA,IACD;AAEA,WAAU,UAAO,UAAU;AAAA,MAC1B,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,QAAQ;AAAA,IACT,CAAC;AAAA,EACF,SAAS,OAAO;AACf,YAAQ,MAAM,0CAA0C,KAAK;AAC7D,WAAO;AAAA,EACR;AACD;AAaO,IAAM,qBAAqB,CACjC,QACA,UACA,kBACY;AACZ,MAAI;AACH,UAAM,gBAAgB,OAAO,YAAY,QAAQ,QAAQ,CAAC;AAC1D,UAAM,QAAW,QAAK,cAAc,SAAS,GAAG,QAAQ;AACxD,UAAM,gBAAmB;AAAA,OACvB,IAAI,gBAAgB,KAAK,SAAS;AAAA,MACnC;AAAA,IACD;AACA,UAAM,aAAgB,YAAS,OAAO,aAAa;AAEnD,WAAU,UAAO,YAAY;AAAA,MAC5B,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,QAAQ;AAAA,IACT,CAAC;AAAA,EACF,SAAS,OAAO;AACf,YAAQ,MAAM,oCAAoC,KAAK;AACvD,WAAO;AAAA,EACR;AACD;;;AC/GA,IAAM,eAA4C;AAAA,EACjD,UAAU;AAAA,IACT,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACR,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACA,WAAW;AAAA,IACV,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACA,SAAS;AAAA,IACR,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACA,WAAW;AAAA,IACV,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACA,WAAW;AAAA,IACV,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AACD;AAEA,IAAM,sBAEF;AAAA,EACH,wDAAwC,GAAG;AAAA,EAC3C,wDAAwC,GAAG;AAAA,EAC3C,wBAAwB,GAAG;AAAA,EAC3B,wBAAwB,GAAG;AAAA,EAC3B,8BAA2B,GAAG;AAAA,EAC9B,kBAAqB,GAAG;AAAA,EACxB,kBAAqB,GAAG;AACzB;AAQO,SAAS,sBAAsB;AAAA,EACrC;AAAA,EACA;AACD,GAA2B;AAC1B,MACC,oEACA,kEACC;AACD,WAAO,aAAa;AAAA,EACrB;AAEA,MAAI,OAAO,WAAW,YAAY;AAElC,MAAI;AAEH,QAAI,IAAI,IAAI;AAEZ,WAAO,cAAc,IAAI,KAAK;AAAA,EAC/B,QAAQ;AAAA,EAAC;AAET,SAAO,KAAK,QAAQ,MAAM,EAAE;AAE5B,QAAM,UAAU,aAAa,IAAI;AAEjC,MAAI,SAAS;AACZ,WAAO;AAAA,EACR;AAEA,MAAI,oBAAoB,IAAI,GAAG;AAC9B,WAAO,aAAa,oBAAoB,IAAI,CAAC;AAAA,EAC9C;AACD;AAEA,SAAS,cAAc,KAAa;AACnC,QAAM,SAAS,IAAI,QAAQ,2BAA2B,EAAE;AACxD,QAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,SAAO,MAAM,MAAM,SAAS,CAAC,KAAK,MAAM,CAAC;AAC1C;;;AC1GO,IAAM,sBAAsB,CAAC,aAAmC;AAAA,EACtE,GAAG;AAAA,EACH,IAAI,OAAO,QAAQ,OAAO;AAAA,EAC1B,MAAM,QAAQ;AAAA,EACd,gBAAgB,EAAE,GAAG,QAAQ,YAAY;AAAA,EACzC,SAAS;AAAA,IACR,SAAS;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,IACtB;AAAA,IACA,QAAQ;AAAA,MACP,MAAM,CAAC,QAAQ,MAAM;AAAA,IACtB;AAAA,EACD;AACD;;;AChBA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC3C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC5B;","names":[]}
|
|
@@ -3,12 +3,9 @@
|
|
|
3
3
|
import {
|
|
4
4
|
collectionOptions
|
|
5
5
|
} from "./chunk-GBQVYNCD.js";
|
|
6
|
-
import {
|
|
7
|
-
marketplaceConfigOptions
|
|
8
|
-
} from "./chunk-3II5GLHE.js";
|
|
9
6
|
import {
|
|
10
7
|
InfoIcon_default
|
|
11
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-SJU6QZHM.js";
|
|
12
9
|
import {
|
|
13
10
|
SEQUENCE_MARKET_V1_ADDRESS,
|
|
14
11
|
SEQUENCE_MARKET_V2_ADDRESS
|
|
@@ -16,19 +13,23 @@ import {
|
|
|
16
13
|
import {
|
|
17
14
|
compareAddress,
|
|
18
15
|
getPresentableChainName
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import {
|
|
21
|
-
EIP2981_ABI
|
|
22
|
-
} from "./chunk-XX4EVWBF.js";
|
|
16
|
+
} from "./chunk-BGY4WXER.js";
|
|
23
17
|
import {
|
|
24
18
|
ERC1155_ABI
|
|
25
19
|
} from "./chunk-FUM4OGOQ.js";
|
|
20
|
+
import {
|
|
21
|
+
EIP2981_ABI
|
|
22
|
+
} from "./chunk-XX4EVWBF.js";
|
|
26
23
|
import {
|
|
27
24
|
balanceOfCollectibleOptions,
|
|
28
25
|
highestOfferOptions,
|
|
29
26
|
listBalancesOptions,
|
|
30
|
-
listCollectiblesOptions
|
|
31
|
-
|
|
27
|
+
listCollectiblesOptions,
|
|
28
|
+
lowestListingOptions
|
|
29
|
+
} from "./chunk-4DFOSZTE.js";
|
|
30
|
+
import {
|
|
31
|
+
marketplaceConfigOptions
|
|
32
|
+
} from "./chunk-3II5GLHE.js";
|
|
32
33
|
import {
|
|
33
34
|
AddressSchema,
|
|
34
35
|
CollectableIdSchema,
|
|
@@ -1490,42 +1491,19 @@ var useCountListingsForCollectible = (args) => {
|
|
|
1490
1491
|
};
|
|
1491
1492
|
|
|
1492
1493
|
// src/react/hooks/useLowestListing.tsx
|
|
1493
|
-
import {
|
|
1494
|
-
|
|
1495
|
-
var UseLowestListingSchema = getCollectibleLowestListingArgsSchema.omit({
|
|
1496
|
-
contractAddress: true
|
|
1497
|
-
}).extend({
|
|
1498
|
-
collectionAddress: AddressSchema,
|
|
1499
|
-
chainId: z16.number(),
|
|
1500
|
-
query: QueryArgSchema
|
|
1501
|
-
});
|
|
1502
|
-
var fetchLowestListing = async (args, config) => {
|
|
1503
|
-
const parsedArgs = UseLowestListingSchema.parse(args);
|
|
1504
|
-
const marketplaceClient = getMarketplaceClient(parsedArgs.chainId, config);
|
|
1505
|
-
return marketplaceClient.getCollectibleLowestListing({
|
|
1506
|
-
...parsedArgs,
|
|
1507
|
-
contractAddress: parsedArgs.collectionAddress
|
|
1508
|
-
});
|
|
1509
|
-
};
|
|
1510
|
-
var lowestListingOptions = (args, config) => {
|
|
1511
|
-
return queryOptions17({
|
|
1512
|
-
...args.query,
|
|
1513
|
-
queryKey: [...collectableKeys.lowestListings, args, config],
|
|
1514
|
-
queryFn: () => fetchLowestListing(args, config)
|
|
1515
|
-
});
|
|
1516
|
-
};
|
|
1517
|
-
var useLowestListing = (args) => {
|
|
1494
|
+
import { useQuery as useQuery21 } from "@tanstack/react-query";
|
|
1495
|
+
function useLowestListing(args) {
|
|
1518
1496
|
const config = useConfig();
|
|
1519
1497
|
return useQuery21(lowestListingOptions(args, config));
|
|
1520
|
-
}
|
|
1498
|
+
}
|
|
1521
1499
|
|
|
1522
1500
|
// src/react/hooks/useRoyalty.tsx
|
|
1523
1501
|
import { useReadContract } from "wagmi";
|
|
1524
|
-
import { z as
|
|
1525
|
-
var UseRoyaltySchema =
|
|
1526
|
-
chainId:
|
|
1502
|
+
import { z as z16 } from "zod";
|
|
1503
|
+
var UseRoyaltySchema = z16.object({
|
|
1504
|
+
chainId: z16.number(),
|
|
1527
1505
|
collectionAddress: AddressSchema,
|
|
1528
|
-
collectibleId:
|
|
1506
|
+
collectibleId: z16.string(),
|
|
1529
1507
|
query: QueryArgSchema.optional()
|
|
1530
1508
|
});
|
|
1531
1509
|
var useRoyalty = (args) => {
|
|
@@ -1607,10 +1585,10 @@ var useGenerateOfferTransaction = (params) => {
|
|
|
1607
1585
|
|
|
1608
1586
|
// src/react/hooks/useGenerateSellTransaction.tsx
|
|
1609
1587
|
import { useMutation as useMutation3 } from "@tanstack/react-query";
|
|
1610
|
-
import { z as
|
|
1611
|
-
var UserGeneratSellTransactionArgsSchema =
|
|
1612
|
-
chainId:
|
|
1613
|
-
onSuccess:
|
|
1588
|
+
import { z as z17 } from "zod";
|
|
1589
|
+
var UserGeneratSellTransactionArgsSchema = z17.object({
|
|
1590
|
+
chainId: z17.number(),
|
|
1591
|
+
onSuccess: z17.function().args(stepSchema.array().optional()).optional()
|
|
1614
1592
|
});
|
|
1615
1593
|
var generateSellTransaction = async (args, config, chainId) => {
|
|
1616
1594
|
const marketplaceClient = getMarketplaceClient(chainId, config);
|
|
@@ -1631,10 +1609,10 @@ var useGenerateSellTransaction = (params) => {
|
|
|
1631
1609
|
|
|
1632
1610
|
// src/react/hooks/useGenerateCancelTransaction.tsx
|
|
1633
1611
|
import { useMutation as useMutation4 } from "@tanstack/react-query";
|
|
1634
|
-
import { z as
|
|
1635
|
-
var UserGenerateCancelTransactionArgsSchema =
|
|
1636
|
-
chainId:
|
|
1637
|
-
onSuccess:
|
|
1612
|
+
import { z as z18 } from "zod";
|
|
1613
|
+
var UserGenerateCancelTransactionArgsSchema = z18.object({
|
|
1614
|
+
chainId: z18.number(),
|
|
1615
|
+
onSuccess: z18.function().args(stepSchema.array().optional()).optional()
|
|
1638
1616
|
});
|
|
1639
1617
|
var generateCancelTransaction = async (args, config, chainId) => {
|
|
1640
1618
|
const marketplaceClient = getMarketplaceClient(chainId, config);
|
|
@@ -1709,16 +1687,16 @@ var useTransferTokens = () => {
|
|
|
1709
1687
|
};
|
|
1710
1688
|
|
|
1711
1689
|
// src/react/hooks/useCheckoutOptions.tsx
|
|
1712
|
-
import { queryOptions as
|
|
1690
|
+
import { queryOptions as queryOptions17, useQuery as useQuery22 } from "@tanstack/react-query";
|
|
1713
1691
|
import { useAccount as useAccount3 } from "wagmi";
|
|
1714
|
-
import { z as
|
|
1715
|
-
var UseCheckoutOptionsSchema =
|
|
1716
|
-
chainId:
|
|
1717
|
-
orders:
|
|
1718
|
-
|
|
1692
|
+
import { z as z19 } from "zod";
|
|
1693
|
+
var UseCheckoutOptionsSchema = z19.object({
|
|
1694
|
+
chainId: z19.number(),
|
|
1695
|
+
orders: z19.array(
|
|
1696
|
+
z19.object({
|
|
1719
1697
|
collectionAddress: AddressSchema,
|
|
1720
|
-
orderId:
|
|
1721
|
-
marketplace:
|
|
1698
|
+
orderId: z19.string(),
|
|
1699
|
+
marketplace: z19.nativeEnum(MarketplaceKind)
|
|
1722
1700
|
})
|
|
1723
1701
|
),
|
|
1724
1702
|
query: QueryArgSchema
|
|
@@ -1737,7 +1715,7 @@ var fetchCheckoutOptions = async (args, config) => {
|
|
|
1737
1715
|
});
|
|
1738
1716
|
};
|
|
1739
1717
|
var checkoutOptionsOptions = (args, config) => {
|
|
1740
|
-
return
|
|
1718
|
+
return queryOptions17({
|
|
1741
1719
|
queryKey: ["checkoutOptions", args],
|
|
1742
1720
|
queryFn: () => fetchCheckoutOptions(args, config)
|
|
1743
1721
|
});
|
|
@@ -1752,9 +1730,9 @@ var useCheckoutOptions = (args) => {
|
|
|
1752
1730
|
};
|
|
1753
1731
|
|
|
1754
1732
|
// src/react/hooks/useListCollections.tsx
|
|
1755
|
-
import { queryOptions as
|
|
1756
|
-
import { z as
|
|
1757
|
-
var UseListCollectionsSchema =
|
|
1733
|
+
import { queryOptions as queryOptions18, useQuery as useQuery23 } from "@tanstack/react-query";
|
|
1734
|
+
import { z as z20 } from "zod";
|
|
1735
|
+
var UseListCollectionsSchema = z20.object({
|
|
1758
1736
|
query: QueryArgSchema.optional().default({})
|
|
1759
1737
|
});
|
|
1760
1738
|
var fetchListCollections = async ({ marketplaceConfig }, config) => {
|
|
@@ -1780,7 +1758,7 @@ var fetchListCollections = async ({ marketplaceConfig }, config) => {
|
|
|
1780
1758
|
return results.flat();
|
|
1781
1759
|
};
|
|
1782
1760
|
var listCollectionsOptions = (args, config) => {
|
|
1783
|
-
return
|
|
1761
|
+
return queryOptions18({
|
|
1784
1762
|
...args.query,
|
|
1785
1763
|
queryKey: [...collectionKeys.list],
|
|
1786
1764
|
queryFn: () => fetchListCollections(args, config)
|
|
@@ -2471,7 +2449,7 @@ var useCancelOrder = ({
|
|
|
2471
2449
|
};
|
|
2472
2450
|
|
|
2473
2451
|
// src/react/hooks/useCollectionDetails.tsx
|
|
2474
|
-
import { queryOptions as
|
|
2452
|
+
import { queryOptions as queryOptions19, useQuery as useQuery25 } from "@tanstack/react-query";
|
|
2475
2453
|
var fetchCollectionDetails = async (args, marketplaceClient) => {
|
|
2476
2454
|
const { collection } = await marketplaceClient.getCollectionDetail({
|
|
2477
2455
|
contractAddress: args.collectionAddress
|
|
@@ -2480,7 +2458,7 @@ var fetchCollectionDetails = async (args, marketplaceClient) => {
|
|
|
2480
2458
|
};
|
|
2481
2459
|
var collectionDetailsOptions = (args, config) => {
|
|
2482
2460
|
const marketplaceClient = getMarketplaceClient(args.chainId, config);
|
|
2483
|
-
return
|
|
2461
|
+
return queryOptions19({
|
|
2484
2462
|
queryKey: ["collectionDetails", args],
|
|
2485
2463
|
queryFn: () => fetchCollectionDetails(args, marketplaceClient)
|
|
2486
2464
|
});
|
|
@@ -2491,7 +2469,7 @@ var useCollectionDetails = (args) => {
|
|
|
2491
2469
|
};
|
|
2492
2470
|
|
|
2493
2471
|
// src/react/hooks/useCollectionDetailsPolling.tsx
|
|
2494
|
-
import { queryOptions as
|
|
2472
|
+
import { queryOptions as queryOptions20, useQuery as useQuery26 } from "@tanstack/react-query";
|
|
2495
2473
|
var INITIAL_POLLING_INTERVAL = 2e3;
|
|
2496
2474
|
var MAX_POLLING_INTERVAL = 3e4;
|
|
2497
2475
|
var MAX_ATTEMPTS = 30;
|
|
@@ -2504,7 +2482,7 @@ var isTerminalState = (status) => {
|
|
|
2504
2482
|
].includes(status);
|
|
2505
2483
|
};
|
|
2506
2484
|
var collectionDetailsPollingOptions = (args, config) => {
|
|
2507
|
-
return
|
|
2485
|
+
return queryOptions20({
|
|
2508
2486
|
...collectionDetailsOptions(args, config),
|
|
2509
2487
|
refetchInterval: (query) => {
|
|
2510
2488
|
const data = query.state.data;
|
|
@@ -2576,7 +2554,6 @@ export {
|
|
|
2576
2554
|
useListListingsForCollectible,
|
|
2577
2555
|
countListingsForCollectibleOptions,
|
|
2578
2556
|
useCountListingsForCollectible,
|
|
2579
|
-
lowestListingOptions,
|
|
2580
2557
|
useLowestListing,
|
|
2581
2558
|
useRoyalty,
|
|
2582
2559
|
dateToUnixTime,
|
|
@@ -2605,4 +2582,4 @@ export {
|
|
|
2605
2582
|
collectionDetailsPollingOptions,
|
|
2606
2583
|
useCollectionDetailsPolling
|
|
2607
2584
|
};
|
|
2608
|
-
//# sourceMappingURL=chunk-
|
|
2585
|
+
//# sourceMappingURL=chunk-F6CUGMI4.js.map
|