@xyo-network/crypto-nft-witness-wallet-plugin 2.78.2 → 2.78.4

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 (132) 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 +5 -1
  8. package/dist/browser/Witness.d.cts.map +1 -1
  9. package/dist/browser/Witness.d.mts +5 -1
  10. package/dist/browser/Witness.d.mts.map +1 -1
  11. package/dist/browser/Witness.d.ts +5 -1
  12. package/dist/browser/Witness.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +174 -141
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +172 -139
  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/getNftCollectionMetadata.d.cts.map +1 -1
  24. package/dist/browser/lib/getNftCollectionMetadata.d.mts.map +1 -1
  25. package/dist/browser/lib/getNftCollectionMetadata.d.ts.map +1 -1
  26. package/dist/browser/lib/getNftMetadata.d.cts +2 -2
  27. package/dist/browser/lib/getNftMetadata.d.cts.map +1 -1
  28. package/dist/browser/lib/getNftMetadata.d.mts +2 -2
  29. package/dist/browser/lib/getNftMetadata.d.mts.map +1 -1
  30. package/dist/browser/lib/getNftMetadata.d.ts +2 -2
  31. package/dist/browser/lib/getNftMetadata.d.ts.map +1 -1
  32. package/dist/browser/lib/getNftsOwnedByAddress.d.cts +2 -1
  33. package/dist/browser/lib/getNftsOwnedByAddress.d.cts.map +1 -1
  34. package/dist/browser/lib/getNftsOwnedByAddress.d.mts +2 -1
  35. package/dist/browser/lib/getNftsOwnedByAddress.d.mts.map +1 -1
  36. package/dist/browser/lib/getNftsOwnedByAddress.d.ts +2 -1
  37. package/dist/browser/lib/getNftsOwnedByAddress.d.ts.map +1 -1
  38. package/dist/browser/lib/getProvider.d.cts +3 -2
  39. package/dist/browser/lib/getProvider.d.cts.map +1 -1
  40. package/dist/browser/lib/getProvider.d.mts +3 -2
  41. package/dist/browser/lib/getProvider.d.mts.map +1 -1
  42. package/dist/browser/lib/getProvider.d.ts +3 -2
  43. package/dist/browser/lib/getProvider.d.ts.map +1 -1
  44. package/dist/browser/lib/index.d.cts +3 -0
  45. package/dist/browser/lib/index.d.cts.map +1 -1
  46. package/dist/browser/lib/index.d.mts +3 -0
  47. package/dist/browser/lib/index.d.mts.map +1 -1
  48. package/dist/browser/lib/index.d.ts +3 -0
  49. package/dist/browser/lib/index.d.ts.map +1 -1
  50. package/dist/browser/lib/tokenTypes.d.cts +6 -0
  51. package/dist/browser/lib/tokenTypes.d.cts.map +1 -0
  52. package/dist/browser/lib/tokenTypes.d.mts +6 -0
  53. package/dist/browser/lib/tokenTypes.d.mts.map +1 -0
  54. package/dist/browser/lib/tokenTypes.d.ts +6 -0
  55. package/dist/browser/lib/tokenTypes.d.ts.map +1 -0
  56. package/dist/browser/lib/tryCall.d.cts +2 -0
  57. package/dist/browser/lib/tryCall.d.cts.map +1 -0
  58. package/dist/browser/lib/tryCall.d.mts +2 -0
  59. package/dist/browser/lib/tryCall.d.mts.map +1 -0
  60. package/dist/browser/lib/tryCall.d.ts +2 -0
  61. package/dist/browser/lib/tryCall.d.ts.map +1 -0
  62. package/dist/node/Plugin.d.cts +2 -1
  63. package/dist/node/Plugin.d.cts.map +1 -1
  64. package/dist/node/Plugin.d.mts +2 -1
  65. package/dist/node/Plugin.d.mts.map +1 -1
  66. package/dist/node/Plugin.d.ts +2 -1
  67. package/dist/node/Plugin.d.ts.map +1 -1
  68. package/dist/node/Witness.d.cts +5 -1
  69. package/dist/node/Witness.d.cts.map +1 -1
  70. package/dist/node/Witness.d.mts +5 -1
  71. package/dist/node/Witness.d.mts.map +1 -1
  72. package/dist/node/Witness.d.ts +5 -1
  73. package/dist/node/Witness.d.ts.map +1 -1
  74. package/dist/node/index.js +181 -142
  75. package/dist/node/index.js.map +1 -1
  76. package/dist/node/index.mjs +172 -139
  77. package/dist/node/index.mjs.map +1 -1
  78. package/dist/node/lib/contractHasFunctions.d.cts +4 -0
  79. package/dist/node/lib/contractHasFunctions.d.cts.map +1 -0
  80. package/dist/node/lib/contractHasFunctions.d.mts +4 -0
  81. package/dist/node/lib/contractHasFunctions.d.mts.map +1 -0
  82. package/dist/node/lib/contractHasFunctions.d.ts +4 -0
  83. package/dist/node/lib/contractHasFunctions.d.ts.map +1 -0
  84. package/dist/node/lib/getNftCollectionMetadata.d.cts.map +1 -1
  85. package/dist/node/lib/getNftCollectionMetadata.d.mts.map +1 -1
  86. package/dist/node/lib/getNftCollectionMetadata.d.ts.map +1 -1
  87. package/dist/node/lib/getNftMetadata.d.cts +2 -2
  88. package/dist/node/lib/getNftMetadata.d.cts.map +1 -1
  89. package/dist/node/lib/getNftMetadata.d.mts +2 -2
  90. package/dist/node/lib/getNftMetadata.d.mts.map +1 -1
  91. package/dist/node/lib/getNftMetadata.d.ts +2 -2
  92. package/dist/node/lib/getNftMetadata.d.ts.map +1 -1
  93. package/dist/node/lib/getNftsOwnedByAddress.d.cts +2 -1
  94. package/dist/node/lib/getNftsOwnedByAddress.d.cts.map +1 -1
  95. package/dist/node/lib/getNftsOwnedByAddress.d.mts +2 -1
  96. package/dist/node/lib/getNftsOwnedByAddress.d.mts.map +1 -1
  97. package/dist/node/lib/getNftsOwnedByAddress.d.ts +2 -1
  98. package/dist/node/lib/getNftsOwnedByAddress.d.ts.map +1 -1
  99. package/dist/node/lib/getProvider.d.cts +3 -2
  100. package/dist/node/lib/getProvider.d.cts.map +1 -1
  101. package/dist/node/lib/getProvider.d.mts +3 -2
  102. package/dist/node/lib/getProvider.d.mts.map +1 -1
  103. package/dist/node/lib/getProvider.d.ts +3 -2
  104. package/dist/node/lib/getProvider.d.ts.map +1 -1
  105. package/dist/node/lib/index.d.cts +3 -0
  106. package/dist/node/lib/index.d.cts.map +1 -1
  107. package/dist/node/lib/index.d.mts +3 -0
  108. package/dist/node/lib/index.d.mts.map +1 -1
  109. package/dist/node/lib/index.d.ts +3 -0
  110. package/dist/node/lib/index.d.ts.map +1 -1
  111. package/dist/node/lib/tokenTypes.d.cts +6 -0
  112. package/dist/node/lib/tokenTypes.d.cts.map +1 -0
  113. package/dist/node/lib/tokenTypes.d.mts +6 -0
  114. package/dist/node/lib/tokenTypes.d.mts.map +1 -0
  115. package/dist/node/lib/tokenTypes.d.ts +6 -0
  116. package/dist/node/lib/tokenTypes.d.ts.map +1 -0
  117. package/dist/node/lib/tryCall.d.cts +2 -0
  118. package/dist/node/lib/tryCall.d.cts.map +1 -0
  119. package/dist/node/lib/tryCall.d.mts +2 -0
  120. package/dist/node/lib/tryCall.d.mts.map +1 -0
  121. package/dist/node/lib/tryCall.d.ts +2 -0
  122. package/dist/node/lib/tryCall.d.ts.map +1 -0
  123. package/package.json +16 -12
  124. package/src/Witness.ts +39 -22
  125. package/src/lib/contractHasFunctions.ts +20 -0
  126. package/src/lib/getNftCollectionMetadata.ts +0 -2
  127. package/src/lib/getNftMetadata.ts +29 -16
  128. package/src/lib/getNftsOwnedByAddress.ts +63 -54
  129. package/src/lib/getProvider.ts +19 -7
  130. package/src/lib/index.ts +3 -0
  131. package/src/lib/tokenTypes.ts +25 -0
  132. package/src/lib/tryCall.ts +11 -0
@@ -41,7 +41,6 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
41
41
  }) | undefined;
42
42
  } & {
43
43
  address?: string | undefined;
44
- chainId?: number | undefined;
45
44
  schema: "network.xyo.crypto.nft.witness.config";
46
45
  timeout?: number | undefined;
47
46
  }, "schema"> & {
@@ -53,5 +52,7 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
53
52
  };
54
53
  ephemeralQueryAccountEnabled?: boolean | undefined;
55
54
  wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
55
+ } & {
56
+ provider: import("@ethersproject/providers").JsonRpcProvider | import("@ethersproject/providers").WebSocketProvider;
56
57
  }>>;
57
58
  //# 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,7 +41,6 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
41
41
  }) | undefined;
42
42
  } & {
43
43
  address?: string | undefined;
44
- chainId?: number | undefined;
45
44
  schema: "network.xyo.crypto.nft.witness.config";
46
45
  timeout?: number | undefined;
47
46
  }, "schema"> & {
@@ -53,5 +52,7 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
53
52
  };
54
53
  ephemeralQueryAccountEnabled?: boolean | undefined;
55
54
  wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
55
+ } & {
56
+ provider: import("@ethersproject/providers").JsonRpcProvider | import("@ethersproject/providers").WebSocketProvider;
56
57
  }>>;
57
58
  //# 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,7 +41,6 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
41
41
  }) | undefined;
42
42
  } & {
43
43
  address?: string | undefined;
44
- chainId?: number | undefined;
45
44
  schema: "network.xyo.crypto.nft.witness.config";
46
45
  timeout?: number | undefined;
47
46
  }, "schema"> & {
@@ -53,5 +52,7 @@ export declare const CryptoWalletNftWitnessPlugin: () => import("@xyo-network/pa
53
52
  };
54
53
  ephemeralQueryAccountEnabled?: boolean | undefined;
55
54
  wallet?: import("@xyo-network/wallet-model").WalletInstance | undefined;
55
+ } & {
56
+ provider: import("@ethersproject/providers").JsonRpcProvider | import("@ethersproject/providers").WebSocketProvider;
56
57
  }>>;
57
58
  //# 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,10 +1,14 @@
1
+ import { JsonRpcProvider, WebSocketProvider } from '@ethersproject/providers';
1
2
  import { AbstractWitness } from '@xyo-network/abstract-witness';
2
3
  import { CryptoWalletNftWitnessConfig, NftInfo, NftWitnessQuery } from '@xyo-network/crypto-nft-payload-plugin';
3
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
4
5
  import { WitnessParams } from '@xyo-network/witness-model';
5
- export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>>;
6
+ export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>, {
7
+ provider: JsonRpcProvider | WebSocketProvider;
8
+ }>;
6
9
  export declare class CryptoWalletNftWitness<TParams extends CryptoWalletNftWitnessParams = CryptoWalletNftWitnessParams> extends AbstractWitness<TParams, NftWitnessQuery, NftInfo> {
7
10
  static configSchemas: "network.xyo.crypto.nft.witness.config"[];
11
+ get provider(): JsonRpcProvider | WebSocketProvider;
8
12
  get timeout(): number;
9
13
  protected observeHandler(payloads?: NftWitnessQuery[]): Promise<NftInfo[]>;
10
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAEA,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,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,CAAA;AAMvG,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAwB1F"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAY,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,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,QAAQ,wCAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA+B1F"}
@@ -1,10 +1,14 @@
1
+ import { JsonRpcProvider, WebSocketProvider } from '@ethersproject/providers';
1
2
  import { AbstractWitness } from '@xyo-network/abstract-witness';
2
3
  import { CryptoWalletNftWitnessConfig, NftInfo, NftWitnessQuery } from '@xyo-network/crypto-nft-payload-plugin';
3
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
4
5
  import { WitnessParams } from '@xyo-network/witness-model';
5
- export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>>;
6
+ export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>, {
7
+ provider: JsonRpcProvider | WebSocketProvider;
8
+ }>;
6
9
  export declare class CryptoWalletNftWitness<TParams extends CryptoWalletNftWitnessParams = CryptoWalletNftWitnessParams> extends AbstractWitness<TParams, NftWitnessQuery, NftInfo> {
7
10
  static configSchemas: "network.xyo.crypto.nft.witness.config"[];
11
+ get provider(): JsonRpcProvider | WebSocketProvider;
8
12
  get timeout(): number;
9
13
  protected observeHandler(payloads?: NftWitnessQuery[]): Promise<NftInfo[]>;
10
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAEA,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,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,CAAA;AAMvG,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAwB1F"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAY,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,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,QAAQ,wCAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA+B1F"}
@@ -1,10 +1,14 @@
1
+ import { JsonRpcProvider, WebSocketProvider } from '@ethersproject/providers';
1
2
  import { AbstractWitness } from '@xyo-network/abstract-witness';
2
3
  import { CryptoWalletNftWitnessConfig, NftInfo, NftWitnessQuery } from '@xyo-network/crypto-nft-payload-plugin';
3
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
4
5
  import { WitnessParams } from '@xyo-network/witness-model';
5
- export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>>;
6
+ export type CryptoWalletNftWitnessParams = WitnessParams<AnyConfigSchema<CryptoWalletNftWitnessConfig>, {
7
+ provider: JsonRpcProvider | WebSocketProvider;
8
+ }>;
6
9
  export declare class CryptoWalletNftWitness<TParams extends CryptoWalletNftWitnessParams = CryptoWalletNftWitnessParams> extends AbstractWitness<TParams, NftWitnessQuery, NftInfo> {
7
10
  static configSchemas: "network.xyo.crypto.nft.witness.config"[];
11
+ get provider(): JsonRpcProvider | WebSocketProvider;
8
12
  get timeout(): number;
9
13
  protected observeHandler(payloads?: NftWitnessQuery[]): Promise<NftInfo[]>;
10
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAEA,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,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,CAAA;AAMvG,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,eAAe,CACtI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,OAAgB,aAAa,4CAA2B;IAExD,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAwB1F"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAY,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGvF,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,QAAQ,wCAEX;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA+B1F"}
@@ -23,28 +23,53 @@ __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
- getNftsOwnedByAddress: () => getNftsOwnedByAddress
31
+ getNftsOwnedByAddress: () => getNftsOwnedByAddress,
32
+ getProviderFromEnv: () => getProviderFromEnv,
33
+ getProviderFromEnvInternal: () => getProviderFromEnvInternal,
34
+ isErc1155: () => isErc1155,
35
+ isErc721: () => isErc721,
36
+ tokenTypes: () => tokenTypes
31
37
  });
32
38
  module.exports = __toCommonJS(src_exports);
33
39
 
34
40
  // src/Plugin.ts
35
- var import_crypto_nft_payload_plugin3 = require("@xyo-network/crypto-nft-payload-plugin");
41
+ var import_crypto_nft_payload_plugin2 = require("@xyo-network/crypto-nft-payload-plugin");
36
42
  var import_payload_model = require("@xyo-network/payload-model");
37
43
  var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
38
44
 
39
45
  // src/Witness.ts
40
- var import_assert2 = require("@xylabs/assert");
46
+ var import_assert3 = require("@xylabs/assert");
41
47
  var import_eth_address = require("@xylabs/eth-address");
42
48
  var import_abstract_witness = require("@xyo-network/abstract-witness");
43
- var import_crypto_nft_payload_plugin2 = require("@xyo-network/crypto-nft-payload-plugin");
49
+ var import_crypto_nft_payload_plugin = require("@xyo-network/crypto-nft-payload-plugin");
50
+
51
+ // src/lib/contractHasFunctions.ts
52
+ var contractHasFunctions = async (provider, address, contractInterface, functionNames) => {
53
+ try {
54
+ const bytecode = await provider.getCode(address, "latest");
55
+ for (let i = 0; i < functionNames.length; i++) {
56
+ const nameSig = contractInterface.getSighash(functionNames[i]).substring(2);
57
+ if (!bytecode.includes(nameSig)) {
58
+ return false;
59
+ }
60
+ return true;
61
+ }
62
+ return false;
63
+ } catch (ex) {
64
+ const error = ex;
65
+ console.log(error);
66
+ return false;
67
+ }
68
+ };
44
69
 
45
70
  // src/lib/getNftsOwnedByAddress.ts
71
+ var import_assert2 = require("@xylabs/assert");
46
72
  var import_axios2 = require("@xyo-network/axios");
47
- var import_crypto_nft_payload_plugin = require("@xyo-network/crypto-nft-payload-plugin");
48
73
  var import_open_zeppelin_typechain3 = require("@xyo-network/open-zeppelin-typechain");
49
74
 
50
75
  // src/lib/getInfuraProvider.ts
@@ -64,54 +89,31 @@ var getInfuraProviderConfig = () => {
64
89
  return { projectId, projectSecret };
65
90
  };
66
91
 
67
- // src/lib/getNftCollectionMetadata.ts
92
+ // src/lib/getNftMetadata.ts
93
+ var import_axios = require("@xyo-network/axios");
94
+ var import_open_zeppelin_typechain2 = require("@xyo-network/open-zeppelin-typechain");
95
+
96
+ // src/lib/tokenTypes.ts
68
97
  var import_open_zeppelin_typechain = require("@xyo-network/open-zeppelin-typechain");
69
- var import_ethers = require("ethers");
70
- function getInterfaceID(contractInterface) {
71
- let interfaceID = import_ethers.constants.Zero;
72
- const functions = Object.keys(contractInterface.functions);
73
- for (let i = 0; i < functions.length; i++) {
74
- interfaceID = interfaceID.xor(contractInterface.getSighash(functions[i]));
98
+ var isErc1155 = async (provider, address) => {
99
+ return await contractHasFunctions(provider, address, import_open_zeppelin_typechain.ERC1155URIStorage__factory.createInterface(), ["uri"]);
100
+ };
101
+ var isErc721 = async (provider, address) => {
102
+ return await contractHasFunctions(provider, address, import_open_zeppelin_typechain.IERC721Metadata__factory.createInterface(), ["name", "symbol", "tokenURI"]);
103
+ };
104
+ var tokenTypes = async (provider, address) => {
105
+ const [erc721, erc1155] = await Promise.all([isErc721(provider, address), isErc1155(provider, address)]);
106
+ const result = [];
107
+ if (erc721) {
108
+ result.push("ERC721");
75
109
  }
76
- return interfaceID.toHexString();
77
- }
78
- var getNftCollectionMetadata = async (contractAddress, provider) => {
79
- try {
80
- const contract721 = import_open_zeppelin_typechain.ERC721Enumerable__factory.connect(contractAddress, provider);
81
- const contract1155 = import_open_zeppelin_typechain.ERC1155__factory.connect(contractAddress, provider);
82
- let name = "";
83
- try {
84
- name = await contract721.name();
85
- } catch (ex) {
86
- const error = ex;
87
- console.log(`name: ${error.message}`);
88
- }
89
- let symbol = "";
90
- try {
91
- symbol = await contract721.symbol();
92
- } catch (ex) {
93
- const error = ex;
94
- console.log(`symbol: ${error.message}`);
95
- }
96
- let is1155 = false;
97
- try {
98
- is1155 = await contract1155.supportsInterface(getInterfaceID(import_open_zeppelin_typechain.ERC1155__factory.getInterface(import_open_zeppelin_typechain.ERC1155__factory.abi)));
99
- } catch (ex) {
100
- const error = ex;
101
- console.log(`is1155: ${error.message}`);
102
- is1155 = false;
103
- }
104
- return { address: contractAddress, chainId: provider.network.chainId, name, symbol, type: is1155 ? "ERC1155" : "ERC721" };
105
- } catch (ex) {
106
- const error = ex;
107
- console.error(`getNftCollectionMetadata: ${error.message}`);
108
- throw ex;
110
+ if (erc1155) {
111
+ result.push("ERC1155");
109
112
  }
113
+ return result;
110
114
  };
111
115
 
112
116
  // src/lib/getNftMetadata.ts
113
- var import_axios = require("@xyo-network/axios");
114
- var import_open_zeppelin_typechain2 = require("@xyo-network/open-zeppelin-typechain");
115
117
  var ipfsGateway = "5d7b6582.beta.decentralnetworkservices.com";
116
118
  var checkIpfsUrl = (urlToCheck, ipfsGateway2) => {
117
119
  const url = new URL(urlToCheck);
@@ -131,21 +133,28 @@ var checkIpfsUrl = (urlToCheck, ipfsGateway2) => {
131
133
  };
132
134
  var getNftMetadata = async (contractAddress, provider, tokenId) => {
133
135
  const axios = new import_axios.AxiosJson({ timeout: 2e3 });
134
- const storage = import_open_zeppelin_typechain2.ERC721URIStorage__factory.connect(contractAddress, provider);
136
+ const enumerable721 = import_open_zeppelin_typechain2.ERC721Enumerable__factory.connect(contractAddress, provider);
137
+ const storage721 = import_open_zeppelin_typechain2.ERC721URIStorage__factory.connect(contractAddress, provider);
135
138
  const storage1155 = import_open_zeppelin_typechain2.ERC1155URIStorage__factory.connect(contractAddress, provider);
139
+ const is1155 = await isErc1155(provider, contractAddress);
136
140
  let uri1155;
137
- try {
138
- uri1155 = await storage1155.uri(tokenId);
139
- } catch (ex) {
140
- const error = ex;
141
- console.error(`metaDataUri: ${error.message}`);
141
+ if (is1155) {
142
+ try {
143
+ uri1155 = await storage1155.uri(tokenId);
144
+ } catch (ex) {
145
+ }
142
146
  }
147
+ const is721 = await isErc721(provider, contractAddress);
143
148
  let metadataUri;
144
- try {
145
- metadataUri = await storage.tokenURI(tokenId);
146
- } catch (ex) {
147
- const error = ex;
148
- console.error(`metadataUri: ${error.message}`);
149
+ if (is721) {
150
+ try {
151
+ metadataUri = await enumerable721.tokenURI(tokenId);
152
+ } catch (ex) {
153
+ try {
154
+ metadataUri = await storage721.tokenURI(tokenId);
155
+ } catch (ex2) {
156
+ }
157
+ }
149
158
  }
150
159
  const tokenMetadataUri = metadataUri ?? uri1155;
151
160
  const checkedMetaDataUri = tokenMetadataUri ? checkIpfsUrl(tokenMetadataUri, ipfsGateway) : tokenMetadataUri;
@@ -153,25 +162,21 @@ var getNftMetadata = async (contractAddress, provider, tokenId) => {
153
162
  try {
154
163
  metadata = checkedMetaDataUri ? (await axios.get(checkedMetaDataUri)).data : void 0;
155
164
  } catch (ex) {
156
- const error = ex;
157
- console.error(`metadata: ${error.message}`);
158
165
  }
159
166
  return [tokenMetadataUri, metadata];
160
167
  };
161
168
 
162
- // src/lib/getProvider.ts
163
- var import_providers2 = require("@ethersproject/providers");
164
- var getProviderFromEnv = (chainId = "homestead") => {
165
- const infuraWssUri = process.env.INFURA_WSS_URI;
166
- const infuraProvider = new import_providers2.InfuraProvider("homestead", {
167
- projectId: process.env.INFURA_PROJECT_ID,
168
- projectSecret: process.env.INFURA_PROJECT_SECRET
169
- });
170
- const infuraWebsocketProvider = infuraWssUri ? new import_providers2.WebSocketProvider(infuraWssUri, chainId) : void 0;
171
- const quickNodeUri = process.env.QUICKNODE_WSS_URI;
172
- const quickNodeProvider = quickNodeUri ? new import_providers2.WebSocketProvider(quickNodeUri, chainId) : void 0;
173
- const provider = infuraWebsocketProvider ?? infuraProvider ?? infuraWebsocketProvider ?? quickNodeProvider ?? infuraProvider;
174
- return provider;
169
+ // src/lib/tryCall.ts
170
+ var tryCall = async (func, name) => {
171
+ try {
172
+ return await func();
173
+ } catch (ex) {
174
+ if (name) {
175
+ const error = ex;
176
+ console.log(`tryCall failed [${name}]: ${error.message}`);
177
+ }
178
+ return void 0;
179
+ }
175
180
  };
176
181
 
177
182
  // src/lib/getNftsOwnedByAddress.ts
@@ -211,60 +216,54 @@ var getNftMetadataUri = async (address, tokenId) => {
211
216
  const results = await Promise.all([getErc721MetadataUri(address, tokenId), getErc1155MetadataUri(address, tokenId)]);
212
217
  return results[0][0] ?? results[1][0];
213
218
  };
214
- var getNftsOwnedByAddress = async (publicAddress, chainId, privateKey, maxNfts = 1e3, timeout = 2e3) => {
219
+ var getNftsOwnedByAddress = async (publicAddress, provider, maxNfts = 1e3, timeout = 5e3) => {
220
+ const endpoint = (0, import_assert2.assertEx)(process.env.QUICKNODE_API_URI, "No endpoint found");
215
221
  const axios = new import_axios2.AxiosJson({ timeout });
216
- const provider = getProviderFromEnv();
217
- const qnUri = "https://api.quicknode.com/graphql";
218
- const result = await axios.post(qnUri, {
219
- query: `query Query {
220
- ethereum {
221
- walletByAddress(address: "${publicAddress}") {
222
- walletNFTs (first: ${maxNfts}) {
223
- edges {
224
- node {
225
- nft {
226
- contractAddress
227
- metadata
228
- tokenId
229
- externalUrl
230
- name
231
- }
232
- }
233
- }
222
+ const assets = [];
223
+ let done = false;
224
+ let currentPage = 0;
225
+ const id = Date.now();
226
+ while (!done && assets.length < maxNfts) {
227
+ const query = {
228
+ id,
229
+ jsonrpc: "2.0",
230
+ method: "qn_fetchNFTs",
231
+ params: [
232
+ {
233
+ omitFields: ["traits"],
234
+ page: currentPage + 1,
235
+ perPage: 10,
236
+ wallet: publicAddress
234
237
  }
235
- }
236
- }
237
- }`,
238
- variables: {}
239
- });
238
+ ]
239
+ };
240
+ const results = (await axios.post(endpoint, query)).data.result;
241
+ assets.push(...results.assets ?? []);
242
+ currentPage = results.pageNumber;
243
+ done = results.pageNumber === results.totalPages;
244
+ }
240
245
  const nftResult = await Promise.all(
241
246
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
242
- Object.values(result.data.data.ethereum.walletByAddress.walletNFTs.edges).map(async (nft) => {
247
+ assets.map(async (nft) => {
243
248
  try {
244
- const { contractAddress, tokenId, metadata, externalUrl } = nft.node.nft;
249
+ const { collectionAddress, collectionTokenId } = nft;
245
250
  let supply = "0x01";
246
- let type = (0, import_crypto_nft_payload_plugin.toTokenType)("ERC721");
247
- try {
248
- const supply1155 = import_open_zeppelin_typechain3.ERC1155Supply__factory.connect(contractAddress, provider);
249
- const { type: nftType } = await getNftCollectionMetadata(contractAddress, provider);
250
- type = nftType;
251
- supply = nftType === (0, import_crypto_nft_payload_plugin.toTokenType)("ERC1155") ? (await supply1155.totalSupply(tokenId)).toHexString() : "0x01";
252
- } catch (ex) {
253
- const error = ex;
254
- console.error(`supply: ${error.message}`);
251
+ const types = await tokenTypes(provider, collectionAddress);
252
+ if (types.includes("ERC1155")) {
253
+ const supply1155 = import_open_zeppelin_typechain3.ERC1155Supply__factory.connect(collectionAddress, provider);
254
+ supply = await tryCall(async () => (await supply1155.totalSupply(collectionTokenId)).toHexString()) ?? "0x01";
255
255
  }
256
256
  const fields = {
257
- address: contractAddress,
258
- chainId,
259
- metadata,
260
- metadataUri: externalUrl,
257
+ address: collectionAddress,
258
+ chainId: provider.network.chainId,
261
259
  supply,
262
- tokenId,
263
- type
260
+ tokenId: collectionTokenId,
261
+ type: types.at(0),
262
+ types
264
263
  };
265
264
  if (!fields.metadataUri || !fields.metadata) {
266
- const [metadataUri, metadata2] = await getNftMetadata(contractAddress, provider, fields.tokenId);
267
- fields.metadata = metadata2;
265
+ const [metadataUri, metadata] = await getNftMetadata(collectionAddress, provider, fields.tokenId);
266
+ fields.metadata = metadata;
268
267
  fields.metadataUri = metadataUri;
269
268
  }
270
269
  return fields;
@@ -279,43 +278,77 @@ var getNftsOwnedByAddress = async (publicAddress, chainId, privateKey, maxNfts =
279
278
  return nftResult;
280
279
  };
281
280
 
281
+ // src/lib/getProvider.ts
282
+ var import_providers2 = require("@ethersproject/providers");
283
+ var getProviderFromEnvInternal = (chainId = 1) => {
284
+ console.log(`getProviderFromEnvInternal: ${chainId}`);
285
+ const infuraWssUri = process.env.INFURA_WSS_URI;
286
+ const infuraProvider = new import_providers2.InfuraProvider(chainId, {
287
+ projectId: process.env.INFURA_PROJECT_ID,
288
+ projectSecret: process.env.INFURA_PROJECT_SECRET
289
+ });
290
+ const infuraGenericWebsocketProvider = infuraWssUri ? new import_providers2.WebSocketProvider(infuraWssUri, chainId) : void 0;
291
+ const quickNodeWSSUri = process.env.QUICKNODE_WSS_URI;
292
+ const quickNodeWebSocketProvider = quickNodeWSSUri ? new import_providers2.WebSocketProvider(quickNodeWSSUri, chainId) : void 0;
293
+ const quickNodeHttpsUri = process.env.QUICKNODE_WSS_URI;
294
+ const quickRpcProvider = quickNodeHttpsUri ? new import_providers2.JsonRpcProvider(quickNodeHttpsUri, chainId) : void 0;
295
+ const provider = infuraProvider ?? quickNodeWebSocketProvider ?? infuraProvider ?? infuraGenericWebsocketProvider ?? quickRpcProvider;
296
+ return provider;
297
+ };
298
+ var providers = {};
299
+ var getProviderFromEnv = (chainId = 1) => {
300
+ console.log(`getProviderFromEnv: ${chainId}`);
301
+ providers[chainId] = providers[chainId] ?? getProviderFromEnvInternal(chainId);
302
+ return providers[chainId];
303
+ };
304
+
282
305
  // src/Witness.ts
283
- var schema = import_crypto_nft_payload_plugin2.NftSchema;
306
+ var schema = import_crypto_nft_payload_plugin.NftSchema;
284
307
  var defaultMaxNfts = 100;
285
308
  var CryptoWalletNftWitness = class extends import_abstract_witness.AbstractWitness {
286
- static configSchemas = [import_crypto_nft_payload_plugin2.NftWitnessConfigSchema];
309
+ static configSchemas = [import_crypto_nft_payload_plugin.NftWitnessConfigSchema];
310
+ get provider() {
311
+ return this.params.provider;
312
+ }
287
313
  get timeout() {
288
- return this.config.timeout ?? 2e3;
314
+ return this.config.timeout ?? 1e4;
289
315
  }
290
316
  async observeHandler(payloads) {
291
317
  await this.started("throw");
292
- const queries = payloads?.filter(import_crypto_nft_payload_plugin2.isNftWitnessQuery) ?? [];
293
- const observations = await Promise.all(
294
- queries.map(async (query) => {
295
- const address = (0, import_assert2.assertEx)(
296
- import_eth_address.EthAddress.parse((0, import_assert2.assertEx)(query?.address || this.config.address, "params.address is required")),
297
- "Failed to parse params.address"
298
- ).toString();
299
- const chainId = (0, import_assert2.assertEx)(query?.chainId || this.config.chainId, "params.chainId is required");
300
- const maxNfts = query?.maxNfts || defaultMaxNfts;
301
- try {
302
- const nfts = await getNftsOwnedByAddress(address, chainId, this.account.private.hex, maxNfts, this.timeout);
303
- const observation = nfts.map((nft) => {
304
- return { ...nft, schema };
305
- });
306
- return observation;
307
- } catch (error) {
308
- throw new Error(`Failed to get nfts for address ${address} on chainId ${chainId}`);
309
- }
310
- })
311
- );
312
- return observations.flat();
318
+ const queries = payloads?.filter(import_crypto_nft_payload_plugin.isNftWitnessQuery) ?? [];
319
+ try {
320
+ const observations = await Promise.all(
321
+ queries.map(async (query) => {
322
+ const addressValue = (0, import_assert3.assertEx)(query?.address ?? this.config.address, "params.address is required");
323
+ const parsedAddressValue = import_eth_address.EthAddress.parse(addressValue);
324
+ const address = (0, import_assert3.assertEx)(parsedAddressValue?.toString(), "Failed to parse params.address");
325
+ const network = this.provider.network;
326
+ const chainId = (0, import_assert3.assertEx)(network.chainId, "params.chainId is required");
327
+ const maxNfts = query?.maxNfts || defaultMaxNfts;
328
+ try {
329
+ const nfts = await getNftsOwnedByAddress(address, this.provider, maxNfts, this.timeout);
330
+ const observation = nfts.map((nft) => {
331
+ return { ...nft, schema };
332
+ });
333
+ return observation;
334
+ } catch (ex) {
335
+ const error = ex;
336
+ throw Error(`Failed to get nfts for address ${address} on chainId ${chainId}: ${error.message}`);
337
+ }
338
+ })
339
+ );
340
+ return observations.flat();
341
+ } catch (ex) {
342
+ const error = ex;
343
+ console.error(error);
344
+ return [];
345
+ }
313
346
  }
314
347
  };
315
348
 
316
349
  // src/Plugin.ts
317
350
  var CryptoWalletNftWitnessPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
318
- { required: { [import_crypto_nft_payload_plugin3.NftSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
351
+ { required: { [import_crypto_nft_payload_plugin2.NftSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
319
352
  {
320
353
  witness: async (params) => {
321
354
  const result = await CryptoWalletNftWitness.create(params);