@xyo-network/crypto-nft-collection-witness-plugin 2.79.4 → 2.79.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 (41) hide show
  1. package/dist/browser/Plugin.d.cts +1 -21
  2. package/dist/browser/Plugin.d.cts.map +1 -1
  3. package/dist/browser/Plugin.d.mts +1 -21
  4. package/dist/browser/Plugin.d.mts.map +1 -1
  5. package/dist/browser/Plugin.d.ts +1 -21
  6. package/dist/browser/Plugin.d.ts.map +1 -1
  7. package/dist/browser/Witness.d.cts +3 -10
  8. package/dist/browser/Witness.d.cts.map +1 -1
  9. package/dist/browser/Witness.d.mts +3 -10
  10. package/dist/browser/Witness.d.mts.map +1 -1
  11. package/dist/browser/Witness.d.ts +3 -10
  12. package/dist/browser/Witness.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +6 -10
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +7 -11
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/browser/lib/getNftCollectionNfts.d.cts.map +1 -1
  18. package/dist/browser/lib/getNftCollectionNfts.d.mts.map +1 -1
  19. package/dist/browser/lib/getNftCollectionNfts.d.ts.map +1 -1
  20. package/dist/node/Plugin.d.cts +1 -21
  21. package/dist/node/Plugin.d.cts.map +1 -1
  22. package/dist/node/Plugin.d.mts +1 -21
  23. package/dist/node/Plugin.d.mts.map +1 -1
  24. package/dist/node/Plugin.d.ts +1 -21
  25. package/dist/node/Plugin.d.ts.map +1 -1
  26. package/dist/node/Witness.d.cts +3 -10
  27. package/dist/node/Witness.d.cts.map +1 -1
  28. package/dist/node/Witness.d.mts +3 -10
  29. package/dist/node/Witness.d.mts.map +1 -1
  30. package/dist/node/Witness.d.ts +3 -10
  31. package/dist/node/Witness.d.ts.map +1 -1
  32. package/dist/node/index.js +6 -10
  33. package/dist/node/index.js.map +1 -1
  34. package/dist/node/index.mjs +7 -11
  35. package/dist/node/index.mjs.map +1 -1
  36. package/dist/node/lib/getNftCollectionNfts.d.cts.map +1 -1
  37. package/dist/node/lib/getNftCollectionNfts.d.mts.map +1 -1
  38. package/dist/node/lib/getNftCollectionNfts.d.ts.map +1 -1
  39. package/package.json +15 -16
  40. package/src/Witness.ts +7 -24
  41. package/src/lib/getNftCollectionNfts.ts +3 -2
package/src/Witness.ts CHANGED
@@ -1,7 +1,5 @@
1
- import { InfuraProvider, Provider, WebSocketProvider } from '@ethersproject/providers'
2
1
  import { assertEx } from '@xylabs/assert'
3
2
  import { EthAddress } from '@xylabs/eth-address'
4
- import { AbstractWitness } from '@xyo-network/abstract-witness'
5
3
  import { PayloadHasher } from '@xyo-network/core'
6
4
  import {
7
5
  isNftCollectionWitnessQuery,
@@ -11,19 +9,12 @@ import {
11
9
  NftCollectionWitnessConfigSchema,
12
10
  NftCollectionWitnessQuery,
13
11
  } from '@xyo-network/crypto-nft-collection-payload-plugin'
14
- import { AnyConfigSchema } from '@xyo-network/module-model'
15
12
  import { ERC721Enumerable__factory } from '@xyo-network/open-zeppelin-typechain'
16
- import { getProviderFromEnv } from '@xyo-network/witness-blockchain-abstract'
17
- import { WitnessParams } from '@xyo-network/witness-model'
13
+ import { AbstractBlockchainWitness, BlockchainWitnessParams } from '@xyo-network/witness-blockchain-abstract'
18
14
 
19
15
  import { getNftCollectionMetrics, getNftCollectionNfts, tokenTypes } from './lib'
20
16
 
21
- export type CryptoNftCollectionWitnessParams = WitnessParams<
22
- AnyConfigSchema<NftCollectionWitnessConfig>,
23
- {
24
- provider: Provider
25
- }
26
- >
17
+ export type CryptoNftCollectionWitnessParams = BlockchainWitnessParams<NftCollectionWitnessConfig>
27
18
 
28
19
  const defaultMaxNfts = 100
29
20
 
@@ -43,27 +34,19 @@ function resolvedValue<T>(settled: PromiseSettledResult<T>, assert?: boolean) {
43
34
  return settled.status === 'fulfilled' ? settled.value : undefined
44
35
  }
45
36
 
46
- export class CryptoNftCollectionWitness<TParams extends CryptoNftCollectionWitnessParams = CryptoNftCollectionWitnessParams> extends AbstractWitness<
47
- TParams,
48
- NftCollectionWitnessQuery,
49
- NftCollectionInfo
50
- > {
37
+ export class CryptoNftCollectionWitness<
38
+ TParams extends CryptoNftCollectionWitnessParams = CryptoNftCollectionWitnessParams,
39
+ > extends AbstractBlockchainWitness<TParams, NftCollectionWitnessQuery, NftCollectionInfo> {
51
40
  static override configSchemas = [NftCollectionWitnessConfigSchema]
52
41
 
53
- protected providers: Record<number, WebSocketProvider | InfuraProvider> = {}
54
-
55
- protected getProvider(chainId: number) {
56
- this.providers[chainId] = this.providers[chainId] ?? getProviderFromEnv(chainId)
57
- return this.providers[chainId]
58
- }
59
-
60
42
  protected override async observeHandler(payloads?: NftCollectionWitnessQuery[]): Promise<NftCollectionInfo[]> {
61
43
  await this.started('throw')
44
+ await this.getProviders() //make sure cache clears
62
45
  const queries = payloads?.filter(isNftCollectionWitnessQuery) ?? []
63
46
  const observations = await Promise.all(
64
47
  queries.map<Promise<NftCollectionInfo>>(async (query) => {
65
48
  const chainId = assertEx(query?.chainId || this.config.chainId, 'params.chainId is required')
66
- const provider = this.getProvider(chainId)
49
+ const provider = await this.getProvider(true, true)
67
50
  const address = assertEx(
68
51
  EthAddress.parse(assertEx(query?.address || this.config.address, 'params.address is required')),
69
52
  'Failed to parse params.address',
@@ -1,9 +1,10 @@
1
1
  import { BaseProvider } from '@ethersproject/providers'
2
+ import { AxiosJson } from '@xylabs/axios'
2
3
  import { exists } from '@xylabs/exists'
3
- import { AxiosJson } from '@xyo-network/axios'
4
+ import { getErc1967Status } from '@xyo-network/blockchain-erc1967-witness'
4
5
  import { NftInfo, NftMetadata, NftSchema, TokenType, toTokenType } from '@xyo-network/crypto-nft-payload-plugin'
5
6
  import { ERC721Enumerable__factory, ERC721URIStorage__factory, ERC1155Supply__factory } from '@xyo-network/open-zeppelin-typechain'
6
- import { checkIpfsUrl, getErc1967Status } from '@xyo-network/witness-blockchain-abstract'
7
+ import { checkIpfsUrl } from '@xyo-network/witness-blockchain-abstract'
7
8
 
8
9
  import { tokenTypes } from './tokenTypes'
9
10
  import { tryCall } from './tryCall'