thirdweb 5.95.0-nightly-e7b01108037ebef07fba95f888be1905c8fab5df-20250417000348 → 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/extensions/erc1155/read/getNFT.js +38 -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/insight/get-nfts.js +67 -12
- package/dist/cjs/insight/get-nfts.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/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/esm/extensions/erc1155/read/getNFT.js +38 -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/insight/get-nfts.js +67 -12
- package/dist/esm/insight/get-nfts.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/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/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/insight/get-nfts.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/version.d.ts +1 -1
- package/dist/types/wallets/in-app/core/users/getUser.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/extensions/erc1155/read/getNFT.test.ts +11 -0
- package/src/extensions/erc1155/read/getNFT.ts +51 -1
- package/src/extensions/erc1155/read/getNFTs.ts +38 -0
- package/src/extensions/erc1155/read/getOwnedNFTs.ts +65 -2
- package/src/extensions/erc721/read/getNFT.test.ts +81 -83
- package/src/extensions/erc721/read/getNFTs.test.ts +189 -189
- package/src/insight/get-nfts.ts +112 -48
- package/src/rpc/fetch-rpc.ts +2 -20
- package/src/rpc/rpc.ts +5 -1
- 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
@@ -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,
|
@@ -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"}
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getOwnedNFTs = getOwnedNFTs;
|
4
4
|
exports.getContractNFTs = getContractNFTs;
|
5
5
|
exports.getNFT = getNFT;
|
6
|
+
const utils_js_1 = require("../chains/utils.js");
|
7
|
+
const contract_js_1 = require("../contract/contract.js");
|
6
8
|
/**
|
7
9
|
* Get NFTs owned by an address
|
8
10
|
* @example
|
@@ -45,7 +47,7 @@ async function getOwnedNFTs(args) {
|
|
45
47
|
if (result.error) {
|
46
48
|
throw new Error(`${result.response.status} ${result.response.statusText} - ${result.error ? stringify(result.error) : "Unknown error"}`);
|
47
49
|
}
|
48
|
-
const transformedNfts = await transformNFTModel(result.data?.data ?? [], ownerAddress);
|
50
|
+
const transformedNfts = await transformNFTModel(result.data?.data ?? [], client, ownerAddress);
|
49
51
|
return transformedNfts.map((nft) => ({
|
50
52
|
...nft,
|
51
53
|
quantityOwned: nft.quantityOwned ?? 1n,
|
@@ -95,7 +97,7 @@ async function getContractNFTs(args) {
|
|
95
97
|
if (result.error) {
|
96
98
|
throw new Error(`${result.response.status} ${result.response.statusText} - ${result.error ? stringify(result.error) : "Unknown error"}`);
|
97
99
|
}
|
98
|
-
return transformNFTModel(result.data?.data ?? []);
|
100
|
+
return transformNFTModel(result.data?.data ?? [], client);
|
99
101
|
}
|
100
102
|
/**
|
101
103
|
* Get NFT metadata by contract address and token id
|
@@ -141,34 +143,47 @@ async function getNFT(args) {
|
|
141
143
|
if (result.error) {
|
142
144
|
throw new Error(`${result.response.status} ${result.response.statusText} - ${result.error ? stringify(result.error) : "Unknown error"}`);
|
143
145
|
}
|
144
|
-
const transformedNfts = await transformNFTModel(result.data?.data ?? []);
|
146
|
+
const transformedNfts = await transformNFTModel(result.data?.data ?? [], client);
|
145
147
|
return transformedNfts?.[0];
|
146
148
|
}
|
147
|
-
async function transformNFTModel(nfts, ownerAddress) {
|
148
|
-
const { parseNFT } = await Promise.
|
149
|
-
|
149
|
+
async function transformNFTModel(nfts, client, ownerAddress) {
|
150
|
+
const [{ parseNFT }, { totalSupply }] = await Promise.all([
|
151
|
+
Promise.resolve().then(() => require("../utils/nft/parseNft.js")),
|
152
|
+
Promise.resolve().then(() => require("../extensions/erc1155/__generated__/IERC1155/read/totalSupply.js")),
|
153
|
+
]);
|
154
|
+
return await Promise.all(nfts.map(async (nft) => {
|
150
155
|
let parsedNft;
|
151
156
|
const { contract, extra_metadata, collection, metadata_url, chain_id, token_id, status, balance, token_type, ...rest } = nft;
|
152
|
-
const metadata = {
|
157
|
+
const metadata = replaceIPFSGatewayRecursively({
|
153
158
|
uri: nft.metadata_url ?? "",
|
154
159
|
image: nft.image_url,
|
155
160
|
attributes: nft.extra_metadata?.attributes ?? undefined,
|
156
161
|
...rest,
|
157
|
-
};
|
162
|
+
});
|
163
|
+
// replace the ipfs gateway with the ipfs gateway from the client recusively for each key in the metadata object
|
158
164
|
const owner_addresses = ownerAddress
|
159
165
|
? [ownerAddress]
|
160
166
|
: "owner_addresses" in nft
|
161
167
|
? nft.owner_addresses
|
162
168
|
: undefined;
|
163
169
|
if (contract?.type === "erc1155") {
|
170
|
+
// TODO (insight): this needs to be added in the API
|
171
|
+
const supply = await totalSupply({
|
172
|
+
contract: (0, contract_js_1.getContract)({
|
173
|
+
address: contract.address,
|
174
|
+
chain: (0, utils_js_1.getCachedChain)(contract.chain_id),
|
175
|
+
client: client,
|
176
|
+
}),
|
177
|
+
id: BigInt(token_id),
|
178
|
+
});
|
164
179
|
parsedNft = parseNFT(metadata, {
|
165
180
|
tokenId: BigInt(token_id),
|
166
|
-
tokenUri: metadata_url ?? "",
|
181
|
+
tokenUri: replaceIPFSGateway(metadata_url) ?? "",
|
167
182
|
type: "ERC1155",
|
168
183
|
owner: owner_addresses?.[0],
|
169
184
|
tokenAddress: contract?.address ?? "",
|
170
185
|
chainId: contract?.chain_id ?? 0,
|
171
|
-
supply:
|
186
|
+
supply: supply,
|
172
187
|
});
|
173
188
|
}
|
174
189
|
else {
|
@@ -176,12 +191,52 @@ async function transformNFTModel(nfts, ownerAddress) {
|
|
176
191
|
tokenId: BigInt(token_id),
|
177
192
|
type: "ERC721",
|
178
193
|
owner: owner_addresses?.[0],
|
179
|
-
tokenUri: metadata_url ?? "",
|
194
|
+
tokenUri: replaceIPFSGateway(metadata_url) ?? "",
|
180
195
|
tokenAddress: contract?.address ?? "",
|
181
196
|
chainId: contract?.chain_id ?? 0,
|
182
197
|
});
|
183
198
|
}
|
184
199
|
return parsedNft;
|
185
|
-
});
|
200
|
+
}));
|
201
|
+
}
|
202
|
+
// biome-ignore lint/suspicious/noExplicitAny: this should be fixed in the API
|
203
|
+
function replaceIPFSGatewayRecursively(obj) {
|
204
|
+
if (typeof obj !== "object" || obj === null) {
|
205
|
+
return obj;
|
206
|
+
}
|
207
|
+
for (const key in obj) {
|
208
|
+
if (typeof obj[key] === "string") {
|
209
|
+
obj[key] = replaceIPFSGateway(obj[key]);
|
210
|
+
}
|
211
|
+
else {
|
212
|
+
replaceIPFSGatewayRecursively(obj[key]);
|
213
|
+
}
|
214
|
+
}
|
215
|
+
return obj;
|
216
|
+
}
|
217
|
+
function replaceIPFSGateway(url) {
|
218
|
+
if (!url || typeof url !== "string") {
|
219
|
+
return url;
|
220
|
+
}
|
221
|
+
try {
|
222
|
+
const parsedUrl = new URL(url);
|
223
|
+
if (parsedUrl.host.endsWith(".ipfscdn.io")) {
|
224
|
+
const paths = parsedUrl.pathname.split("/");
|
225
|
+
const index = paths.findIndex((path) => path === "ipfs");
|
226
|
+
if (index === -1) {
|
227
|
+
return url;
|
228
|
+
}
|
229
|
+
const ipfsHash = paths.slice(index + 1).join("/");
|
230
|
+
if (ipfsHash) {
|
231
|
+
return `ipfs://${ipfsHash}`;
|
232
|
+
}
|
233
|
+
return url;
|
234
|
+
}
|
235
|
+
}
|
236
|
+
catch {
|
237
|
+
// If the URL is invalid, return it as is
|
238
|
+
return url;
|
239
|
+
}
|
240
|
+
return url;
|
186
241
|
}
|
187
242
|
//# sourceMappingURL=get-nfts.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-nfts.js","sourceRoot":"","sources":["../../../src/insight/get-nfts.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"get-nfts.js","sourceRoot":"","sources":["../../../src/insight/get-nfts.ts"],"names":[],"mappings":"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"}
|
@@ -22,17 +22,7 @@ async function fetchRpc(rpcUrl, client, options) {
|
|
22
22
|
const error = await response.text().catch(() => null);
|
23
23
|
throw new Error(`RPC request failed with status ${response.status} - ${response.statusText}: ${error || "unknown error"}`);
|
24
24
|
}
|
25
|
-
|
26
|
-
return await response.json();
|
27
|
-
}
|
28
|
-
const text = await response.text();
|
29
|
-
try {
|
30
|
-
return JSON.parse(text);
|
31
|
-
}
|
32
|
-
catch (err) {
|
33
|
-
console.error("Error parsing response", err, text);
|
34
|
-
throw err;
|
35
|
-
}
|
25
|
+
return await response.json();
|
36
26
|
}
|
37
27
|
/**
|
38
28
|
* @internal
|
@@ -52,16 +42,6 @@ async function fetchSingleRpc(rpcUrl, client, options) {
|
|
52
42
|
const error = await response.text().catch(() => null);
|
53
43
|
throw new Error(`RPC request failed with status ${response.status} - ${response.statusText}: ${error || "unknown error"}`);
|
54
44
|
}
|
55
|
-
|
56
|
-
return await response.json();
|
57
|
-
}
|
58
|
-
const text = await response.text();
|
59
|
-
try {
|
60
|
-
return JSON.parse(text);
|
61
|
-
}
|
62
|
-
catch (err) {
|
63
|
-
console.error("Error parsing response", err, text);
|
64
|
-
throw err;
|
65
|
-
}
|
45
|
+
return await response.json();
|
66
46
|
}
|
67
47
|
//# sourceMappingURL=fetch-rpc.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fetch-rpc.js","sourceRoot":"","sources":["../../../src/rpc/fetch-rpc.ts"],"names":[],"mappings":";;AAwDA,
|
1
|
+
{"version":3,"file":"fetch-rpc.js","sourceRoot":"","sources":["../../../src/rpc/fetch-rpc.ts"],"names":[],"mappings":";;AAwDA,4BAyBC;AAUD,wCAwBC;AAlHD,gDAAmD;AACnD,8CAA6C;AAmD7C;;GAEG;AACI,KAAK,UAAU,QAAQ,CAC5B,MAAc,EACd,MAAsB,EACtB,OAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC,MAAM,EAAE;QACpD,OAAO,EAAE;YACP,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO;YACrC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAA,mBAAS,EAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,MAAM,EAAE,MAAM;QACd,gBAAgB,EACd,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB;QACzE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS;KAChD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,KAAK,KAAK,IAAI,eAAe,EAAE,CAC1G,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAOD;;GAEG;AACI,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAsB,EACtB,OAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC,MAAM,EAAE;QACpD,OAAO,EAAE;YACP,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;YAC7C,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAA,mBAAS,EAAC,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,EAAE,MAAM;QACd,gBAAgB,EACd,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB;QACzE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS;KAChD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,KAAK,KAAK,IAAI,eAAe,EAAE,CAC1G,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC"}
|
package/dist/cjs/rpc/rpc.js
CHANGED
@@ -105,7 +105,7 @@ function getRpcClient(options) {
|
|
105
105
|
const response = responses[index];
|
106
106
|
// No response.
|
107
107
|
if (!response) {
|
108
|
-
inflight.reject(new Error(
|
108
|
+
inflight.reject(new Error(`No response for index ${index} - all responses: ${(0, json_js_1.stringify)(responses)}`));
|
109
109
|
}
|
110
110
|
// Response is an error or error string.
|
111
111
|
else if (response instanceof Error) {
|
package/dist/cjs/rpc/rpc.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/rpc/rpc.ts"],"names":[],"mappings":";;AA4DA,
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/rpc/rpc.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/version.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.version = void 0;
|
4
|
-
exports.version = "5.95.0-nightly-
|
4
|
+
exports.version = "5.95.0-nightly-4cf15a2475fce1c5b55d19f7cf51ab080e80e33f-20250418000341";
|
5
5
|
//# sourceMappingURL=version.js.map
|
@@ -58,7 +58,8 @@ async function getUser({ client, walletAddress, email, phone, id, externalWallet
|
|
58
58
|
const clientFetch = (0, fetch_js_1.getClientFetch)(client, ecosystem);
|
59
59
|
const res = await clientFetch(url.toString());
|
60
60
|
if (!res.ok) {
|
61
|
-
|
61
|
+
const error = await res.text().catch(() => "Unknown error");
|
62
|
+
throw new Error(`Failed to get profiles. ${res.status} ${res.statusText}: ${error}`);
|
62
63
|
}
|
63
64
|
const data = (await res.json());
|
64
65
|
return (data.map((item) => ({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getUser.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/users/getUser.ts"],"names":[],"mappings":";;AAyCA,
|
1
|
+
{"version":3,"file":"getUser.js","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/users/getUser.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { getNFT as getNFTInsight } from "../../../insight/get-nfts.js";
|
1
2
|
import { fetchTokenMetadata } from "../../../utils/nft/fetchTokenMetadata.js";
|
2
3
|
import { parseNFT } from "../../../utils/nft/parseNft.js";
|
3
4
|
import { totalSupply } from "../__generated__/IERC1155/read/totalSupply.js";
|
@@ -18,6 +19,43 @@ export { isUriSupported as isGetNFTSupported } from "../__generated__/IERC1155/r
|
|
18
19
|
* ```
|
19
20
|
*/
|
20
21
|
export async function getNFT(options) {
|
22
|
+
const { useIndexer = true } = options;
|
23
|
+
if (useIndexer) {
|
24
|
+
try {
|
25
|
+
return await getNFTFromInsight(options);
|
26
|
+
}
|
27
|
+
catch {
|
28
|
+
return await getNFTFromRPC(options);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
return await getNFTFromRPC(options);
|
32
|
+
}
|
33
|
+
async function getNFTFromInsight(options) {
|
34
|
+
const tokenId = options.tokenId;
|
35
|
+
const nft = await getNFTInsight({
|
36
|
+
client: options.contract.client,
|
37
|
+
chain: options.contract.chain,
|
38
|
+
contractAddress: options.contract.address,
|
39
|
+
tokenId: options.tokenId,
|
40
|
+
});
|
41
|
+
if (!nft) {
|
42
|
+
return parseNFT({
|
43
|
+
id: tokenId,
|
44
|
+
type: "ERC1155",
|
45
|
+
uri: "",
|
46
|
+
}, {
|
47
|
+
tokenId: options.tokenId,
|
48
|
+
tokenUri: "",
|
49
|
+
type: "ERC1155",
|
50
|
+
owner: null,
|
51
|
+
supply: 0n,
|
52
|
+
tokenAddress: options.contract.address,
|
53
|
+
chainId: options.contract.chain.id,
|
54
|
+
});
|
55
|
+
}
|
56
|
+
return nft;
|
57
|
+
}
|
58
|
+
async function getNFTFromRPC(options) {
|
21
59
|
const [tokenUri, supply] = await Promise.all([
|
22
60
|
uri({
|
23
61
|
contract: options.contract,
|
@@ -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":"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"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { maxUint256 } from "ox/Solidity";
|
2
|
+
import { getContractNFTs } from "../../../insight/get-nfts.js";
|
2
3
|
import { min } from "../../../utils/bigint.js";
|
3
4
|
import { isNextTokenIdToMintSupported, nextTokenIdToMint, } from "../__generated__/IERC1155Enumerable/read/nextTokenIdToMint.js";
|
4
5
|
import { getNFT, isGetNFTSupported } from "./getNFT.js";
|
@@ -19,6 +20,31 @@ const DEFAULT_QUERY_ALL_COUNT = 100n;
|
|
19
20
|
* ```
|
20
21
|
*/
|
21
22
|
export async function getNFTs(options) {
|
23
|
+
const { useIndexer = true } = options;
|
24
|
+
if (useIndexer) {
|
25
|
+
try {
|
26
|
+
return await getNFTsFromInsight(options);
|
27
|
+
}
|
28
|
+
catch {
|
29
|
+
return await getNFTsFromRPC(options);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
return await getNFTsFromRPC(options);
|
33
|
+
}
|
34
|
+
async function getNFTsFromInsight(options) {
|
35
|
+
const { contract, start, count = Number(DEFAULT_QUERY_ALL_COUNT) } = options;
|
36
|
+
const result = await getContractNFTs({
|
37
|
+
client: contract.client,
|
38
|
+
chains: [contract.chain],
|
39
|
+
contractAddress: contract.address,
|
40
|
+
queryOptions: {
|
41
|
+
limit: count,
|
42
|
+
page: start ? Math.floor(start / count) : undefined,
|
43
|
+
},
|
44
|
+
});
|
45
|
+
return result;
|
46
|
+
}
|
47
|
+
async function getNFTsFromRPC(options) {
|
22
48
|
const start = BigInt(options.start || 0);
|
23
49
|
const count = BigInt(options.count || DEFAULT_QUERY_ALL_COUNT);
|
24
50
|
// 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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"getNFTs.js","sourceRoot":"","sources":["../../../../../src/extensions/erc1155/read/getNFTs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE/C,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,+DAA+D,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAsBrC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,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,eAAe,CAAC;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,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;IAC5E,kGAAkG;IAClG,MAAM,KAAK,GAAG,GAAG,CAAC,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,MAAM,CAAC;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,MAAM,UAAU,kBAAkB,CAAC,kBAA4B;IAC7D,OAAO,CACL,iBAAiB,CAAC,kBAAkB,CAAC;QACrC,4BAA4B,CAAC,kBAAkB,CAAC,CACjD,CAAC;AACJ,CAAC"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { getOwnedNFTs as getInsightNFTs } from "../../../insight/get-nfts.js";
|
1
2
|
import { getNFT } from "./getNFT.js";
|
2
3
|
import { getOwnedTokenIds, } from "./getOwnedTokenIds.js";
|
3
4
|
/**
|
@@ -17,6 +18,51 @@ import { getOwnedTokenIds, } from "./getOwnedTokenIds.js";
|
|
17
18
|
* ```
|
18
19
|
*/
|
19
20
|
export async function getOwnedNFTs(options) {
|
21
|
+
const { useIndexer = true } = options;
|
22
|
+
if (useIndexer) {
|
23
|
+
try {
|
24
|
+
return await getOwnedNFTsFromInsight(options);
|
25
|
+
}
|
26
|
+
catch {
|
27
|
+
return await getOwnedNFTsFromRPC(options);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
return await getOwnedNFTsFromRPC(options);
|
31
|
+
}
|
32
|
+
async function getOwnedNFTsFromInsight(options) {
|
33
|
+
const limit = 50;
|
34
|
+
const nfts = [];
|
35
|
+
let page = 0;
|
36
|
+
let hasMore = true;
|
37
|
+
// TODO (insight): add support for contract address filters
|
38
|
+
while (hasMore) {
|
39
|
+
const pageResults = await getInsightNFTs({
|
40
|
+
client: options.contract.client,
|
41
|
+
chains: [options.contract.chain],
|
42
|
+
ownerAddress: options.address,
|
43
|
+
queryOptions: {
|
44
|
+
limit,
|
45
|
+
page,
|
46
|
+
},
|
47
|
+
});
|
48
|
+
nfts.push(...pageResults);
|
49
|
+
// If we got fewer results than the limit, we've reached the end
|
50
|
+
if (pageResults.length < limit) {
|
51
|
+
hasMore = false;
|
52
|
+
}
|
53
|
+
else {
|
54
|
+
page++;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
const results = nfts;
|
58
|
+
return results
|
59
|
+
.filter((n) => n.tokenAddress.toLowerCase() === options.contract.address.toLowerCase())
|
60
|
+
.map((result) => ({
|
61
|
+
...result,
|
62
|
+
owner: options.address,
|
63
|
+
}));
|
64
|
+
}
|
65
|
+
async function getOwnedNFTsFromRPC(options) {
|
20
66
|
const ownedBalances = await getOwnedTokenIds(options);
|
21
67
|
const nfts = await Promise.all(ownedBalances.map((ob) => getNFT({ ...options, tokenId: ob.tokenId })));
|
22
68
|
return nfts.map((nft, index) => ({
|