@xyo-network/crypto-nft-witness-wallet-plugin 2.78.3 → 2.78.5

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.
Files changed (151) hide show
  1. package/dist/browser/Plugin.d.cts +2 -1
  2. package/dist/browser/Plugin.d.cts.map +1 -1
  3. package/dist/browser/Plugin.d.mts +2 -1
  4. package/dist/browser/Plugin.d.mts.map +1 -1
  5. package/dist/browser/Plugin.d.ts +2 -1
  6. package/dist/browser/Plugin.d.ts.map +1 -1
  7. package/dist/browser/Witness.d.cts +4 -3
  8. package/dist/browser/Witness.d.cts.map +1 -1
  9. package/dist/browser/Witness.d.mts +4 -3
  10. package/dist/browser/Witness.d.mts.map +1 -1
  11. package/dist/browser/Witness.d.ts +4 -3
  12. package/dist/browser/Witness.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +148 -105
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +150 -107
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/browser/lib/contractHasFunctions.d.cts +4 -0
  18. package/dist/browser/lib/contractHasFunctions.d.cts.map +1 -0
  19. package/dist/browser/lib/contractHasFunctions.d.mts +4 -0
  20. package/dist/browser/lib/contractHasFunctions.d.mts.map +1 -0
  21. package/dist/browser/lib/contractHasFunctions.d.ts +4 -0
  22. package/dist/browser/lib/contractHasFunctions.d.ts.map +1 -0
  23. package/dist/browser/lib/getAssetsFromWallet.d.cts +13 -0
  24. package/dist/browser/lib/getAssetsFromWallet.d.cts.map +1 -0
  25. package/dist/browser/lib/getAssetsFromWallet.d.mts +13 -0
  26. package/dist/browser/lib/getAssetsFromWallet.d.mts.map +1 -0
  27. package/dist/browser/lib/getAssetsFromWallet.d.ts +13 -0
  28. package/dist/browser/lib/getAssetsFromWallet.d.ts.map +1 -0
  29. package/dist/browser/lib/getAssetsFromWalletFromOpenSea.d.cts +17 -0
  30. package/dist/browser/lib/getAssetsFromWalletFromOpenSea.d.cts.map +1 -0
  31. package/dist/browser/lib/getAssetsFromWalletFromOpenSea.d.mts +17 -0
  32. package/dist/browser/lib/getAssetsFromWalletFromOpenSea.d.mts.map +1 -0
  33. package/dist/browser/lib/getAssetsFromWalletFromOpenSea.d.ts +17 -0
  34. package/dist/browser/lib/getAssetsFromWalletFromOpenSea.d.ts.map +1 -0
  35. package/dist/browser/lib/getNftMetadata.d.cts +2 -2
  36. package/dist/browser/lib/getNftMetadata.d.cts.map +1 -1
  37. package/dist/browser/lib/getNftMetadata.d.mts +2 -2
  38. package/dist/browser/lib/getNftMetadata.d.mts.map +1 -1
  39. package/dist/browser/lib/getNftMetadata.d.ts +2 -2
  40. package/dist/browser/lib/getNftMetadata.d.ts.map +1 -1
  41. package/dist/browser/lib/getNftsOwnedByAddress.d.cts +5 -3
  42. package/dist/browser/lib/getNftsOwnedByAddress.d.cts.map +1 -1
  43. package/dist/browser/lib/getNftsOwnedByAddress.d.mts +5 -3
  44. package/dist/browser/lib/getNftsOwnedByAddress.d.mts.map +1 -1
  45. package/dist/browser/lib/getNftsOwnedByAddress.d.ts +5 -3
  46. package/dist/browser/lib/getNftsOwnedByAddress.d.ts.map +1 -1
  47. package/dist/browser/lib/getProvider.d.cts +3 -2
  48. package/dist/browser/lib/getProvider.d.cts.map +1 -1
  49. package/dist/browser/lib/getProvider.d.mts +3 -2
  50. package/dist/browser/lib/getProvider.d.mts.map +1 -1
  51. package/dist/browser/lib/getProvider.d.ts +3 -2
  52. package/dist/browser/lib/getProvider.d.ts.map +1 -1
  53. package/dist/browser/lib/index.d.cts +1 -0
  54. package/dist/browser/lib/index.d.cts.map +1 -1
  55. package/dist/browser/lib/index.d.mts +1 -0
  56. package/dist/browser/lib/index.d.mts.map +1 -1
  57. package/dist/browser/lib/index.d.ts +1 -0
  58. package/dist/browser/lib/index.d.ts.map +1 -1
  59. package/dist/browser/lib/tokenTypes.d.cts +4 -6
  60. package/dist/browser/lib/tokenTypes.d.cts.map +1 -1
  61. package/dist/browser/lib/tokenTypes.d.mts +4 -6
  62. package/dist/browser/lib/tokenTypes.d.mts.map +1 -1
  63. package/dist/browser/lib/tokenTypes.d.ts +4 -6
  64. package/dist/browser/lib/tokenTypes.d.ts.map +1 -1
  65. package/dist/browser/lib/tryCall.d.cts +2 -0
  66. package/dist/browser/lib/tryCall.d.cts.map +1 -0
  67. package/dist/browser/lib/tryCall.d.mts +2 -0
  68. package/dist/browser/lib/tryCall.d.mts.map +1 -0
  69. package/dist/browser/lib/tryCall.d.ts +2 -0
  70. package/dist/browser/lib/tryCall.d.ts.map +1 -0
  71. package/dist/node/Plugin.d.cts +2 -1
  72. package/dist/node/Plugin.d.cts.map +1 -1
  73. package/dist/node/Plugin.d.mts +2 -1
  74. package/dist/node/Plugin.d.mts.map +1 -1
  75. package/dist/node/Plugin.d.ts +2 -1
  76. package/dist/node/Plugin.d.ts.map +1 -1
  77. package/dist/node/Witness.d.cts +4 -3
  78. package/dist/node/Witness.d.cts.map +1 -1
  79. package/dist/node/Witness.d.mts +4 -3
  80. package/dist/node/Witness.d.mts.map +1 -1
  81. package/dist/node/Witness.d.ts +4 -3
  82. package/dist/node/Witness.d.ts.map +1 -1
  83. package/dist/node/index.js +152 -107
  84. package/dist/node/index.js.map +1 -1
  85. package/dist/node/index.mjs +150 -108
  86. package/dist/node/index.mjs.map +1 -1
  87. package/dist/node/lib/contractHasFunctions.d.cts +4 -0
  88. package/dist/node/lib/contractHasFunctions.d.cts.map +1 -0
  89. package/dist/node/lib/contractHasFunctions.d.mts +4 -0
  90. package/dist/node/lib/contractHasFunctions.d.mts.map +1 -0
  91. package/dist/node/lib/contractHasFunctions.d.ts +4 -0
  92. package/dist/node/lib/contractHasFunctions.d.ts.map +1 -0
  93. package/dist/node/lib/getAssetsFromWallet.d.cts +13 -0
  94. package/dist/node/lib/getAssetsFromWallet.d.cts.map +1 -0
  95. package/dist/node/lib/getAssetsFromWallet.d.mts +13 -0
  96. package/dist/node/lib/getAssetsFromWallet.d.mts.map +1 -0
  97. package/dist/node/lib/getAssetsFromWallet.d.ts +13 -0
  98. package/dist/node/lib/getAssetsFromWallet.d.ts.map +1 -0
  99. package/dist/node/lib/getAssetsFromWalletFromOpenSea.d.cts +17 -0
  100. package/dist/node/lib/getAssetsFromWalletFromOpenSea.d.cts.map +1 -0
  101. package/dist/node/lib/getAssetsFromWalletFromOpenSea.d.mts +17 -0
  102. package/dist/node/lib/getAssetsFromWalletFromOpenSea.d.mts.map +1 -0
  103. package/dist/node/lib/getAssetsFromWalletFromOpenSea.d.ts +17 -0
  104. package/dist/node/lib/getAssetsFromWalletFromOpenSea.d.ts.map +1 -0
  105. package/dist/node/lib/getNftMetadata.d.cts +2 -2
  106. package/dist/node/lib/getNftMetadata.d.cts.map +1 -1
  107. package/dist/node/lib/getNftMetadata.d.mts +2 -2
  108. package/dist/node/lib/getNftMetadata.d.mts.map +1 -1
  109. package/dist/node/lib/getNftMetadata.d.ts +2 -2
  110. package/dist/node/lib/getNftMetadata.d.ts.map +1 -1
  111. package/dist/node/lib/getNftsOwnedByAddress.d.cts +5 -3
  112. package/dist/node/lib/getNftsOwnedByAddress.d.cts.map +1 -1
  113. package/dist/node/lib/getNftsOwnedByAddress.d.mts +5 -3
  114. package/dist/node/lib/getNftsOwnedByAddress.d.mts.map +1 -1
  115. package/dist/node/lib/getNftsOwnedByAddress.d.ts +5 -3
  116. package/dist/node/lib/getNftsOwnedByAddress.d.ts.map +1 -1
  117. package/dist/node/lib/getProvider.d.cts +3 -2
  118. package/dist/node/lib/getProvider.d.cts.map +1 -1
  119. package/dist/node/lib/getProvider.d.mts +3 -2
  120. package/dist/node/lib/getProvider.d.mts.map +1 -1
  121. package/dist/node/lib/getProvider.d.ts +3 -2
  122. package/dist/node/lib/getProvider.d.ts.map +1 -1
  123. package/dist/node/lib/index.d.cts +1 -0
  124. package/dist/node/lib/index.d.cts.map +1 -1
  125. package/dist/node/lib/index.d.mts +1 -0
  126. package/dist/node/lib/index.d.mts.map +1 -1
  127. package/dist/node/lib/index.d.ts +1 -0
  128. package/dist/node/lib/index.d.ts.map +1 -1
  129. package/dist/node/lib/tokenTypes.d.cts +4 -6
  130. package/dist/node/lib/tokenTypes.d.cts.map +1 -1
  131. package/dist/node/lib/tokenTypes.d.mts +4 -6
  132. package/dist/node/lib/tokenTypes.d.mts.map +1 -1
  133. package/dist/node/lib/tokenTypes.d.ts +4 -6
  134. package/dist/node/lib/tokenTypes.d.ts.map +1 -1
  135. package/dist/node/lib/tryCall.d.cts +2 -0
  136. package/dist/node/lib/tryCall.d.cts.map +1 -0
  137. package/dist/node/lib/tryCall.d.mts +2 -0
  138. package/dist/node/lib/tryCall.d.mts.map +1 -0
  139. package/dist/node/lib/tryCall.d.ts +2 -0
  140. package/dist/node/lib/tryCall.d.ts.map +1 -0
  141. package/package.json +15 -14
  142. package/src/Witness.ts +37 -25
  143. package/src/lib/contractHasFunctions.ts +20 -0
  144. package/src/lib/getAssetsFromWallet.ts +56 -0
  145. package/src/lib/getAssetsFromWalletFromOpenSea.ts +27 -0
  146. package/src/lib/getNftMetadata.ts +4 -4
  147. package/src/lib/getNftsOwnedByAddress.ts +64 -68
  148. package/src/lib/getProvider.ts +19 -7
  149. package/src/lib/index.ts +1 -0
  150. package/src/lib/tokenTypes.ts +8 -19
  151. package/src/lib/tryCall.ts +11 -0
@@ -41,6 +41,7 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
41
41
  }) | undefined;
42
42
  } & {
43
43
  address?: string | undefined;
44
+ loadMetadata?: boolean | undefined;
44
45
  schema: "network.xyo.crypto.nft.witness.config";
45
46
  timeout?: number | undefined;
46
47
  }, "schema"> & {
@@ -53,6 +54,6 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
53
54
  ephemeralQueryAccountEnabled?: boolean | undefined;
54
55
  wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
55
56
  } & {
56
- provider: import("@ethersproject/abstract-provider").Provider;
57
+ provider: import("@ethersproject/providers").JsonRpcProvider | import("@ethersproject/providers").WebSocketProvider;
57
58
  }>>;
58
59
  //# sourceMappingURL=Plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAStC,CAAA"}
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAStC,CAAA"}
@@ -41,6 +41,7 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
41
41
  }) | undefined;
42
42
  } & {
43
43
  address?: string | undefined;
44
+ loadMetadata?: boolean | undefined;
44
45
  schema: "network.xyo.crypto.nft.witness.config";
45
46
  timeout?: number | undefined;
46
47
  }, "schema"> & {
@@ -53,6 +54,6 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
53
54
  ephemeralQueryAccountEnabled?: boolean | undefined;
54
55
  wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
55
56
  } & {
56
- provider: import("@ethersproject/abstract-provider").Provider;
57
+ provider: import("@ethersproject/providers").JsonRpcProvider | import("@ethersproject/providers").WebSocketProvider;
57
58
  }>>;
58
59
  //# sourceMappingURL=Plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAStC,CAAA"}
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAStC,CAAA"}
@@ -41,6 +41,7 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
41
41
  }) | undefined;
42
42
  } & {
43
43
  address?: string | undefined;
44
+ loadMetadata?: boolean | undefined;
44
45
  schema: "network.xyo.crypto.nft.witness.config";
45
46
  timeout?: number | undefined;
46
47
  }, "schema"> & {
@@ -53,6 +54,6 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
53
54
  ephemeralQueryAccountEnabled?: boolean | undefined;
54
55
  wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
55
56
  } & {
56
- provider: import("@ethersproject/abstract-provider").Provider;
57
+ provider: import("@ethersproject/providers").JsonRpcProvider | import("@ethersproject/providers").WebSocketProvider;
57
58
  }>>;
58
59
  //# sourceMappingURL=Plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAStC,CAAA"}
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAStC,CAAA"}
@@ -1,14 +1,15 @@
1
- import { Provider } from '@ethersproject/providers';
1
+ import { JsonRpcProvider, WebSocketProvider } from '@ethersproject/providers';
2
2
  import { AbstractWitness } from '@xyo-network/abstract-witness';
3
3
  import { CryptoWalletNftWitnessConfig, NftInfo, NftWitnessQuery } from '@xyo-network/crypto-nft-payload-plugin';
4
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
5
5
  import { WitnessParams } from '@xyo-network/witness-model';
6
6
  export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>, {
7
- provider: Provider;
7
+ provider: JsonRpcProvider | WebSocketProvider;
8
8
  }>;
9
9
  export declare class CryptoWalletNftWitness<TParams extends CryptoWalletNftWitnessParams = CryptoWalletNftWitnessParams> extends AbstractWitness<TParams, NftWitnessQuery, NftInfo> {
10
10
  static configSchemas: "network.xyo.crypto.nft.witness.config"[];
11
- get provider(): Provider;
11
+ get loadMetadata(): boolean;
12
+ get provider(): JsonRpcProvider | WebSocketProvider;
12
13
  get timeout(): number;
13
14
  protected observeHandler(payloads?: NftWitnessQuery[]): Promise<NftInfo[]>;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,4BAA4B,EAE5B,OAAO,EAGP,eAAe,EAChB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAI1D,MAAM,MAAM,4BAA4B,GAAG,aAAa,CACtD,eAAe,CAAC,4BAA4B,CAAC,EAC7C;IACE,QAAQ,EAAE,QAAQ,CAAA;CACnB,CACF,CAAA;AAMD,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,QAAQ,aAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAyB1F"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,4BAA4B,EAE5B,OAAO,EAGP,eAAe,EAChB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAI1D,MAAM,MAAM,4BAA4B,GAAG,aAAa,CACtD,eAAe,CAAC,4BAA4B,CAAC,EAC7C;IACE,QAAQ,EAAE,eAAe,GAAG,iBAAiB,CAAA;CAC9C,CACF,CAAA;AAMD,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,YAAY,YAEf;IAED,IAAI,QAAQ,wCAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAiC1F"}
@@ -1,14 +1,15 @@
1
- import { Provider } from '@ethersproject/providers';
1
+ import { JsonRpcProvider, WebSocketProvider } from '@ethersproject/providers';
2
2
  import { AbstractWitness } from '@xyo-network/abstract-witness';
3
3
  import { CryptoWalletNftWitnessConfig, NftInfo, NftWitnessQuery } from '@xyo-network/crypto-nft-payload-plugin';
4
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
5
5
  import { WitnessParams } from '@xyo-network/witness-model';
6
6
  export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>, {
7
- provider: Provider;
7
+ provider: JsonRpcProvider | WebSocketProvider;
8
8
  }>;
9
9
  export declare class CryptoWalletNftWitness<TParams extends CryptoWalletNftWitnessParams = CryptoWalletNftWitnessParams> extends AbstractWitness<TParams, NftWitnessQuery, NftInfo> {
10
10
  static configSchemas: "network.xyo.crypto.nft.witness.config"[];
11
- get provider(): Provider;
11
+ get loadMetadata(): boolean;
12
+ get provider(): JsonRpcProvider | WebSocketProvider;
12
13
  get timeout(): number;
13
14
  protected observeHandler(payloads?: NftWitnessQuery[]): Promise<NftInfo[]>;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,4BAA4B,EAE5B,OAAO,EAGP,eAAe,EAChB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAI1D,MAAM,MAAM,4BAA4B,GAAG,aAAa,CACtD,eAAe,CAAC,4BAA4B,CAAC,EAC7C;IACE,QAAQ,EAAE,QAAQ,CAAA;CACnB,CACF,CAAA;AAMD,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,QAAQ,aAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAyB1F"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,4BAA4B,EAE5B,OAAO,EAGP,eAAe,EAChB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAI1D,MAAM,MAAM,4BAA4B,GAAG,aAAa,CACtD,eAAe,CAAC,4BAA4B,CAAC,EAC7C;IACE,QAAQ,EAAE,eAAe,GAAG,iBAAiB,CAAA;CAC9C,CACF,CAAA;AAMD,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,YAAY,YAEf;IAED,IAAI,QAAQ,wCAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAiC1F"}
@@ -1,14 +1,15 @@
1
- import { Provider } from '@ethersproject/providers';
1
+ import { JsonRpcProvider, WebSocketProvider } from '@ethersproject/providers';
2
2
  import { AbstractWitness } from '@xyo-network/abstract-witness';
3
3
  import { CryptoWalletNftWitnessConfig, NftInfo, NftWitnessQuery } from '@xyo-network/crypto-nft-payload-plugin';
4
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
5
5
  import { WitnessParams } from '@xyo-network/witness-model';
6
6
  export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>, {
7
- provider: Provider;
7
+ provider: JsonRpcProvider | WebSocketProvider;
8
8
  }>;
9
9
  export declare class CryptoWalletNftWitness<TParams extends CryptoWalletNftWitnessParams = CryptoWalletNftWitnessParams> extends AbstractWitness<TParams, NftWitnessQuery, NftInfo> {
10
10
  static configSchemas: "network.xyo.crypto.nft.witness.config"[];
11
- get provider(): Provider;
11
+ get loadMetadata(): boolean;
12
+ get provider(): JsonRpcProvider | WebSocketProvider;
12
13
  get timeout(): number;
13
14
  protected observeHandler(payloads?: NftWitnessQuery[]): Promise<NftInfo[]>;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,4BAA4B,EAE5B,OAAO,EAGP,eAAe,EAChB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAI1D,MAAM,MAAM,4BAA4B,GAAG,aAAa,CACtD,eAAe,CAAC,4BAA4B,CAAC,EAC7C;IACE,QAAQ,EAAE,QAAQ,CAAA;CACnB,CACF,CAAA;AAMD,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,QAAQ,aAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAyB1F"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,4BAA4B,EAE5B,OAAO,EAGP,eAAe,EAChB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAI1D,MAAM,MAAM,4BAA4B,GAAG,aAAa,CACtD,eAAe,CAAC,4BAA4B,CAAC,EAC7C;IACE,QAAQ,EAAE,eAAe,GAAG,iBAAiB,CAAA;CAC9C,CACF,CAAA;AAMD,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,YAAY,YAEf;IAED,IAAI,QAAQ,wCAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAiC1F"}
@@ -23,13 +23,16 @@ __export(src_exports, {
23
23
  CryptoWalletNftWitness: () => CryptoWalletNftWitness,
24
24
  CryptoWalletNftWitnessPlugin: () => CryptoWalletNftWitnessPlugin,
25
25
  checkIpfsUrl: () => checkIpfsUrl2,
26
+ contractHasFunctions: () => contractHasFunctions,
26
27
  default: () => src_default,
27
28
  getErc1155MetadataUri: () => getErc1155MetadataUri,
28
29
  getErc721MetadataUri: () => getErc721MetadataUri,
29
30
  getNftMetadataUri: () => getNftMetadataUri,
30
31
  getNftsOwnedByAddress: () => getNftsOwnedByAddress,
32
+ getNftsOwnedByAddressWithMetadata: () => getNftsOwnedByAddressWithMetadata,
31
33
  getProviderFromEnv: () => getProviderFromEnv,
32
- hasFunctions: () => hasFunctions,
34
+ getProviderFromEnvInternal: () => getProviderFromEnvInternal,
35
+ getTokenTypes: () => getTokenTypes,
33
36
  isErc1155: () => isErc1155,
34
37
  isErc721: () => isErc721,
35
38
  tokenTypes: () => tokenTypes
@@ -47,15 +50,42 @@ var import_eth_address = require("@xylabs/eth-address");
47
50
  var import_abstract_witness = require("@xyo-network/abstract-witness");
48
51
  var import_crypto_nft_payload_plugin = require("@xyo-network/crypto-nft-payload-plugin");
49
52
 
53
+ // src/lib/contractHasFunctions.ts
54
+ var contractHasFunctions = async (provider, address, contractInterface, functionNames) => {
55
+ try {
56
+ const bytecode = await provider.getCode(address, "latest");
57
+ for (let i = 0; i < functionNames.length; i++) {
58
+ const nameSig = contractInterface.getSighash(functionNames[i]).substring(2);
59
+ if (!bytecode.includes(nameSig)) {
60
+ return false;
61
+ }
62
+ return true;
63
+ }
64
+ return false;
65
+ } catch (ex) {
66
+ const error = ex;
67
+ console.log(error);
68
+ return false;
69
+ }
70
+ };
71
+
50
72
  // src/lib/getNftsOwnedByAddress.ts
51
- var import_assert2 = require("@xylabs/assert");
52
- var import_account = require("@xyo-network/account");
53
- var import_api_graphql_plugin = require("@xyo-network/api-graphql-plugin");
54
73
  var import_open_zeppelin_typechain3 = require("@xyo-network/open-zeppelin-typechain");
74
+ var import_lru_cache = require("lru-cache");
75
+
76
+ // src/lib/getAssetsFromWalletFromOpenSea.ts
77
+ var import_assert = require("@xylabs/assert");
78
+ var import_axios = require("@xyo-network/axios");
79
+ var getNftsFromWalletFromOpenSea = async (chainId, address, maxNfts = 200, timeout = 2e3) => {
80
+ const apiKey = (0, import_assert.assertEx)(process.env.OPENSEA_API_KEY, "No opensea key found");
81
+ const axios = new import_axios.AxiosJson({ headers: { "x-api-key": apiKey }, timeout });
82
+ const nfts = (await axios.get(`https://api.opensea.io/api/v2/chain/ethereum/account/${address}/nfts?limit=${maxNfts}`)).data.nfts;
83
+ return nfts;
84
+ };
55
85
 
56
86
  // src/lib/getInfuraProvider.ts
57
87
  var import_providers = require("@ethersproject/providers");
58
- var import_assert = require("@xylabs/assert");
88
+ var import_assert2 = require("@xylabs/assert");
59
89
  var instance = void 0;
60
90
  var getInfuraProvider = () => {
61
91
  if (instance)
@@ -65,36 +95,25 @@ var getInfuraProvider = () => {
65
95
  return instance;
66
96
  };
67
97
  var getInfuraProviderConfig = () => {
68
- const projectId = (0, import_assert.assertEx)(process.env.INFURA_PROJECT_ID, "Missing INFURA_PROJECT_ID ENV VAR");
69
- const projectSecret = (0, import_assert.assertEx)(process.env.INFURA_PROJECT_SECRET, "Missing INFURA_PROJECT_SECRET ENV VAR");
98
+ const projectId = (0, import_assert2.assertEx)(process.env.INFURA_PROJECT_ID, "Missing INFURA_PROJECT_ID ENV VAR");
99
+ const projectSecret = (0, import_assert2.assertEx)(process.env.INFURA_PROJECT_SECRET, "Missing INFURA_PROJECT_SECRET ENV VAR");
70
100
  return { projectId, projectSecret };
71
101
  };
72
102
 
73
103
  // src/lib/getNftMetadata.ts
74
- var import_axios = require("@xyo-network/axios");
104
+ var import_axios2 = require("@xyo-network/axios");
75
105
  var import_open_zeppelin_typechain2 = require("@xyo-network/open-zeppelin-typechain");
76
106
 
77
107
  // src/lib/tokenTypes.ts
78
108
  var import_open_zeppelin_typechain = require("@xyo-network/open-zeppelin-typechain");
79
- var isErc1155 = async (contract) => {
80
- return await hasFunctions(contract, import_open_zeppelin_typechain.ERC1155URIStorage__factory.createInterface(), ["uri"]);
81
- };
82
- var isErc721 = async (contract) => {
83
- return await hasFunctions(contract, import_open_zeppelin_typechain.IERC721Metadata__factory.createInterface(), ["name", "symbol", "tokenURI"]);
109
+ var isErc1155 = async (provider, address) => {
110
+ return await contractHasFunctions(provider, address, import_open_zeppelin_typechain.ERC1155URIStorage__factory.createInterface(), ["uri"]);
84
111
  };
85
- var hasFunctions = async (contract, contractInterface, functionNames) => {
86
- const bytecode = await contract.provider.getCode(contract.address);
87
- for (let i = 0; i < functionNames.length; i++) {
88
- const nameSig = contractInterface.getSighash(functionNames[i]).substring(2);
89
- if (!bytecode.includes(nameSig)) {
90
- return false;
91
- }
92
- return true;
93
- }
94
- return false;
112
+ var isErc721 = async (provider, address) => {
113
+ return await contractHasFunctions(provider, address, import_open_zeppelin_typechain.IERC721Metadata__factory.createInterface(), ["name", "symbol", "tokenURI"]);
95
114
  };
96
- var tokenTypes = async (contract) => {
97
- const [erc721, erc1155] = await Promise.all([isErc721(contract), isErc1155(contract)]);
115
+ var tokenTypes = async (provider, address) => {
116
+ const [erc721, erc1155] = await Promise.all([isErc721(provider, address), isErc1155(provider, address)]);
98
117
  const result = [];
99
118
  if (erc721) {
100
119
  result.push("ERC721");
@@ -124,11 +143,11 @@ var checkIpfsUrl = (urlToCheck, ipfsGateway2) => {
124
143
  }
125
144
  };
126
145
  var getNftMetadata = async (contractAddress, provider, tokenId) => {
127
- const axios = new import_axios.AxiosJson({ timeout: 2e3 });
146
+ const axios = new import_axios2.AxiosJson({ timeout: 2e3 });
128
147
  const enumerable721 = import_open_zeppelin_typechain2.ERC721Enumerable__factory.connect(contractAddress, provider);
129
148
  const storage721 = import_open_zeppelin_typechain2.ERC721URIStorage__factory.connect(contractAddress, provider);
130
149
  const storage1155 = import_open_zeppelin_typechain2.ERC1155URIStorage__factory.connect(contractAddress, provider);
131
- const is1155 = await isErc1155(storage1155);
150
+ const is1155 = await isErc1155(provider, contractAddress);
132
151
  let uri1155;
133
152
  if (is1155) {
134
153
  try {
@@ -136,7 +155,7 @@ var getNftMetadata = async (contractAddress, provider, tokenId) => {
136
155
  } catch (ex) {
137
156
  }
138
157
  }
139
- const is721 = await isErc721(enumerable721);
158
+ const is721 = await isErc721(provider, contractAddress);
140
159
  let metadataUri;
141
160
  if (is721) {
142
161
  try {
@@ -158,6 +177,19 @@ var getNftMetadata = async (contractAddress, provider, tokenId) => {
158
177
  return [tokenMetadataUri, metadata];
159
178
  };
160
179
 
180
+ // src/lib/tryCall.ts
181
+ var tryCall = async (func, name) => {
182
+ try {
183
+ return await func();
184
+ } catch (ex) {
185
+ if (name) {
186
+ const error = ex;
187
+ console.log(`tryCall failed [${name}]: ${error.message}`);
188
+ }
189
+ return void 0;
190
+ }
191
+ };
192
+
161
193
  // src/lib/getNftsOwnedByAddress.ts
162
194
  var checkIpfsUrl2 = (urlToCheck, ipfsGateway2) => {
163
195
  const url = new URL(urlToCheck);
@@ -175,6 +207,18 @@ var checkIpfsUrl2 = (urlToCheck, ipfsGateway2) => {
175
207
  return urlToCheck;
176
208
  }
177
209
  };
210
+ var tokenTypeCache = new import_lru_cache.LRUCache({ max: 100 });
211
+ var getTokenTypes = async (provider, address) => {
212
+ const key = `${address}|${(await provider.getNetwork()).chainId}`;
213
+ const currentValue = tokenTypeCache.get(key);
214
+ if (currentValue) {
215
+ return currentValue;
216
+ } else {
217
+ const types = await tokenTypes(provider, address);
218
+ tokenTypeCache.set(key, types);
219
+ return types;
220
+ }
221
+ };
178
222
  var getErc721MetadataUri = async (address, tokenId) => {
179
223
  try {
180
224
  const contract = import_open_zeppelin_typechain3.ERC721__factory.connect(address, getInfuraProvider());
@@ -195,68 +239,49 @@ var getNftMetadataUri = async (address, tokenId) => {
195
239
  const results = await Promise.all([getErc721MetadataUri(address, tokenId), getErc1155MetadataUri(address, tokenId)]);
196
240
  return results[0][0] ?? results[1][0];
197
241
  };
198
- var getNftsOwnedByAddress = async (publicAddress, provider, maxNfts = 1e3, timeout = 2e3) => {
199
- const endpoint = "https://api.quicknode.com/graphql";
200
- const witness = await import_api_graphql_plugin.ApiGraphqlWitness.create({
201
- account: import_account.Account.randomSync(),
202
- config: { schema: import_api_graphql_plugin.ApiGraphqlWitnessConfigSchema, timeout },
203
- endpoint
204
- });
205
- const query = {
206
- query: `query Query {
207
- ethereum {
208
- walletByAddress(address: "${publicAddress}") {
209
- walletNFTs (first: ${maxNfts}) {
210
- edges {
211
- node {
212
- nft {
213
- contractAddress
214
- metadata
215
- tokenId
216
- externalUrl
217
- name
218
- }
219
- }
220
- }
221
- }
242
+ var getNftsOwnedByAddressWithMetadata = async (publicAddress, provider, maxNfts = 200, timeout = 5e3) => {
243
+ const nfts = await getNftsOwnedByAddress(publicAddress, provider, maxNfts, timeout);
244
+ const nftResult = await Promise.all(
245
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
246
+ nfts.map(async (nft) => {
247
+ try {
248
+ if (!nft.metadataUri || !nft.metadata) {
249
+ const [metadataUri, metadata] = await getNftMetadata(nft.address, provider, nft.tokenId);
250
+ nft.metadata = metadata;
251
+ nft.metadataUri = metadataUri;
222
252
  }
253
+ return nft;
254
+ } catch (ex) {
255
+ const error = ex;
256
+ console.error(`Error: ${error.message}`);
257
+ console.error(`${error.stack}`);
258
+ throw ex;
223
259
  }
224
- }`,
225
- schema: import_api_graphql_plugin.GraphqlQuerySchema,
226
- variables: {}
227
- };
228
- const results = await witness.observe([query]);
229
- const witnessResult = (0, import_assert2.assertEx)(results.at(0), "ApiGraphqlWitness failed");
260
+ })
261
+ );
262
+ return nftResult;
263
+ };
264
+ var getNftsOwnedByAddress = async (publicAddress, provider, maxNfts = 100, timeout = 5e3) => {
265
+ const nfts = await getNftsFromWalletFromOpenSea(provider.network.chainId, publicAddress, maxNfts, timeout);
230
266
  const nftResult = await Promise.all(
231
267
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
232
- Object.values(witnessResult.result?.data?.ethereum?.walletByAddress?.walletNFTs?.edges ?? {}).map(async (nft) => {
268
+ nfts.map(async (nft) => {
233
269
  try {
234
- const { contractAddress, tokenId, metadata, externalUrl } = nft.node.nft;
270
+ const { contract, identifier } = nft;
235
271
  let supply = "0x01";
236
- const supply1155 = import_open_zeppelin_typechain3.ERC1155Supply__factory.connect(contractAddress, provider);
237
- const storage1155 = import_open_zeppelin_typechain3.ERC1155URIStorage__factory.connect(contractAddress, provider);
238
- const types = await tokenTypes(storage1155);
272
+ const types = await getTokenTypes(provider, contract);
239
273
  if (types.includes("ERC1155")) {
240
- try {
241
- supply = (await supply1155.totalSupply(tokenId)).toHexString();
242
- } catch (ex) {
243
- }
274
+ const supply1155 = import_open_zeppelin_typechain3.ERC1155Supply__factory.connect(contract, provider);
275
+ supply = await tryCall(async () => (await supply1155.totalSupply(contract)).toHexString()) ?? "0x01";
244
276
  }
245
277
  const fields = {
246
- address: contractAddress,
247
- chainId: (await provider.getNetwork()).chainId,
248
- metadata,
249
- metadataUri: externalUrl,
278
+ address: contract,
279
+ chainId: provider.network.chainId,
250
280
  supply,
251
- tokenId,
281
+ tokenId: identifier,
252
282
  type: types.at(0),
253
283
  types
254
284
  };
255
- if (!fields.metadataUri || !fields.metadata) {
256
- const [metadataUri, metadata2] = await getNftMetadata(contractAddress, provider, fields.tokenId);
257
- fields.metadata = metadata2;
258
- fields.metadataUri = metadataUri;
259
- }
260
285
  return fields;
261
286
  } catch (ex) {
262
287
  const error = ex;
@@ -271,54 +296,72 @@ var getNftsOwnedByAddress = async (publicAddress, provider, maxNfts = 1e3, timeo
271
296
 
272
297
  // src/lib/getProvider.ts
273
298
  var import_providers2 = require("@ethersproject/providers");
274
- var getProviderFromEnv = (chainId = "homestead") => {
299
+ var getProviderFromEnvInternal = (chainId = 1) => {
300
+ console.log(`getProviderFromEnvInternal: ${chainId}`);
275
301
  const infuraWssUri = process.env.INFURA_WSS_URI;
276
- const infuraProvider = new import_providers2.InfuraProvider("homestead", {
302
+ const infuraProvider = new import_providers2.InfuraProvider(chainId, {
277
303
  projectId: process.env.INFURA_PROJECT_ID,
278
304
  projectSecret: process.env.INFURA_PROJECT_SECRET
279
305
  });
280
- const infuraWebsocketProvider = infuraWssUri ? new import_providers2.WebSocketProvider(infuraWssUri, chainId) : void 0;
281
- const quickNodeUri = process.env.QUICKNODE_WSS_URI;
282
- const quickNodeProvider = quickNodeUri ? new import_providers2.WebSocketProvider(quickNodeUri, chainId) : void 0;
283
- const provider = infuraWebsocketProvider ?? infuraProvider ?? infuraWebsocketProvider ?? quickNodeProvider ?? infuraProvider;
306
+ const infuraGenericWebsocketProvider = infuraWssUri ? new import_providers2.WebSocketProvider(infuraWssUri, chainId) : void 0;
307
+ const quickNodeWSSUri = process.env.QUICKNODE_WSS_URI;
308
+ const quickNodeWebSocketProvider = quickNodeWSSUri ? new import_providers2.WebSocketProvider(quickNodeWSSUri, chainId) : void 0;
309
+ const quickNodeHttpsUri = process.env.QUICKNODE_WSS_URI;
310
+ const quickRpcProvider = quickNodeHttpsUri ? new import_providers2.JsonRpcProvider(quickNodeHttpsUri, chainId) : void 0;
311
+ const provider = infuraProvider ?? quickNodeWebSocketProvider ?? infuraProvider ?? infuraGenericWebsocketProvider ?? quickRpcProvider;
284
312
  return provider;
285
313
  };
314
+ var providers = {};
315
+ var getProviderFromEnv = (chainId = 1) => {
316
+ console.log(`getProviderFromEnv: ${chainId}`);
317
+ providers[chainId] = providers[chainId] ?? getProviderFromEnvInternal(chainId);
318
+ return providers[chainId];
319
+ };
286
320
 
287
321
  // src/Witness.ts
288
322
  var schema = import_crypto_nft_payload_plugin.NftSchema;
289
323
  var defaultMaxNfts = 100;
290
324
  var CryptoWalletNftWitness = class extends import_abstract_witness.AbstractWitness {
291
325
  static configSchemas = [import_crypto_nft_payload_plugin.NftWitnessConfigSchema];
326
+ get loadMetadata() {
327
+ return this.config.loadMetadata ?? true;
328
+ }
292
329
  get provider() {
293
330
  return this.params.provider;
294
331
  }
295
332
  get timeout() {
296
- return this.config.timeout ?? 2e3;
333
+ return this.config.timeout ?? 1e4;
297
334
  }
298
335
  async observeHandler(payloads) {
299
336
  await this.started("throw");
300
337
  const queries = payloads?.filter(import_crypto_nft_payload_plugin.isNftWitnessQuery) ?? [];
301
- const observations = await Promise.all(
302
- queries.map(async (query) => {
303
- const address = (0, import_assert3.assertEx)(
304
- import_eth_address.EthAddress.parse((0, import_assert3.assertEx)(query?.address || this.config.address, "params.address is required")),
305
- "Failed to parse params.address"
306
- ).toString();
307
- const network = await this.provider.getNetwork();
308
- const chainId = (0, import_assert3.assertEx)(network.chainId, "params.chainId is required");
309
- const maxNfts = query?.maxNfts || defaultMaxNfts;
310
- try {
311
- const nfts = await getNftsOwnedByAddress(address, this.provider, maxNfts, this.timeout);
312
- const observation = nfts.map((nft) => {
313
- return { ...nft, schema };
314
- });
315
- return observation;
316
- } catch (error) {
317
- throw new Error(`Failed to get nfts for address ${address} on chainId ${chainId}`);
318
- }
319
- })
320
- );
321
- return observations.flat();
338
+ try {
339
+ const observations = await Promise.all(
340
+ queries.map(async (query) => {
341
+ const addressValue = (0, import_assert3.assertEx)(query?.address ?? this.config.address, "params.address is required");
342
+ const parsedAddressValue = import_eth_address.EthAddress.parse(addressValue);
343
+ const address = (0, import_assert3.assertEx)(parsedAddressValue?.toString(), "Failed to parse params.address");
344
+ const network = this.provider.network;
345
+ const chainId = (0, import_assert3.assertEx)(network.chainId, "params.chainId is required");
346
+ const maxNfts = query?.maxNfts || defaultMaxNfts;
347
+ try {
348
+ const nfts = this.loadMetadata ? await getNftsOwnedByAddressWithMetadata(address, this.provider, maxNfts, this.timeout) : await getNftsOwnedByAddress(address, this.provider, maxNfts, this.timeout);
349
+ const observation = nfts.map((nft) => {
350
+ return { ...nft, schema };
351
+ });
352
+ return observation;
353
+ } catch (ex) {
354
+ const error = ex;
355
+ throw Error(`Failed to get nfts for address ${address} on chainId ${chainId}: ${error.message}`);
356
+ }
357
+ })
358
+ );
359
+ return observations.flat();
360
+ } catch (ex) {
361
+ const error = ex;
362
+ console.error(error);
363
+ return [];
364
+ }
322
365
  }
323
366
  };
324
367