@xyo-network/evm-call-witness 2.85.0 → 2.85.2

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 +4 -2
  2. package/dist/browser/Diviner.d.cts.map +1 -1
  3. package/dist/browser/Diviner.d.mts +4 -2
  4. package/dist/browser/Diviner.d.mts.map +1 -1
  5. package/dist/browser/Diviner.d.ts +4 -2
  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 +19 -8
  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 +18 -7
  28. package/dist/browser/index.js.map +1 -1
  29. package/dist/node/Diviner.d.cts +4 -2
  30. package/dist/node/Diviner.d.cts.map +1 -1
  31. package/dist/node/Diviner.d.mts +4 -2
  32. package/dist/node/Diviner.d.mts.map +1 -1
  33. package/dist/node/Diviner.d.ts +4 -2
  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 +21 -8
  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 +18 -7
  56. package/dist/node/index.js.map +1 -1
  57. package/package.json +36 -24
  58. package/src/Diviner.ts +8 -3
  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 +326 -0
  69. package/src/spec/imported/TotalSupplyToNftIndexIndex/Erc721.NftIndex.Index.json +403 -0
package/package.json CHANGED
@@ -10,34 +10,46 @@
10
10
  "url": "https://github.com/XYOracleNetwork/plugins/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^2.13.20",
14
- "@xylabs/hex": "^2.13.20",
15
- "@xylabs/promise": "^2.13.20",
16
- "@xyo-network/abstract-diviner": "^2.85.0",
17
- "@xyo-network/diviner-model": "^2.85.0",
18
- "@xyo-network/erc1822-witness": "~2.85.0",
19
- "@xyo-network/erc1967-witness": "~2.85.0",
20
- "@xyo-network/payload-model": "^2.85.0",
21
- "@xyo-network/witness-evm-abstract": "^2.85.0",
22
- "ethers": "^6.9.1"
13
+ "@xylabs/assert": "^2.13.23",
14
+ "@xylabs/hex": "^2.13.23",
15
+ "@xylabs/promise": "^2.13.23",
16
+ "@xyo-network/diviner-abstract": "^2.85.8",
17
+ "@xyo-network/diviner-model": "^2.85.8",
18
+ "@xyo-network/erc1822-witness": "~2.85.2",
19
+ "@xyo-network/erc1967-witness": "~2.85.2",
20
+ "@xyo-network/payload-model": "^2.85.8",
21
+ "@xyo-network/witness-evm-abstract": "^2.85.8",
22
+ "ethers": "^6.9.2"
23
23
  },
24
24
  "devDependencies": {
25
- "@xylabs/jest-helpers": "^2.13.20",
26
- "@xylabs/profile": "^2.13.20",
25
+ "@xylabs/delay": "^2.13.23",
26
+ "@xylabs/jest-helpers": "^2.13.23",
27
+ "@xylabs/profile": "^2.13.23",
27
28
  "@xylabs/ts-scripts-yarn3": "^3.2.25",
28
29
  "@xylabs/tsconfig": "^3.2.25",
29
- "@xyo-network/account": "^2.85.0",
30
- "@xyo-network/diviner-jsonpatch-memory": "^2.85.0",
31
- "@xyo-network/diviner-jsonpath-aggregate-memory": "^2.85.0",
32
- "@xyo-network/diviner-range": "^2.85.0",
33
- "@xyo-network/evm-contract-witness": "~2.85.0",
34
- "@xyo-network/evm-token-interface-diviner": "~2.85.0",
35
- "@xyo-network/manifest": "^2.85.0",
36
- "@xyo-network/module-model": "^2.85.0",
30
+ "@xyo-network/account": "^2.85.8",
31
+ "@xyo-network/archivist-memory": "^2.85.8",
32
+ "@xyo-network/crypto-contract-function-read-payload-plugin": "~2.85.2",
33
+ "@xyo-network/diviner-boundwitness-memory": "^2.85.8",
34
+ "@xyo-network/diviner-jsonpatch": "^2.85.8",
35
+ "@xyo-network/diviner-jsonpatch-memory": "^2.85.8",
36
+ "@xyo-network/diviner-jsonpath-aggregate-memory": "^2.85.8",
37
+ "@xyo-network/diviner-payload-memory": "^2.85.8",
38
+ "@xyo-network/diviner-payload-model": "^2.85.8",
39
+ "@xyo-network/diviner-range": "^2.85.8",
40
+ "@xyo-network/diviner-temporal-indexing": "^2.85.8",
41
+ "@xyo-network/evm-contract-witness": "~2.85.2",
42
+ "@xyo-network/evm-nft-id-payload-plugin": "~2.85.2",
43
+ "@xyo-network/evm-token-interface-diviner": "~2.85.2",
44
+ "@xyo-network/manifest": "^2.85.8",
45
+ "@xyo-network/module-model": "^2.85.8",
46
+ "@xyo-network/node-memory": "^2.85.8",
37
47
  "@xyo-network/open-zeppelin-typechain": "^3.0.5",
38
- "@xyo-network/sentinel-model": "^2.85.0",
39
- "@xyo-network/witness-adhoc": "^2.85.0",
40
- "@xyo-network/witness-model": "^2.85.0",
48
+ "@xyo-network/sentinel-model": "^2.85.8",
49
+ "@xyo-network/witness-adhoc": "^2.85.8",
50
+ "@xyo-network/witness-model": "^2.85.8",
51
+ "@xyo-network/witness-timestamp": "^2.85.8",
52
+ "async-mutex": "^0.4.0",
41
53
  "jest": "^29.7.0",
42
54
  "typescript": "^5.3.3"
43
55
  },
@@ -80,6 +92,6 @@
80
92
  "url": "https://github.com/XYOracleNetwork/plugins.git"
81
93
  },
82
94
  "sideEffects": false,
83
- "version": "2.85.0",
95
+ "version": "2.85.2",
84
96
  "type": "module"
85
97
  }
package/src/Diviner.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { Promisable } from '@xylabs/promise'
3
- import { AbstractDiviner } from '@xyo-network/abstract-diviner'
3
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract'
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]
@@ -22,7 +23,7 @@ export type EvmCallResultsSchema = typeof EvmCallResultsSchema
22
23
  export type EvmCallResults = Payload<
23
24
  {
24
25
  address: string
25
- chainId: string
26
+ chainId: number
26
27
  results?: Record<
27
28
  string,
28
29
  {
@@ -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
+ }