@xyo-network/evm-call-witness 2.84.5 → 2.85.1

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 (69) hide show
  1. package/dist/browser/Diviner.d.cts +2 -0
  2. package/dist/browser/Diviner.d.cts.map +1 -1
  3. package/dist/browser/Diviner.d.mts +2 -0
  4. package/dist/browser/Diviner.d.mts.map +1 -1
  5. package/dist/browser/Diviner.d.ts +2 -0
  6. package/dist/browser/Diviner.d.ts.map +1 -1
  7. package/dist/browser/Labels.d.cts +12 -0
  8. package/dist/browser/Labels.d.cts.map +1 -0
  9. package/dist/browser/Labels.d.mts +12 -0
  10. package/dist/browser/Labels.d.mts.map +1 -0
  11. package/dist/browser/Labels.d.ts +12 -0
  12. package/dist/browser/Labels.d.ts.map +1 -0
  13. package/dist/browser/Payload.d.cts +1 -0
  14. package/dist/browser/Payload.d.cts.map +1 -1
  15. package/dist/browser/Payload.d.mts +1 -0
  16. package/dist/browser/Payload.d.mts.map +1 -1
  17. package/dist/browser/Payload.d.ts +1 -0
  18. package/dist/browser/Payload.d.ts.map +1 -1
  19. package/dist/browser/index.cjs +17 -6
  20. package/dist/browser/index.cjs.map +1 -1
  21. package/dist/browser/index.d.cts +1 -0
  22. package/dist/browser/index.d.cts.map +1 -1
  23. package/dist/browser/index.d.mts +1 -0
  24. package/dist/browser/index.d.mts.map +1 -1
  25. package/dist/browser/index.d.ts +1 -0
  26. package/dist/browser/index.d.ts.map +1 -1
  27. package/dist/browser/index.js +17 -6
  28. package/dist/browser/index.js.map +1 -1
  29. package/dist/node/Diviner.d.cts +2 -0
  30. package/dist/node/Diviner.d.cts.map +1 -1
  31. package/dist/node/Diviner.d.mts +2 -0
  32. package/dist/node/Diviner.d.mts.map +1 -1
  33. package/dist/node/Diviner.d.ts +2 -0
  34. package/dist/node/Diviner.d.ts.map +1 -1
  35. package/dist/node/Labels.d.cts +12 -0
  36. package/dist/node/Labels.d.cts.map +1 -0
  37. package/dist/node/Labels.d.mts +12 -0
  38. package/dist/node/Labels.d.mts.map +1 -0
  39. package/dist/node/Labels.d.ts +12 -0
  40. package/dist/node/Labels.d.ts.map +1 -0
  41. package/dist/node/Payload.d.cts +1 -0
  42. package/dist/node/Payload.d.cts.map +1 -1
  43. package/dist/node/Payload.d.mts +1 -0
  44. package/dist/node/Payload.d.mts.map +1 -1
  45. package/dist/node/Payload.d.ts +1 -0
  46. package/dist/node/Payload.d.ts.map +1 -1
  47. package/dist/node/index.cjs +19 -6
  48. package/dist/node/index.cjs.map +1 -1
  49. package/dist/node/index.d.cts +1 -0
  50. package/dist/node/index.d.cts.map +1 -1
  51. package/dist/node/index.d.mts +1 -0
  52. package/dist/node/index.d.mts.map +1 -1
  53. package/dist/node/index.d.ts +1 -0
  54. package/dist/node/index.d.ts.map +1 -1
  55. package/dist/node/index.js +17 -6
  56. package/dist/node/index.js.map +1 -1
  57. package/package.json +23 -23
  58. package/src/Diviner.ts +6 -1
  59. package/src/Labels.ts +15 -0
  60. package/src/Payload.ts +3 -1
  61. package/src/Witness.ts +1 -1
  62. package/src/index.ts +1 -0
  63. package/src/spec/imported/AddressToContract/AddressToContractIndex/Contract.Sentinel.Erc1155.Index.json +191 -0
  64. package/src/spec/imported/AddressToContract/AddressToContractIndex/Contract.Sentinel.Erc721.Index.json +191 -0
  65. package/src/spec/imported/AddressToContract/AddressToContractIndex/Contract.Sentinel.Node.json +279 -0
  66. package/src/spec/imported/AddressToContract/Erc721Sentinel.json +165 -0
  67. package/src/spec/imported/AddressToTotalSupplyIndex/Erc721.TotalSupply.Index.json +242 -0
  68. package/src/spec/imported/NftIndexToNftIdIndex/Erc721.NftId.Index.json +325 -0
  69. package/src/spec/imported/TotalSupplyToNftIndexIndex/Erc721.NftIndex.Index.json +403 -0
package/src/Diviner.ts CHANGED
@@ -4,6 +4,7 @@ import { AbstractDiviner } from '@xyo-network/abstract-diviner'
4
4
  import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model'
5
5
  import { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'
6
6
 
7
+ import { EvmCallDivinerLabels } from './Labels'
7
8
  import { asEvmCallSuccess, EvmCallResult, EvmCallResultSchema } from './Payload'
8
9
 
9
10
  export type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]
@@ -36,6 +37,7 @@ export type EvmCallResults = Payload<
36
37
 
37
38
  export class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivinerParams> extends AbstractDiviner<TParams> {
38
39
  static override configSchemas = [EvmCallDivinerConfigSchema]
40
+ static labels: EvmCallDivinerLabels = EvmCallDivinerLabels
39
41
 
40
42
  protected static findCallResult<TResult = string>(address: string, functionName: string, payloads: EvmCallResult[]): TResult | undefined {
41
43
  const foundPayload = payloads.find((payload) => payload.functionName === functionName && payload.address === address)
@@ -44,6 +46,7 @@ export class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivine
44
46
 
45
47
  protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {
46
48
  const expectedValue = objs.at(0)?.[field] as R
49
+ // eslint-disable-next-line unicorn/no-array-reduce
47
50
  const didNotMatch = objs.reduce((prev, obj) => {
48
51
  return prev || obj[field] !== expectedValue
49
52
  }, false)
@@ -61,6 +64,7 @@ export class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivine
61
64
  protected override async divineHandler(inPayloads: EvmCallResult[] = []): Promise<EvmCallResults[]> {
62
65
  const callResults = inPayloads.filter(isPayloadOfSchemaType<EvmCallResult>(EvmCallResultSchema))
63
66
  const addresses = Object.keys(
67
+ // eslint-disable-next-line unicorn/no-array-reduce
64
68
  callResults.reduce<Record<string, boolean>>((prev, result) => {
65
69
  if (result.address) {
66
70
  prev[result.address] = true
@@ -72,7 +76,7 @@ export class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivine
72
76
  addresses.map(async (address) => {
73
77
  const foundCallResults = callResults.filter((callResult) => callResult.address === address)
74
78
  const results: EvmCallResults = {
75
- ...{ results: await this.reduceResults(foundCallResults) },
79
+ results: await this.reduceResults(foundCallResults),
76
80
  ...this.contractInfoRequiredFields(foundCallResults),
77
81
  }
78
82
  return results
@@ -83,6 +87,7 @@ export class EvmCallDiviner<TParams extends EvmCallDivinerParams = EvmCallDivine
83
87
  }
84
88
 
85
89
  protected reduceResults(callResults: EvmCallResult[]): Promisable<EvmCallResults['results']> {
90
+ // eslint-disable-next-line unicorn/no-array-reduce
86
91
  return callResults.reduce<
87
92
  Record<
88
93
  string,
package/src/Labels.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { Labels } from '@xyo-network/module-model'
2
+
3
+ /**
4
+ * Labels for Crypto Contract Diviner components
5
+ */
6
+ export interface EvmCallDivinerLabels extends Labels {
7
+ 'network.xyo.crypto.contract.info': 'diviner'
8
+ }
9
+
10
+ /**
11
+ * Labels for Crypto Contract Diviner components
12
+ */
13
+ export const EvmCallDivinerLabels: EvmCallDivinerLabels = {
14
+ 'network.xyo.crypto.contract.info': 'diviner',
15
+ }
package/src/Payload.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Payload } from '@xyo-network/payload-model'
1
+ import { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'
2
2
 
3
3
  export const EvmCallSchema = 'network.xyo.evm.call'
4
4
  export type EvmCallSchema = typeof EvmCallSchema
@@ -46,6 +46,8 @@ export const isEvmCallFailure = (payload?: EvmCallResult): payload is EvmCallFai
46
46
  return (payload as EvmCallFailure | undefined)?.error !== undefined
47
47
  }
48
48
 
49
+ export const isEvmCallResult = isPayloadOfSchemaType<EvmCallResult>(EvmCallResultSchema)
50
+
49
51
  export const asEvmCallSuccess = (payload?: EvmCallResult) => (isEvmCallSuccess(payload) ? payload : undefined)
50
52
 
51
53
  export const asEvmCallFailure = (payload?: EvmCallResult) => (isEvmCallFailure(payload) ? payload : undefined)
package/src/Witness.ts CHANGED
@@ -44,7 +44,7 @@ export class EvmCallWitness<TParams extends EvmCallWitnessParams = EvmCallWitnes
44
44
  try {
45
45
  const result = await contract[validatedFunctionName](...mergedArgs)
46
46
  transformedResult = typeof result === 'bigint' ? `0x${result.toString(16)}` : result
47
- } catch (ex) {
47
+ } catch {
48
48
  //const error = ex as Error & { code: string }
49
49
  //this.logger.error(`Error [${this.config.name}]: ${error.code} : ${error.message}`)
50
50
  }
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './Diviner'
2
+ export * from './Labels'
2
3
  export * from './model'
3
4
  export * from './Payload'
4
5
  export * from './Witness'
@@ -0,0 +1,191 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
3
+ "nodes": [
4
+ {
5
+ "config": {
6
+ "accountPath": "m/44'/60'/2",
7
+ "name": "ERC1155Node",
8
+ "schema": "network.xyo.node.config"
9
+ },
10
+ "modules": {
11
+ "private": [
12
+ {
13
+ "config": {
14
+ "language": "javascript",
15
+ "name": "AddressStateArchivist",
16
+ "schema": "network.xyo.archivist.config",
17
+ "storeQueries": false
18
+ }
19
+ },
20
+ {
21
+ "config": {
22
+ "archivist": "AddressStateArchivist",
23
+ "language": "javascript",
24
+ "name": "AddressStateBoundWitnessDiviner",
25
+ "schema": "network.xyo.diviner.boundwitness.config"
26
+ }
27
+ },
28
+ {
29
+ "config": {
30
+ "archivist": "AddressStateArchivist",
31
+ "language": "javascript",
32
+ "name": "AddressStatePayloadDiviner",
33
+ "schema": "network.xyo.diviner.payload.config"
34
+ }
35
+ },
36
+ {
37
+ "config": {
38
+ "language": "javascript",
39
+ "name": "NftDivinerIndexArchivist",
40
+ "schema": "network.xyo.archivist.config"
41
+ }
42
+ },
43
+ {
44
+ "config": {
45
+ "archivist": "NftDivinerIndexArchivist",
46
+ "language": "javascript",
47
+ "name": "NftDivinerIndexBoundWitnessDiviner",
48
+ "schema": "network.xyo.diviner.boundwitness.config"
49
+ }
50
+ },
51
+ {
52
+ "config": {
53
+ "archivist": "NftDivinerIndexArchivist",
54
+ "language": "javascript",
55
+ "name": "NftDivinerIndexPayloadDiviner",
56
+ "schema": "network.xyo.diviner.payload.config"
57
+ }
58
+ },
59
+ {
60
+ "config": {
61
+ "filter": {
62
+ "payload_schemas": ["network.xyo.crypto.contract.info.erc1155"]
63
+ },
64
+ "labels": {
65
+ "network.xyo.crypto.contract.info": "diviner",
66
+ "network.xyo.diviner.stage": "stateToIndexCandidateDiviner"
67
+ },
68
+ "language": "javascript",
69
+ "name": "NftStateToIndexCandidateDiviner",
70
+ "payloadStore": {
71
+ "archivist": "NftArchivist",
72
+ "boundWitnessDiviner": "NftBoundWitnessDiviner",
73
+ "payloadDiviner": "NftPayloadDiviner"
74
+ },
75
+ "schema": "network.xyo.diviner.indexing.temporal.stage.stateToIndexCandidateDiviner.config"
76
+ }
77
+ },
78
+ {
79
+ "config": {
80
+ "labels": {
81
+ "network.xyo.crypto.contract.info": "diviner",
82
+ "network.xyo.diviner.stage": "indexCandidateToIndexDiviner"
83
+ },
84
+ "language": "javascript",
85
+ "name": "NftIndexCandidateToNftIndexDiviner",
86
+ "schema": "network.xyo.diviner.indexing.temporal.stage.indexCandidateToIndexDiviner.config",
87
+ "schemaTransforms": {
88
+ "network.xyo.crypto.contract.info.erc1155": [
89
+ {
90
+ "destinationField": "address",
91
+ "sourcePathExpression": "$.address"
92
+ },
93
+ {
94
+ "destinationField": "chainId",
95
+ "sourcePathExpression": "$.chainId"
96
+ }
97
+ ],
98
+ "network.xyo.timestamp": [
99
+ {
100
+ "destinationField": "timestamp",
101
+ "sourcePathExpression": "$.timestamp"
102
+ }
103
+ ]
104
+ }
105
+ }
106
+ },
107
+ {
108
+ "config": {
109
+ "divinerQuerySchema": "network.xyo.diviner.payload.query",
110
+ "indexQuerySchema": "network.xyo.diviner.payload.query",
111
+ "indexSchema": "network.xyo.diviner.indexing.temporal.result.index",
112
+ "labels": {
113
+ "network.xyo.crypto.contract.info": "diviner",
114
+ "network.xyo.diviner.stage": "divinerQueryToIndexQueryDiviner"
115
+ },
116
+ "language": "javascript",
117
+ "name": "NftQueryToNftIndexQueryDiviner",
118
+ "schema": "network.xyo.diviner.indexing.temporal.stage.divinerQueryToIndexQueryDiviner.config",
119
+ "schemaTransforms": {
120
+ "network.xyo.diviner.payload.query": [
121
+ {
122
+ "destinationField": "address",
123
+ "sourcePathExpression": "$.address"
124
+ },
125
+ {
126
+ "defaultValue": 1,
127
+ "destinationField": "chainId",
128
+ "sourcePathExpression": "$.chainId"
129
+ },
130
+ {
131
+ "defaultValue": 1,
132
+ "destinationField": "limit",
133
+ "sourcePathExpression": "$.limit"
134
+ },
135
+ {
136
+ "defaultValue": 0,
137
+ "destinationField": "offset",
138
+ "sourcePathExpression": "$.offset"
139
+ },
140
+ {
141
+ "defaultValue": "desc",
142
+ "destinationField": "order",
143
+ "sourcePathExpression": "$.order"
144
+ }
145
+ ]
146
+ }
147
+ }
148
+ },
149
+ {
150
+ "config": {
151
+ "labels": {
152
+ "network.xyo.crypto.contract.info": "diviner",
153
+ "network.xyo.diviner.stage": "indexQueryResponseToDivinerQueryResponseDiviner"
154
+ },
155
+ "language": "javascript",
156
+ "name": "NftIndexQueryResponseToNftQueryResponseDiviner",
157
+ "schema": "network.xyo.diviner.indexing.temporal.stage.indexQueryResponseToDivinerQueryResponseDiviner.config"
158
+ }
159
+ }
160
+ ],
161
+ "public": [
162
+ {
163
+ "config": {
164
+ "indexStore": {
165
+ "archivist": "NftDivinerIndexArchivist",
166
+ "boundWitnessDiviner": "NftDivinerIndexBoundWitnessDiviner",
167
+ "payloadDiviner": "NftDivinerIndexPayloadDiviner"
168
+ },
169
+ "indexingDivinerStages": {
170
+ "divinerQueryToIndexQueryDiviner": "NftQueryToNftIndexQueryDiviner",
171
+ "indexCandidateToIndexDiviner": "NftIndexCandidateToNftIndexDiviner",
172
+ "indexQueryResponseToDivinerQueryResponseDiviner": "NftIndexQueryResponseToNftQueryResponseDiviner",
173
+ "stateToIndexCandidateDiviner": "NftStateToIndexCandidateDiviner"
174
+ },
175
+ "language": "javascript",
176
+ "name": "Erc1155IndexDiviner",
177
+ "pollFrequency": 1,
178
+ "schema": "network.xyo.diviner.indexing.temporal.config",
179
+ "stateStore": {
180
+ "archivist": "AddressStateArchivist",
181
+ "boundWitnessDiviner": "AddressStateBoundWitnessDiviner",
182
+ "payloadDiviner": "AddressStatePayloadDiviner"
183
+ }
184
+ }
185
+ }
186
+ ]
187
+ }
188
+ }
189
+ ],
190
+ "schema": "network.xyo.manifest"
191
+ }
@@ -0,0 +1,191 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
3
+ "nodes": [
4
+ {
5
+ "config": {
6
+ "accountPath": "m/44'/60'/1",
7
+ "name": "ERC721Node",
8
+ "schema": "network.xyo.node.config"
9
+ },
10
+ "modules": {
11
+ "private": [
12
+ {
13
+ "config": {
14
+ "language": "javascript",
15
+ "name": "AddressStateArchivist",
16
+ "schema": "network.xyo.archivist.config",
17
+ "storeQueries": false
18
+ }
19
+ },
20
+ {
21
+ "config": {
22
+ "archivist": "AddressStateArchivist",
23
+ "language": "javascript",
24
+ "name": "AddressStateBoundWitnessDiviner",
25
+ "schema": "network.xyo.diviner.boundwitness.config"
26
+ }
27
+ },
28
+ {
29
+ "config": {
30
+ "archivist": "AddressStateArchivist",
31
+ "language": "javascript",
32
+ "name": "AddressStatePayloadDiviner",
33
+ "schema": "network.xyo.diviner.payload.config"
34
+ }
35
+ },
36
+ {
37
+ "config": {
38
+ "language": "javascript",
39
+ "name": "NftDivinerIndexArchivist",
40
+ "schema": "network.xyo.archivist.config"
41
+ }
42
+ },
43
+ {
44
+ "config": {
45
+ "archivist": "NftDivinerIndexArchivist",
46
+ "language": "javascript",
47
+ "name": "NftDivinerIndexBoundWitnessDiviner",
48
+ "schema": "network.xyo.diviner.boundwitness.config"
49
+ }
50
+ },
51
+ {
52
+ "config": {
53
+ "archivist": "NftDivinerIndexArchivist",
54
+ "language": "javascript",
55
+ "name": "NftDivinerIndexPayloadDiviner",
56
+ "schema": "network.xyo.diviner.payload.config"
57
+ }
58
+ },
59
+ {
60
+ "config": {
61
+ "filter": {
62
+ "payload_schemas": ["network.xyo.crypto.contract.info.erc721"]
63
+ },
64
+ "labels": {
65
+ "network.xyo.crypto.contract.info": "diviner",
66
+ "network.xyo.diviner.stage": "stateToIndexCandidateDiviner"
67
+ },
68
+ "language": "javascript",
69
+ "name": "NftStateToIndexCandidateDiviner",
70
+ "payloadStore": {
71
+ "archivist": "NftArchivist",
72
+ "boundWitnessDiviner": "NftBoundWitnessDiviner",
73
+ "payloadDiviner": "NftPayloadDiviner"
74
+ },
75
+ "schema": "network.xyo.diviner.indexing.temporal.stage.stateToIndexCandidateDiviner.config"
76
+ }
77
+ },
78
+ {
79
+ "config": {
80
+ "labels": {
81
+ "network.xyo.crypto.contract.info": "diviner",
82
+ "network.xyo.diviner.stage": "indexCandidateToIndexDiviner"
83
+ },
84
+ "language": "javascript",
85
+ "name": "NftIndexCandidateToNftIndexDiviner",
86
+ "schema": "network.xyo.diviner.indexing.temporal.stage.indexCandidateToIndexDiviner.config",
87
+ "schemaTransforms": {
88
+ "network.xyo.crypto.contract.info.erc721": [
89
+ {
90
+ "destinationField": "address",
91
+ "sourcePathExpression": "$.address"
92
+ },
93
+ {
94
+ "destinationField": "chainId",
95
+ "sourcePathExpression": "$.chainId"
96
+ }
97
+ ],
98
+ "network.xyo.timestamp": [
99
+ {
100
+ "destinationField": "timestamp",
101
+ "sourcePathExpression": "$.timestamp"
102
+ }
103
+ ]
104
+ }
105
+ }
106
+ },
107
+ {
108
+ "config": {
109
+ "divinerQuerySchema": "network.xyo.diviner.payload.query",
110
+ "indexQuerySchema": "network.xyo.diviner.payload.query",
111
+ "indexSchema": "network.xyo.diviner.indexing.temporal.result.index",
112
+ "labels": {
113
+ "network.xyo.crypto.contract.info": "diviner",
114
+ "network.xyo.diviner.stage": "divinerQueryToIndexQueryDiviner"
115
+ },
116
+ "language": "javascript",
117
+ "name": "NftQueryToNftIndexQueryDiviner",
118
+ "schema": "network.xyo.diviner.indexing.temporal.stage.divinerQueryToIndexQueryDiviner.config",
119
+ "schemaTransforms": {
120
+ "network.xyo.diviner.payload.query": [
121
+ {
122
+ "destinationField": "address",
123
+ "sourcePathExpression": "$.address"
124
+ },
125
+ {
126
+ "defaultValue": 1,
127
+ "destinationField": "chainId",
128
+ "sourcePathExpression": "$.chainId"
129
+ },
130
+ {
131
+ "defaultValue": 1,
132
+ "destinationField": "limit",
133
+ "sourcePathExpression": "$.limit"
134
+ },
135
+ {
136
+ "defaultValue": 0,
137
+ "destinationField": "offset",
138
+ "sourcePathExpression": "$.offset"
139
+ },
140
+ {
141
+ "defaultValue": "desc",
142
+ "destinationField": "order",
143
+ "sourcePathExpression": "$.order"
144
+ }
145
+ ]
146
+ }
147
+ }
148
+ },
149
+ {
150
+ "config": {
151
+ "labels": {
152
+ "network.xyo.crypto.contract.info": "diviner",
153
+ "network.xyo.diviner.stage": "indexQueryResponseToDivinerQueryResponseDiviner"
154
+ },
155
+ "language": "javascript",
156
+ "name": "NftIndexQueryResponseToNftQueryResponseDiviner",
157
+ "schema": "network.xyo.diviner.indexing.temporal.stage.indexQueryResponseToDivinerQueryResponseDiviner.config"
158
+ }
159
+ }
160
+ ],
161
+ "public": [
162
+ {
163
+ "config": {
164
+ "indexStore": {
165
+ "archivist": "NftDivinerIndexArchivist",
166
+ "boundWitnessDiviner": "NftDivinerIndexBoundWitnessDiviner",
167
+ "payloadDiviner": "NftDivinerIndexPayloadDiviner"
168
+ },
169
+ "indexingDivinerStages": {
170
+ "divinerQueryToIndexQueryDiviner": "NftQueryToNftIndexQueryDiviner",
171
+ "indexCandidateToIndexDiviner": "NftIndexCandidateToNftIndexDiviner",
172
+ "indexQueryResponseToDivinerQueryResponseDiviner": "NftIndexQueryResponseToNftQueryResponseDiviner",
173
+ "stateToIndexCandidateDiviner": "NftStateToIndexCandidateDiviner"
174
+ },
175
+ "language": "javascript",
176
+ "name": "Erc721IndexDiviner",
177
+ "pollFrequency": 1,
178
+ "schema": "network.xyo.diviner.indexing.temporal.config",
179
+ "stateStore": {
180
+ "archivist": "AddressStateArchivist",
181
+ "boundWitnessDiviner": "AddressStateBoundWitnessDiviner",
182
+ "payloadDiviner": "AddressStatePayloadDiviner"
183
+ }
184
+ }
185
+ }
186
+ ]
187
+ }
188
+ }
189
+ ],
190
+ "schema": "network.xyo.manifest"
191
+ }