thirdweb 5.95.0-nightly-64bd603301b3067b6a69a29f66a28dee7ffa38f5-20250416000349 → 5.95.0-nightly-4cf15a2475fce1c5b55d19f7cf51ab080e80e33f-20250418000341
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/chains/utils.js +2 -4
- package/dist/cjs/chains/utils.js.map +1 -1
- package/dist/cjs/event/actions/get-events.js +4 -10
- package/dist/cjs/event/actions/get-events.js.map +1 -1
- package/dist/cjs/extensions/erc1155/read/getNFT.js +40 -0
- package/dist/cjs/extensions/erc1155/read/getNFT.js.map +1 -1
- package/dist/cjs/extensions/erc1155/read/getNFTs.js +26 -0
- package/dist/cjs/extensions/erc1155/read/getNFTs.js.map +1 -1
- package/dist/cjs/extensions/erc1155/read/getOwnedNFTs.js +46 -0
- package/dist/cjs/extensions/erc1155/read/getOwnedNFTs.js.map +1 -1
- package/dist/cjs/extensions/erc20/read/getBalance.js +2 -0
- package/dist/cjs/extensions/erc20/read/getBalance.js.map +1 -1
- package/dist/cjs/extensions/erc721/read/getNFT.js +42 -0
- package/dist/cjs/extensions/erc721/read/getNFT.js.map +1 -1
- package/dist/cjs/extensions/erc721/read/getNFTs.js +44 -17
- package/dist/cjs/extensions/erc721/read/getNFTs.js.map +1 -1
- package/dist/cjs/extensions/erc721/read/getOwnedNFTs.js +46 -0
- package/dist/cjs/extensions/erc721/read/getOwnedNFTs.js.map +1 -1
- package/dist/cjs/extensions/marketplace/direct-listings/utils.js +7 -4
- package/dist/cjs/extensions/marketplace/direct-listings/utils.js.map +1 -1
- package/dist/cjs/extensions/marketplace/english-auctions/utils.js +9 -4
- package/dist/cjs/extensions/marketplace/english-auctions/utils.js.map +1 -1
- package/dist/cjs/extensions/marketplace/offers/utils.js +7 -4
- package/dist/cjs/extensions/marketplace/offers/utils.js.map +1 -1
- package/dist/cjs/insight/common.js +18 -0
- package/dist/cjs/insight/common.js.map +1 -0
- package/dist/cjs/insight/get-events.js +12 -9
- package/dist/cjs/insight/get-events.js.map +1 -1
- package/dist/cjs/insight/get-nfts.js +213 -16
- package/dist/cjs/insight/get-nfts.js.map +1 -1
- package/dist/cjs/insight/get-tokens.js +34 -14
- package/dist/cjs/insight/get-tokens.js.map +1 -1
- package/dist/cjs/insight/get-transactions.js +17 -12
- package/dist/cjs/insight/get-transactions.js.map +1 -1
- package/dist/cjs/insight/index.js +3 -1
- package/dist/cjs/insight/index.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewNFTs.js +6 -43
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewNFTs.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewTokens.js +3 -9
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewTokens.js.map +1 -1
- package/dist/cjs/react/web/ui/components/TokenIcon.js +3 -1
- package/dist/cjs/react/web/ui/components/TokenIcon.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/NFT/utils.js +7 -2
- package/dist/cjs/react/web/ui/prebuilt/NFT/utils.js.map +1 -1
- package/dist/cjs/rpc/fetch-rpc.js +2 -22
- package/dist/cjs/rpc/fetch-rpc.js.map +1 -1
- package/dist/cjs/rpc/rpc.js +1 -1
- package/dist/cjs/rpc/rpc.js.map +1 -1
- package/dist/cjs/social/profiles.js +3 -8
- package/dist/cjs/social/profiles.js.map +1 -1
- package/dist/cjs/storage/download.js +2 -2
- package/dist/cjs/storage/download.js.map +1 -1
- package/dist/cjs/storage/unpin.js +2 -2
- package/dist/cjs/storage/unpin.js.map +1 -1
- package/dist/cjs/storage/upload/web-node.js +0 -1
- package/dist/cjs/storage/upload/web-node.js.map +1 -1
- package/dist/cjs/utils/nft/parseNft.js +4 -0
- package/dist/cjs/utils/nft/parseNft.js.map +1 -1
- package/dist/cjs/utils/signatures/resolve-signature.js +0 -2
- package/dist/cjs/utils/signatures/resolve-signature.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/in-app/core/users/getUser.js +2 -1
- package/dist/cjs/wallets/in-app/core/users/getUser.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/calls.js +2 -2
- package/dist/cjs/wallets/smart/lib/calls.js.map +1 -1
- package/dist/cjs/wallets/utils/getWalletBalance.js +3 -0
- package/dist/cjs/wallets/utils/getWalletBalance.js.map +1 -1
- package/dist/esm/chains/utils.js +2 -4
- package/dist/esm/chains/utils.js.map +1 -1
- package/dist/esm/event/actions/get-events.js +1 -7
- package/dist/esm/event/actions/get-events.js.map +1 -1
- package/dist/esm/extensions/erc1155/read/getNFT.js +40 -0
- package/dist/esm/extensions/erc1155/read/getNFT.js.map +1 -1
- package/dist/esm/extensions/erc1155/read/getNFTs.js +26 -0
- package/dist/esm/extensions/erc1155/read/getNFTs.js.map +1 -1
- package/dist/esm/extensions/erc1155/read/getOwnedNFTs.js +46 -0
- package/dist/esm/extensions/erc1155/read/getOwnedNFTs.js.map +1 -1
- package/dist/esm/extensions/erc20/read/getBalance.js +2 -0
- package/dist/esm/extensions/erc20/read/getBalance.js.map +1 -1
- package/dist/esm/extensions/erc721/read/getNFT.js +42 -0
- package/dist/esm/extensions/erc721/read/getNFT.js.map +1 -1
- package/dist/esm/extensions/erc721/read/getNFTs.js +44 -17
- package/dist/esm/extensions/erc721/read/getNFTs.js.map +1 -1
- package/dist/esm/extensions/erc721/read/getOwnedNFTs.js +46 -0
- package/dist/esm/extensions/erc721/read/getOwnedNFTs.js.map +1 -1
- package/dist/esm/extensions/marketplace/direct-listings/utils.js +7 -4
- package/dist/esm/extensions/marketplace/direct-listings/utils.js.map +1 -1
- package/dist/esm/extensions/marketplace/english-auctions/utils.js +9 -4
- package/dist/esm/extensions/marketplace/english-auctions/utils.js.map +1 -1
- package/dist/esm/extensions/marketplace/offers/utils.js +7 -4
- package/dist/esm/extensions/marketplace/offers/utils.js.map +1 -1
- package/dist/esm/insight/common.js +15 -0
- package/dist/esm/insight/common.js.map +1 -0
- package/dist/esm/insight/get-events.js +8 -5
- package/dist/esm/insight/get-events.js.map +1 -1
- package/dist/esm/insight/get-nfts.js +208 -13
- package/dist/esm/insight/get-nfts.js.map +1 -1
- package/dist/esm/insight/get-tokens.js +30 -10
- package/dist/esm/insight/get-tokens.js.map +1 -1
- package/dist/esm/insight/get-transactions.js +13 -8
- package/dist/esm/insight/get-transactions.js.map +1 -1
- package/dist/esm/insight/index.js +1 -1
- package/dist/esm/insight/index.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/ViewNFTs.js +6 -43
- package/dist/esm/react/web/ui/ConnectWallet/screens/ViewNFTs.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/ViewTokens.js +3 -9
- package/dist/esm/react/web/ui/ConnectWallet/screens/ViewTokens.js.map +1 -1
- package/dist/esm/react/web/ui/components/TokenIcon.js +3 -1
- package/dist/esm/react/web/ui/components/TokenIcon.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/NFT/utils.js +7 -2
- package/dist/esm/react/web/ui/prebuilt/NFT/utils.js.map +1 -1
- package/dist/esm/rpc/fetch-rpc.js +2 -22
- package/dist/esm/rpc/fetch-rpc.js.map +1 -1
- package/dist/esm/rpc/rpc.js +1 -1
- package/dist/esm/rpc/rpc.js.map +1 -1
- package/dist/esm/social/profiles.js +3 -8
- package/dist/esm/social/profiles.js.map +1 -1
- package/dist/esm/storage/download.js +2 -2
- package/dist/esm/storage/download.js.map +1 -1
- package/dist/esm/storage/unpin.js +2 -2
- package/dist/esm/storage/unpin.js.map +1 -1
- package/dist/esm/storage/upload/web-node.js +0 -1
- package/dist/esm/storage/upload/web-node.js.map +1 -1
- package/dist/esm/utils/nft/parseNft.js +4 -0
- package/dist/esm/utils/nft/parseNft.js.map +1 -1
- package/dist/esm/utils/signatures/resolve-signature.js +0 -2
- package/dist/esm/utils/signatures/resolve-signature.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/in-app/core/users/getUser.js +2 -1
- package/dist/esm/wallets/in-app/core/users/getUser.js.map +1 -1
- package/dist/esm/wallets/smart/lib/calls.js +2 -2
- package/dist/esm/wallets/smart/lib/calls.js.map +1 -1
- package/dist/esm/wallets/utils/getWalletBalance.js +3 -0
- package/dist/esm/wallets/utils/getWalletBalance.js.map +1 -1
- package/dist/types/chains/utils.d.ts.map +1 -1
- package/dist/types/event/actions/get-events.d.ts.map +1 -1
- package/dist/types/extensions/erc1155/read/getNFT.d.ts +5 -0
- package/dist/types/extensions/erc1155/read/getNFT.d.ts.map +1 -1
- package/dist/types/extensions/erc1155/read/getNFTs.d.ts +5 -0
- package/dist/types/extensions/erc1155/read/getNFTs.d.ts.map +1 -1
- package/dist/types/extensions/erc1155/read/getOwnedNFTs.d.ts +7 -1
- package/dist/types/extensions/erc1155/read/getOwnedNFTs.d.ts.map +1 -1
- package/dist/types/extensions/erc20/read/getBalance.d.ts +2 -0
- package/dist/types/extensions/erc20/read/getBalance.d.ts.map +1 -1
- package/dist/types/extensions/erc721/read/getNFT.d.ts +5 -0
- package/dist/types/extensions/erc721/read/getNFT.d.ts.map +1 -1
- package/dist/types/extensions/erc721/read/getNFTs.d.ts +5 -0
- package/dist/types/extensions/erc721/read/getNFTs.d.ts.map +1 -1
- package/dist/types/extensions/erc721/read/getOwnedNFTs.d.ts +3 -1
- package/dist/types/extensions/erc721/read/getOwnedNFTs.d.ts.map +1 -1
- package/dist/types/extensions/marketplace/direct-listings/utils.d.ts.map +1 -1
- package/dist/types/extensions/marketplace/english-auctions/utils.d.ts.map +1 -1
- package/dist/types/extensions/marketplace/offers/utils.d.ts.map +1 -1
- package/dist/types/insight/common.d.ts +3 -0
- package/dist/types/insight/common.d.ts.map +1 -0
- package/dist/types/insight/get-events.d.ts +2 -2
- package/dist/types/insight/get-events.d.ts.map +1 -1
- package/dist/types/insight/get-nfts.d.ts +52 -4
- package/dist/types/insight/get-nfts.d.ts.map +1 -1
- package/dist/types/insight/get-tokens.d.ts +3 -3
- package/dist/types/insight/get-tokens.d.ts.map +1 -1
- package/dist/types/insight/get-transactions.d.ts +1 -1
- package/dist/types/insight/get-transactions.d.ts.map +1 -1
- package/dist/types/insight/index.d.ts +2 -2
- package/dist/types/insight/index.d.ts.map +1 -1
- package/dist/types/react/core/utils/wallet.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/ViewNFTs.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/ViewTokens.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/TokenIcon.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/NFT/utils.d.ts.map +1 -1
- package/dist/types/rpc/fetch-rpc.d.ts.map +1 -1
- package/dist/types/rpc/rpc.d.ts.map +1 -1
- package/dist/types/social/profiles.d.ts.map +1 -1
- package/dist/types/storage/download.d.ts.map +1 -1
- package/dist/types/storage/unpin.d.ts.map +1 -1
- package/dist/types/storage/upload/web-node.d.ts.map +1 -1
- package/dist/types/utils/nft/parseNft.d.ts +8 -0
- package/dist/types/utils/nft/parseNft.d.ts.map +1 -1
- package/dist/types/utils/signatures/resolve-signature.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/in-app/core/users/getUser.d.ts.map +1 -1
- package/dist/types/wallets/utils/getWalletBalance.d.ts +2 -7
- package/dist/types/wallets/utils/getWalletBalance.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/chains/utils.ts +6 -4
- package/src/event/actions/get-events.ts +1 -13
- package/src/extensions/erc1155/read/getNFT.test.ts +13 -0
- package/src/extensions/erc1155/read/getNFT.ts +53 -1
- package/src/extensions/erc1155/read/getNFTs.ts +38 -0
- package/src/extensions/erc1155/read/getOwnedNFTs.ts +65 -2
- package/src/extensions/erc20/drop20.test.ts +48 -132
- package/src/extensions/erc20/read/getBalance.test.ts +5 -9
- package/src/extensions/erc20/read/getBalance.ts +4 -0
- package/src/extensions/erc721/read/getNFT.test.ts +106 -0
- package/src/extensions/erc721/read/getNFT.ts +55 -1
- package/src/extensions/erc721/read/getNFTs.test.ts +212 -6
- package/src/extensions/erc721/read/getNFTs.ts +59 -20
- package/src/extensions/erc721/read/getOwnedNFTs.test.ts +27 -2
- package/src/extensions/erc721/read/getOwnedNFTs.ts +61 -1
- package/src/extensions/erc721/token721.test.ts +2 -0
- package/src/extensions/marketplace/direct-listings/direct-listings.test.ts +2 -18
- package/src/extensions/marketplace/direct-listings/utils.ts +7 -4
- package/src/extensions/marketplace/english-auctions/utils.ts +9 -4
- package/src/extensions/marketplace/offers/utils.ts +7 -4
- package/src/insight/common.ts +24 -0
- package/src/insight/get-events.ts +23 -9
- package/src/insight/get-nfts.ts +315 -20
- package/src/insight/get-tokens.ts +51 -23
- package/src/insight/get-transactions.ts +26 -16
- package/src/insight/index.ts +6 -2
- package/src/react/web/ui/ConnectWallet/screens/ViewNFTs.tsx +43 -68
- package/src/react/web/ui/ConnectWallet/screens/ViewTokens.tsx +4 -14
- package/src/react/web/ui/components/TokenIcon.tsx +12 -3
- package/src/react/web/ui/prebuilt/NFT/utils.test.ts +2 -64
- package/src/react/web/ui/prebuilt/NFT/utils.ts +7 -2
- package/src/rpc/fetch-rpc.ts +2 -20
- package/src/rpc/rpc.ts +5 -1
- package/src/social/profiles.ts +5 -9
- package/src/storage/download.ts +4 -2
- package/src/storage/unpin.ts +4 -2
- package/src/storage/upload/web-node.ts +0 -1
- package/src/utils/nft/parseNft.test.ts +8 -0
- package/src/utils/nft/parseNft.ts +12 -0
- package/src/utils/signatures/resolve-signature.ts +0 -2
- package/src/version.ts +1 -1
- package/src/wallets/in-app/core/users/getUser.test.ts +4 -1
- package/src/wallets/in-app/core/users/getUser.ts +4 -1
- package/src/wallets/smart/lib/calls.ts +2 -2
- package/src/wallets/utils/getWalletBalance.ts +5 -7
package/dist/cjs/chains/utils.js
CHANGED
@@ -258,8 +258,7 @@ function getChainMetadata(chain) {
|
|
258
258
|
try {
|
259
259
|
const res = await fetch(`https://api.thirdweb.com/v1/chains/${chainId}`);
|
260
260
|
if (!res.ok) {
|
261
|
-
res.
|
262
|
-
throw new Error(`Failed to fetch chain data for chainId ${chainId}`);
|
261
|
+
throw new Error(`Failed to fetch chain data for chainId ${chainId}. ${res.status} ${res.statusText}`);
|
263
262
|
}
|
264
263
|
const response = (await res.json());
|
265
264
|
if (response.error) {
|
@@ -298,8 +297,7 @@ function getChainServices(chain) {
|
|
298
297
|
try {
|
299
298
|
const res = await fetch(`https://api.thirdweb.com/v1/chains/${chainId}/services`);
|
300
299
|
if (!res.ok) {
|
301
|
-
res.
|
302
|
-
throw new Error(`Failed to fetch services for chainId ${chainId}`);
|
300
|
+
throw new Error(`Failed to fetch services for chainId ${chainId}. ${res.status} ${res.statusText}`);
|
303
301
|
}
|
304
302
|
const response = (await res.json());
|
305
303
|
if (response.error) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/chains/utils.ts"],"names":[],"mappings":";;;AAyCA,kCAwBC;AAKD,kCAIC;AAKD,wCAUC;AAKD,wDAEC;AAWD,gDAoBC;AAWD,4CAuBC;AAqBD,8CAoBC;AAQD,wCAWC;AASD,4CAWC;AAUD,gEAaC;AAyBD,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/chains/utils.ts"],"names":[],"mappings":"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"}
|
@@ -2,7 +2,6 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getContractEvents = getContractEvents;
|
4
4
|
const viem_1 = require("viem");
|
5
|
-
const utils_js_1 = require("../../chains/utils.js");
|
6
5
|
const resolve_abi_js_1 = require("../../contract/actions/resolve-abi.js");
|
7
6
|
const get_events_js_1 = require("../../insight/get-events.js");
|
8
7
|
const eth_blockNumber_js_1 = require("../../rpc/actions/eth_blockNumber.js");
|
@@ -11,7 +10,7 @@ const rpc_js_1 = require("../../rpc/rpc.js");
|
|
11
10
|
const address_js_1 = require("../../utils/address.js");
|
12
11
|
const hex_js_1 = require("../../utils/encoding/hex.js");
|
13
12
|
const prepare_event_js_1 = require("../prepare-event.js");
|
14
|
-
const
|
13
|
+
const utils_js_1 = require("../utils.js");
|
15
14
|
const parse_logs_js_1 = require("./parse-logs.js");
|
16
15
|
/**
|
17
16
|
* Retrieves events from a contract based on the provided options.
|
@@ -97,14 +96,14 @@ async function getContractEvents(options) {
|
|
97
96
|
if (contract.abi?.length) {
|
98
97
|
// @ts-expect-error - we can't make typescript happy here, but we know this is an abi event
|
99
98
|
resolvedEvents = contract.abi
|
100
|
-
.filter(
|
99
|
+
.filter(utils_js_1.isAbiEvent)
|
101
100
|
.map((abiEvent) => (0, prepare_event_js_1.prepareEvent)({ signature: abiEvent }));
|
102
101
|
}
|
103
102
|
else {
|
104
103
|
const runtimeAbi = await (0, resolve_abi_js_1.resolveContractAbi)(contract);
|
105
104
|
// @ts-expect-error - we can't make typescript happy here, but we know this is an abi event
|
106
105
|
resolvedEvents = runtimeAbi
|
107
|
-
.filter(
|
106
|
+
.filter(utils_js_1.isAbiEvent)
|
108
107
|
.map((abiEvent) => (0, prepare_event_js_1.prepareEvent)({ signature: abiEvent }));
|
109
108
|
}
|
110
109
|
}
|
@@ -127,7 +126,7 @@ async function getContractEvents(options) {
|
|
127
126
|
})));
|
128
127
|
}
|
129
128
|
catch (e) {
|
130
|
-
console.warn("Error fetching from insight", e);
|
129
|
+
console.warn("Error fetching from insight, falling back to rpc", e);
|
131
130
|
// fetch from rpc
|
132
131
|
logs = await Promise.all(logsParams.map((ethLogParams) => (0, eth_getLogs_js_1.eth_getLogs)(rpcRequest, ethLogParams)));
|
133
132
|
}
|
@@ -146,11 +145,6 @@ async function getContractEvents(options) {
|
|
146
145
|
}
|
147
146
|
async function getLogsFromInsight(options) {
|
148
147
|
const { params, contract } = options;
|
149
|
-
const chainServices = await (0, utils_js_1.getChainServices)(contract.chain);
|
150
|
-
const insightEnabled = chainServices.some((c) => c.service === "insight" && c.enabled);
|
151
|
-
if (!insightEnabled) {
|
152
|
-
throw new Error(`Insight is not available for chainId ${contract.chain.id}`);
|
153
|
-
}
|
154
148
|
const fromBlock = typeof params.fromBlock === "bigint" ? Number(params.fromBlock) : undefined;
|
155
149
|
const toBlock = typeof params.toBlock === "bigint" ? Number(params.toBlock) : undefined;
|
156
150
|
const r = await (0, get_events_js_1.getContractEvents)({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-events.js","sourceRoot":"","sources":["../../../../src/event/actions/get-events.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"get-events.js","sourceRoot":"","sources":["../../../../src/event/actions/get-events.ts"],"names":[],"mappings":"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"}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.isGetNFTSupported = void 0;
|
4
4
|
exports.getNFT = getNFT;
|
5
|
+
const get_nfts_js_1 = require("../../../insight/get-nfts.js");
|
5
6
|
const fetchTokenMetadata_js_1 = require("../../../utils/nft/fetchTokenMetadata.js");
|
6
7
|
const parseNft_js_1 = require("../../../utils/nft/parseNft.js");
|
7
8
|
const totalSupply_js_1 = require("../__generated__/IERC1155/read/totalSupply.js");
|
@@ -23,6 +24,43 @@ Object.defineProperty(exports, "isGetNFTSupported", { enumerable: true, get: fun
|
|
23
24
|
* ```
|
24
25
|
*/
|
25
26
|
async function getNFT(options) {
|
27
|
+
const { useIndexer = true } = options;
|
28
|
+
if (useIndexer) {
|
29
|
+
try {
|
30
|
+
return await getNFTFromInsight(options);
|
31
|
+
}
|
32
|
+
catch {
|
33
|
+
return await getNFTFromRPC(options);
|
34
|
+
}
|
35
|
+
}
|
36
|
+
return await getNFTFromRPC(options);
|
37
|
+
}
|
38
|
+
async function getNFTFromInsight(options) {
|
39
|
+
const tokenId = options.tokenId;
|
40
|
+
const nft = await (0, get_nfts_js_1.getNFT)({
|
41
|
+
client: options.contract.client,
|
42
|
+
chain: options.contract.chain,
|
43
|
+
contractAddress: options.contract.address,
|
44
|
+
tokenId: options.tokenId,
|
45
|
+
});
|
46
|
+
if (!nft) {
|
47
|
+
return (0, parseNft_js_1.parseNFT)({
|
48
|
+
id: tokenId,
|
49
|
+
type: "ERC1155",
|
50
|
+
uri: "",
|
51
|
+
}, {
|
52
|
+
tokenId: options.tokenId,
|
53
|
+
tokenUri: "",
|
54
|
+
type: "ERC1155",
|
55
|
+
owner: null,
|
56
|
+
supply: 0n,
|
57
|
+
tokenAddress: options.contract.address,
|
58
|
+
chainId: options.contract.chain.id,
|
59
|
+
});
|
60
|
+
}
|
61
|
+
return nft;
|
62
|
+
}
|
63
|
+
async function getNFTFromRPC(options) {
|
26
64
|
const [tokenUri, supply] = await Promise.all([
|
27
65
|
(0, uri_js_1.uri)({
|
28
66
|
contract: options.contract,
|
@@ -48,6 +86,8 @@ async function getNFT(options) {
|
|
48
86
|
type: "ERC1155",
|
49
87
|
owner: null,
|
50
88
|
supply,
|
89
|
+
tokenAddress: options.contract.address,
|
90
|
+
chainId: options.contract.chain.id,
|
51
91
|
});
|
52
92
|
}
|
53
93
|
//# sourceMappingURL=getNFT.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getNFT.js","sourceRoot":"","sources":["../../../../../src/extensions/erc1155/read/getNFT.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"getNFT.js","sourceRoot":"","sources":["../../../../../src/extensions/erc1155/read/getNFT.ts"],"names":[],"mappings":";;;AAmCA,wBAYC;AA/CD,8DAAuE;AAEvE,oFAA8E;AAC9E,gEAAoE;AACpE,kFAA4E;AAC5E,kEAA4D;AAC5D,gEAA4F;AAAnF,2GAAA,cAAc,OAAqB;AAe5C;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,MAAM,CAC1B,OAA6C;IAE7C,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAA6C;IAE7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAa,EAAC;QAC9B,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;QAC/B,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;QAC7B,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;QACzC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAA,sBAAQ,EACb;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,EAAE;SACR,EACD;YACE,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;YACtC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;SACnC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,OAA6C;IAE7C,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,IAAA,YAAG,EAAC;YACF,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;QACF,IAAA,4BAAW,EAAC;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,EAAE,EAAE,OAAO,CAAC,OAAO;YACnB,+DAA+D;SAChE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;KACnB,CAAC,CAAC;IACH,OAAO,IAAA,sBAAQ,EACb,MAAM,IAAA,0CAAkB,EAAC;QACvB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;QAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ;KACT,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACd,EAAE,EAAE,OAAO,CAAC,OAAO;QACnB,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,QAAQ;KACd,CAAC,CAAC,EACH;QACE,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ;QACR,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,IAAI;QACX,MAAM;QACN,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;QACtC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;KACnC,CACF,CAAC;AACJ,CAAC"}
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getNFTs = getNFTs;
|
4
4
|
exports.isGetNFTsSupported = isGetNFTsSupported;
|
5
5
|
const Solidity_1 = require("ox/Solidity");
|
6
|
+
const get_nfts_js_1 = require("../../../insight/get-nfts.js");
|
6
7
|
const bigint_js_1 = require("../../../utils/bigint.js");
|
7
8
|
const nextTokenIdToMint_js_1 = require("../__generated__/IERC1155Enumerable/read/nextTokenIdToMint.js");
|
8
9
|
const getNFT_js_1 = require("./getNFT.js");
|
@@ -23,6 +24,31 @@ const DEFAULT_QUERY_ALL_COUNT = 100n;
|
|
23
24
|
* ```
|
24
25
|
*/
|
25
26
|
async function getNFTs(options) {
|
27
|
+
const { useIndexer = true } = options;
|
28
|
+
if (useIndexer) {
|
29
|
+
try {
|
30
|
+
return await getNFTsFromInsight(options);
|
31
|
+
}
|
32
|
+
catch {
|
33
|
+
return await getNFTsFromRPC(options);
|
34
|
+
}
|
35
|
+
}
|
36
|
+
return await getNFTsFromRPC(options);
|
37
|
+
}
|
38
|
+
async function getNFTsFromInsight(options) {
|
39
|
+
const { contract, start, count = Number(DEFAULT_QUERY_ALL_COUNT) } = options;
|
40
|
+
const result = await (0, get_nfts_js_1.getContractNFTs)({
|
41
|
+
client: contract.client,
|
42
|
+
chains: [contract.chain],
|
43
|
+
contractAddress: contract.address,
|
44
|
+
queryOptions: {
|
45
|
+
limit: count,
|
46
|
+
page: start ? Math.floor(start / count) : undefined,
|
47
|
+
},
|
48
|
+
});
|
49
|
+
return result;
|
50
|
+
}
|
51
|
+
async function getNFTsFromRPC(options) {
|
26
52
|
const start = BigInt(options.start || 0);
|
27
53
|
const count = BigInt(options.count || DEFAULT_QUERY_ALL_COUNT);
|
28
54
|
// try to get the totalCount (non-standard) - if this fails then just use maxUint256
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc1155/read/getNFTs.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"getNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc1155/read/getNFTs.ts"],"names":[],"mappings":";;AAgDA,0BAYC;AAwDD,gDAKC;AAzHD,0CAAyC;AACzC,8DAA+D;AAE/D,wDAA+C;AAE/C,wGAGuE;AACvE,2CAAwD;AAExD,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAsBrC;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,OAAO,CAC3B,OAA8C;IAE9C,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAA8C;IAE9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,uBAAuB,CAAC,EAAE,GAAG,OAAO,CAAC;IAE7E,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAe,EAAC;QACnC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxB,eAAe,EAAE,QAAQ,CAAC,OAAO;QACjC,YAAY,EAAE;YACZ,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SACpD;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAA8C;IAE9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,uBAAuB,CAAC,CAAC;IAC/D,oFAAoF;IACpF,MAAM,UAAU,GAAG,MAAM,IAAA,wCAAiB,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,qBAAU,CAAC,CAAC;IAC5E,kGAAkG;IAClG,MAAM,KAAK,GAAG,IAAA,eAAG,EAAC,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAgC,EAAE,CAAC;IAEjD,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CACX,IAAA,kBAAM,EAAC;YACL,GAAG,OAAO;YACV,OAAO,EAAE,CAAC;SACX,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAAC,kBAA4B;IAC7D,OAAO,CACL,IAAA,6BAAiB,EAAC,kBAAkB,CAAC;QACrC,IAAA,mDAA4B,EAAC,kBAAkB,CAAC,CACjD,CAAC;AACJ,CAAC"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getOwnedNFTs = getOwnedNFTs;
|
4
|
+
const get_nfts_js_1 = require("../../../insight/get-nfts.js");
|
4
5
|
const getNFT_js_1 = require("./getNFT.js");
|
5
6
|
const getOwnedTokenIds_js_1 = require("./getOwnedTokenIds.js");
|
6
7
|
/**
|
@@ -20,6 +21,51 @@ const getOwnedTokenIds_js_1 = require("./getOwnedTokenIds.js");
|
|
20
21
|
* ```
|
21
22
|
*/
|
22
23
|
async function getOwnedNFTs(options) {
|
24
|
+
const { useIndexer = true } = options;
|
25
|
+
if (useIndexer) {
|
26
|
+
try {
|
27
|
+
return await getOwnedNFTsFromInsight(options);
|
28
|
+
}
|
29
|
+
catch {
|
30
|
+
return await getOwnedNFTsFromRPC(options);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
return await getOwnedNFTsFromRPC(options);
|
34
|
+
}
|
35
|
+
async function getOwnedNFTsFromInsight(options) {
|
36
|
+
const limit = 50;
|
37
|
+
const nfts = [];
|
38
|
+
let page = 0;
|
39
|
+
let hasMore = true;
|
40
|
+
// TODO (insight): add support for contract address filters
|
41
|
+
while (hasMore) {
|
42
|
+
const pageResults = await (0, get_nfts_js_1.getOwnedNFTs)({
|
43
|
+
client: options.contract.client,
|
44
|
+
chains: [options.contract.chain],
|
45
|
+
ownerAddress: options.address,
|
46
|
+
queryOptions: {
|
47
|
+
limit,
|
48
|
+
page,
|
49
|
+
},
|
50
|
+
});
|
51
|
+
nfts.push(...pageResults);
|
52
|
+
// If we got fewer results than the limit, we've reached the end
|
53
|
+
if (pageResults.length < limit) {
|
54
|
+
hasMore = false;
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
page++;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
const results = nfts;
|
61
|
+
return results
|
62
|
+
.filter((n) => n.tokenAddress.toLowerCase() === options.contract.address.toLowerCase())
|
63
|
+
.map((result) => ({
|
64
|
+
...result,
|
65
|
+
owner: options.address,
|
66
|
+
}));
|
67
|
+
}
|
68
|
+
async function getOwnedNFTsFromRPC(options) {
|
23
69
|
const ownedBalances = await (0, getOwnedTokenIds_js_1.getOwnedTokenIds)(options);
|
24
70
|
const nfts = await Promise.all(ownedBalances.map((ob) => (0, getNFT_js_1.getNFT)({ ...options, tokenId: ob.tokenId })));
|
25
71
|
return nfts.map((nft, index) => ({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getOwnedNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc1155/read/getOwnedNFTs.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"getOwnedNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc1155/read/getOwnedNFTs.ts"],"names":[],"mappings":";;AAoCA,oCAYC;AAhDD,8DAA8E;AAG9E,2CAAqC;AACrC,+DAG+B;AAa/B;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,YAAY,CAChC,OAAmD;IAEnD,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,OAAmD;IAEnD,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,IAAI,GAAwC,EAAE,CAAC;IACrD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,2DAA2D;IAC3D,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAc,EAAC;YACvC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YAC/B,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,YAAY,EAAE,OAAO,CAAC,OAAO;YAC7B,YAAY,EAAE;gBACZ,KAAK;gBACL,IAAI;aACL;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAE1B,gEAAgE;QAChE,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAC/B,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC;IAErB,OAAO,OAAO;SACX,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAC1E;SACA,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,MAAM;QACT,KAAK,EAAE,OAAO,CAAC,OAAO;KACvB,CAAC,CAAC,CAAC;AACR,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAmD;IAEnD,MAAM,aAAa,GAAG,MAAM,IAAA,sCAAgB,EAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,kBAAM,EAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CACvE,CAAC;IAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/B,GAAG,GAAG;QACN,KAAK,EAAE,OAAO,CAAC,OAAO;QACtB,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,EAAE;KACnD,CAAC,CAAC,CAAC;AACN,CAAC"}
|
@@ -25,6 +25,8 @@ async function getBalance(options) {
|
|
25
25
|
...currencyMetadata,
|
26
26
|
value: balanceWei,
|
27
27
|
displayValue: (0, units_js_1.toTokens)(balanceWei, currencyMetadata.decimals),
|
28
|
+
tokenAddress: options.contract.address,
|
29
|
+
chainId: options.contract.chain.id,
|
28
30
|
};
|
29
31
|
}
|
30
32
|
//# sourceMappingURL=getBalance.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../../src/extensions/erc20/read/getBalance.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../../src/extensions/erc20/read/getBalance.ts"],"names":[],"mappings":";;AAyCA,gCAcC;AAtDD,sDAAmD;AACnD,4EAAsE;AACtE,qEAA+D;AA0B/D;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,UAAU,CAC9B,OAAiD;IAEjD,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,IAAA,wBAAS,EAAC,OAAO,CAAC;QAClB,IAAA,4CAAmB,EAAC,OAAO,CAAC;KAC7B,CAAC,CAAC;IACH,OAAO;QACL,GAAG,gBAAgB;QACnB,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,IAAA,mBAAQ,EAAC,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QAC7D,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;QACtC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;KACnC,CAAC;AACJ,CAAC"}
|
@@ -8,6 +8,7 @@ const tokenURI_js_1 = require("../__generated__/IERC721A/read/tokenURI.js");
|
|
8
8
|
const tokenByIndex_js_1 = require("../__generated__/IERC721Enumerable/read/tokenByIndex.js");
|
9
9
|
var tokenURI_js_2 = require("../__generated__/IERC721A/read/tokenURI.js");
|
10
10
|
Object.defineProperty(exports, "isGetNFTSupported", { enumerable: true, get: function () { return tokenURI_js_2.isTokenURISupported; } });
|
11
|
+
const index_js_1 = require("../../../insight/index.js");
|
11
12
|
/**
|
12
13
|
* Retrieves information about a specific ERC721 non-fungible token (NFT).
|
13
14
|
* @param options - The options for retrieving the NFT.
|
@@ -35,6 +36,43 @@ Object.defineProperty(exports, "isGetNFTSupported", { enumerable: true, get: fun
|
|
35
36
|
* ```
|
36
37
|
*/
|
37
38
|
async function getNFT(options) {
|
39
|
+
const { useIndexer = true } = options;
|
40
|
+
if (useIndexer) {
|
41
|
+
try {
|
42
|
+
return await getNFTFromInsight(options);
|
43
|
+
}
|
44
|
+
catch {
|
45
|
+
return await getNFTFromRPC(options);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
return await getNFTFromRPC(options);
|
49
|
+
}
|
50
|
+
async function getNFTFromInsight(options) {
|
51
|
+
const tokenId = options.tokenId;
|
52
|
+
const nft = await (0, index_js_1.getNFT)({
|
53
|
+
client: options.contract.client,
|
54
|
+
chain: options.contract.chain,
|
55
|
+
contractAddress: options.contract.address,
|
56
|
+
tokenId: options.tokenId,
|
57
|
+
includeOwners: options.includeOwner,
|
58
|
+
});
|
59
|
+
if (!nft) {
|
60
|
+
return (0, parseNft_js_1.parseNFT)({
|
61
|
+
id: tokenId,
|
62
|
+
type: "ERC721",
|
63
|
+
uri: "",
|
64
|
+
}, {
|
65
|
+
tokenId,
|
66
|
+
tokenUri: "",
|
67
|
+
type: "ERC721",
|
68
|
+
owner: null,
|
69
|
+
tokenAddress: options.contract.address,
|
70
|
+
chainId: options.contract.chain.id,
|
71
|
+
});
|
72
|
+
}
|
73
|
+
return nft;
|
74
|
+
}
|
75
|
+
async function getNFTFromRPC(options) {
|
38
76
|
let tokenId = options.tokenId;
|
39
77
|
if (options.tokenByIndex) {
|
40
78
|
try {
|
@@ -62,6 +100,8 @@ async function getNFT(options) {
|
|
62
100
|
tokenUri: "",
|
63
101
|
type: "ERC721",
|
64
102
|
owner,
|
103
|
+
tokenAddress: options.contract.address,
|
104
|
+
chainId: options.contract.chain.id,
|
65
105
|
});
|
66
106
|
}
|
67
107
|
return (0, parseNft_js_1.parseNFT)(await (0, fetchTokenMetadata_js_1.fetchTokenMetadata)({
|
@@ -77,6 +117,8 @@ async function getNFT(options) {
|
|
77
117
|
tokenUri: uri,
|
78
118
|
type: "ERC721",
|
79
119
|
owner,
|
120
|
+
tokenAddress: options.contract.address,
|
121
|
+
chainId: options.contract.chain.id,
|
80
122
|
});
|
81
123
|
}
|
82
124
|
//# sourceMappingURL=getNFT.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getNFT.js","sourceRoot":"","sources":["../../../../../src/extensions/erc721/read/getNFT.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"getNFT.js","sourceRoot":"","sources":["../../../../../src/extensions/erc721/read/getNFT.ts"],"names":[],"mappings":"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"}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getNFTs = getNFTs;
|
4
4
|
exports.isGetNFTsSupported = isGetNFTsSupported;
|
5
|
+
const index_js_1 = require("../../../insight/index.js");
|
5
6
|
const bigint_js_1 = require("../../../utils/bigint.js");
|
6
7
|
const startTokenId_js_1 = require("../__generated__/IERC721A/read/startTokenId.js");
|
7
8
|
const totalSupply_js_1 = require("../__generated__/IERC721A/read/totalSupply.js");
|
@@ -25,6 +26,49 @@ const DEFAULT_QUERY_ALL_COUNT = 100n;
|
|
25
26
|
* ```
|
26
27
|
*/
|
27
28
|
async function getNFTs(options) {
|
29
|
+
const { useIndexer = true } = options;
|
30
|
+
if (useIndexer) {
|
31
|
+
try {
|
32
|
+
return await getNFTsFromInsight(options);
|
33
|
+
}
|
34
|
+
catch {
|
35
|
+
return await getNFTsFromRPC(options);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
return await getNFTsFromRPC(options);
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* Checks if the `getNFTs` method is supported by the given contract.
|
42
|
+
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
43
|
+
* @returns A boolean indicating if the `getNFTs` method is supported.
|
44
|
+
* @extension ERC721
|
45
|
+
* @example
|
46
|
+
* ```ts
|
47
|
+
* import { isGetNFTsSupported } from "thirdweb/extensions/erc721";
|
48
|
+
*
|
49
|
+
* const supported = isGetNFTsSupported(["0x..."]);
|
50
|
+
* ```
|
51
|
+
*/
|
52
|
+
function isGetNFTsSupported(availableSelectors) {
|
53
|
+
return ((0, getNFT_js_1.isGetNFTSupported)(availableSelectors) &&
|
54
|
+
((0, totalSupply_js_1.isTotalSupplySupported)(availableSelectors) ||
|
55
|
+
(0, nextTokenIdToMint_js_1.isNextTokenIdToMintSupported)(availableSelectors)));
|
56
|
+
}
|
57
|
+
async function getNFTsFromInsight(options) {
|
58
|
+
const { contract, start, count = Number(DEFAULT_QUERY_ALL_COUNT) } = options;
|
59
|
+
const result = await (0, index_js_1.getContractNFTs)({
|
60
|
+
client: contract.client,
|
61
|
+
chains: [contract.chain],
|
62
|
+
contractAddress: contract.address,
|
63
|
+
includeOwners: options.includeOwners ?? false,
|
64
|
+
queryOptions: {
|
65
|
+
limit: count,
|
66
|
+
page: start ? Math.floor(start / count) : undefined,
|
67
|
+
},
|
68
|
+
});
|
69
|
+
return result;
|
70
|
+
}
|
71
|
+
async function getNFTsFromRPC(options) {
|
28
72
|
const [startTokenId_, maxSupply] = await Promise.allSettled([
|
29
73
|
(0, startTokenId_js_1.startTokenId)(options),
|
30
74
|
(0, nextTokenIdToMint_js_1.nextTokenIdToMint)(options),
|
@@ -60,21 +104,4 @@ async function getNFTs(options) {
|
|
60
104
|
}
|
61
105
|
return await Promise.all(promises);
|
62
106
|
}
|
63
|
-
/**
|
64
|
-
* Checks if the `getNFTs` method is supported by the given contract.
|
65
|
-
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
66
|
-
* @returns A boolean indicating if the `getNFTs` method is supported.
|
67
|
-
* @extension ERC721
|
68
|
-
* @example
|
69
|
-
* ```ts
|
70
|
-
* import { isGetNFTsSupported } from "thirdweb/extensions/erc721";
|
71
|
-
*
|
72
|
-
* const supported = isGetNFTsSupported(["0x..."]);
|
73
|
-
* ```
|
74
|
-
*/
|
75
|
-
function isGetNFTsSupported(availableSelectors) {
|
76
|
-
return ((0, getNFT_js_1.isGetNFTSupported)(availableSelectors) &&
|
77
|
-
((0, totalSupply_js_1.isTotalSupplySupported)(availableSelectors) ||
|
78
|
-
(0, nextTokenIdToMint_js_1.isNextTokenIdToMintSupported)(availableSelectors)));
|
79
|
-
}
|
80
107
|
//# sourceMappingURL=getNFTs.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc721/read/getNFTs.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"getNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc721/read/getNFTs.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.getOwnedNFTs = getOwnedNFTs;
|
4
|
+
const index_js_1 = require("../../../insight/index.js");
|
4
5
|
const getNFT_js_1 = require("./getNFT.js");
|
5
6
|
const getOwnedTokenIds_js_1 = require("./getOwnedTokenIds.js");
|
6
7
|
/**
|
@@ -20,6 +21,18 @@ const getOwnedTokenIds_js_1 = require("./getOwnedTokenIds.js");
|
|
20
21
|
* ```
|
21
22
|
*/
|
22
23
|
async function getOwnedNFTs(options) {
|
24
|
+
const { useIndexer = true } = options;
|
25
|
+
if (useIndexer) {
|
26
|
+
try {
|
27
|
+
return await getOwnedNFTsFromInsight(options);
|
28
|
+
}
|
29
|
+
catch {
|
30
|
+
return await getOwnedNFTsFromRPC(options);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
return await getOwnedNFTsFromRPC(options);
|
34
|
+
}
|
35
|
+
async function getOwnedNFTsFromRPC(options) {
|
23
36
|
const tokenIds = await (0, getOwnedTokenIds_js_1.getOwnedTokenIds)(options);
|
24
37
|
return Promise.all(tokenIds.map((tokenId) => (0, getNFT_js_1.getNFT)({
|
25
38
|
contract: options.contract,
|
@@ -30,4 +43,37 @@ async function getOwnedNFTs(options) {
|
|
30
43
|
owner: options.owner,
|
31
44
|
}))));
|
32
45
|
}
|
46
|
+
async function getOwnedNFTsFromInsight(options) {
|
47
|
+
const limit = 50;
|
48
|
+
const nfts = [];
|
49
|
+
let page = 0;
|
50
|
+
let hasMore = true;
|
51
|
+
// TODO (insight): add support for contract address filters
|
52
|
+
while (hasMore) {
|
53
|
+
const pageResults = await (0, index_js_1.getOwnedNFTs)({
|
54
|
+
client: options.contract.client,
|
55
|
+
chains: [options.contract.chain],
|
56
|
+
ownerAddress: options.owner,
|
57
|
+
queryOptions: {
|
58
|
+
limit,
|
59
|
+
page,
|
60
|
+
},
|
61
|
+
});
|
62
|
+
nfts.push(...pageResults);
|
63
|
+
// If we got fewer results than the limit, we've reached the end
|
64
|
+
if (pageResults.length < limit) {
|
65
|
+
hasMore = false;
|
66
|
+
}
|
67
|
+
else {
|
68
|
+
page++;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
const results = nfts;
|
72
|
+
return results
|
73
|
+
.filter((n) => n.tokenAddress.toLowerCase() === options.contract.address.toLowerCase())
|
74
|
+
.map((result) => ({
|
75
|
+
...result,
|
76
|
+
owner: options.owner,
|
77
|
+
}));
|
78
|
+
}
|
33
79
|
//# sourceMappingURL=getOwnedNFTs.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getOwnedNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc721/read/getOwnedNFTs.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"getOwnedNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc721/read/getOwnedNFTs.ts"],"names":[],"mappings":";;AAgCA,oCAYC;AA5CD,wDAA2E;AAG3E,2CAAqC;AACrC,+DAG+B;AAS/B;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,YAAY,CAChC,OAAmD;IAEnD,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAmD;IAEnD,MAAM,QAAQ,GAAG,MAAM,IAAA,sCAAgB,EAAC,OAAO,CAAC,CAAC;IAEjD,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACvB,IAAA,kBAAM,EAAC;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO;KACR,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,GAAG;QACN,4CAA4C;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC,CACJ,CACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,OAAmD;IAEnD,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,2DAA2D;IAC3D,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAc,EAAC;YACvC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YAC/B,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChC,YAAY,EAAE,OAAO,CAAC,KAAK;YAC3B,YAAY,EAAE;gBACZ,KAAK;gBACL,IAAI;aACL;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAE1B,gEAAgE;QAChE,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YAC/B,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC;IAErB,OAAO,OAAO;SACX,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAC1E;SACA,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,MAAM;QACT,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC,CAAC;AACR,CAAC"}
|
@@ -20,12 +20,13 @@ async function mapDirectListing(options) {
|
|
20
20
|
startTimestamp: rawListing.startTimestamp,
|
21
21
|
endTimestamp: rawListing.endTimestamp,
|
22
22
|
});
|
23
|
+
const currencyContract = (0, contract_js_1.getContract)({
|
24
|
+
...options.contract,
|
25
|
+
address: rawListing.currency,
|
26
|
+
});
|
23
27
|
const [currencyValuePerToken, nftAsset] = await Promise.all([
|
24
28
|
(0, getCurrencyMetadata_js_1.getCurrencyMetadata)({
|
25
|
-
contract:
|
26
|
-
...options.contract,
|
27
|
-
address: rawListing.currency,
|
28
|
-
}),
|
29
|
+
contract: currencyContract,
|
29
30
|
}),
|
30
31
|
(0, utils_js_1.getNFTAsset)({
|
31
32
|
...options,
|
@@ -47,6 +48,8 @@ async function mapDirectListing(options) {
|
|
47
48
|
...currencyValuePerToken,
|
48
49
|
value: rawListing.pricePerToken,
|
49
50
|
displayValue: (0, units_js_1.toTokens)(rawListing.pricePerToken, currencyValuePerToken.decimals),
|
51
|
+
tokenAddress: currencyContract.address,
|
52
|
+
chainId: currencyContract.chain.id,
|
50
53
|
},
|
51
54
|
pricePerToken: rawListing.pricePerToken,
|
52
55
|
asset: nftAsset,
|