@xyo-network/crypto-contract-function-read-plugin 3.2.0-rc.1 → 3.2.0-rc.3
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.
- package/dist/browser/Plugin.d.ts +268 -15
- package/dist/browser/Plugin.d.ts.map +1 -1
- package/dist/browser/Witness.d.ts +2 -2
- package/dist/browser/Witness.d.ts.map +1 -1
- package/dist/browser/index.mjs.map +1 -1
- package/dist/neutral/Plugin.d.ts +268 -15
- package/dist/neutral/Plugin.d.ts.map +1 -1
- package/dist/neutral/Witness.d.ts +2 -2
- package/dist/neutral/Witness.d.ts.map +1 -1
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/Plugin.d.ts +268 -15
- package/dist/node/Plugin.d.ts.map +1 -1
- package/dist/node/Witness.d.ts +2 -2
- package/dist/node/Witness.d.ts.map +1 -1
- package/dist/node/index.mjs.map +1 -1
- package/package.json +35 -34
- package/src/Plugin.ts +0 -1
- package/src/Witness.ts +4 -3
- package/src/spec/AddressToTotalSupplyIndex/Erc721.TotalSupply.Index.json +4 -7
- package/src/spec/TotalSupplyToNftIndexIndex/Erc721.NftIndex.Index.json +7 -16
package/dist/node/Plugin.d.ts
CHANGED
|
@@ -1,23 +1,276 @@
|
|
|
1
1
|
import { CryptoContractFunctionReadWitness } from './Witness.ts';
|
|
2
2
|
/** @deprecated use EvmCallWitness instead */
|
|
3
3
|
export declare const CryptoContractFunctionReadWitnessPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CryptoContractFunctionReadWitness<import("@xylabs/object").BaseParamsFields & {
|
|
4
|
-
account?: import(".store/@xyo-network-account-model-virtual-
|
|
4
|
+
account?: import(".store/@xyo-network-account-model-virtual-6c9dfaafa5/package").AccountInstance | "random";
|
|
5
5
|
addToResolvers?: boolean;
|
|
6
|
-
additionalSigners?: import(".store/@xyo-network-account-model-virtual-
|
|
6
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-6c9dfaafa5/package").AccountInstance[];
|
|
7
7
|
allowNameResolution?: boolean;
|
|
8
|
-
config: import("@
|
|
9
|
-
schema: "network.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
config: import("@xylabs/object").DeepRestrictToStringKeys<{
|
|
9
|
+
schema: import("@xyo-network/payload-model").Schema;
|
|
10
|
+
readonly archiving?: {
|
|
11
|
+
readonly archivists?: string[] | undefined;
|
|
12
|
+
readonly queries?: string[] | undefined;
|
|
13
|
+
} | undefined;
|
|
14
|
+
readonly allowedQueries?: string[] | undefined;
|
|
15
|
+
readonly archivist?: import("@xyo-network/module-model").ModuleIdentifier | undefined;
|
|
16
|
+
readonly consoleLogger?: import(".store/@xylabs-logger-npm-4.4.25-f61ab04e23/package").LogLevel | undefined;
|
|
17
|
+
readonly labels?: {
|
|
18
|
+
[x: string]: string | undefined;
|
|
19
|
+
} | undefined;
|
|
20
|
+
readonly name?: import("@xyo-network/module-model").ModuleName | undefined;
|
|
21
|
+
readonly paging?: {
|
|
22
|
+
[x: string]: {
|
|
23
|
+
size?: number | undefined;
|
|
24
|
+
};
|
|
25
|
+
} | undefined;
|
|
26
|
+
readonly retry?: {
|
|
27
|
+
backoff?: number | undefined;
|
|
28
|
+
interval?: number | undefined;
|
|
29
|
+
retries?: number | undefined;
|
|
30
|
+
} | undefined;
|
|
31
|
+
readonly security?: {
|
|
32
|
+
readonly allowAnonymous?: boolean | undefined;
|
|
33
|
+
readonly allowed?: {
|
|
34
|
+
[x: string]: (Lowercase<string> | Lowercase<string>[])[];
|
|
35
|
+
} | undefined;
|
|
36
|
+
readonly disallowed?: {
|
|
37
|
+
[x: string]: Lowercase<string>[];
|
|
38
|
+
} | undefined;
|
|
39
|
+
} | undefined;
|
|
40
|
+
readonly sign?: boolean | undefined;
|
|
41
|
+
readonly storeQueries?: boolean | undefined;
|
|
42
|
+
readonly timestamp?: boolean | undefined;
|
|
43
|
+
address?: string | undefined;
|
|
44
|
+
args?: unknown[] | undefined;
|
|
45
|
+
functionName?: string | undefined;
|
|
46
|
+
abi: string | {
|
|
47
|
+
readonly [x: number]: string | {
|
|
48
|
+
readonly name?: string | undefined;
|
|
49
|
+
readonly type?: string | undefined;
|
|
50
|
+
readonly anonymous?: boolean | undefined;
|
|
51
|
+
readonly payable?: boolean | undefined;
|
|
52
|
+
readonly constant?: boolean | undefined;
|
|
53
|
+
readonly stateMutability?: string | undefined;
|
|
54
|
+
readonly inputs?: {
|
|
55
|
+
readonly [x: number]: {
|
|
56
|
+
readonly name?: string | undefined;
|
|
57
|
+
readonly indexed?: boolean | undefined;
|
|
58
|
+
readonly type?: string | undefined;
|
|
59
|
+
readonly internalType?: string | undefined;
|
|
60
|
+
readonly components?: /*elided*/ any | undefined;
|
|
61
|
+
};
|
|
62
|
+
readonly length: number;
|
|
63
|
+
toString: {};
|
|
64
|
+
toLocaleString: {};
|
|
65
|
+
concat: {};
|
|
66
|
+
join: {};
|
|
67
|
+
slice: {};
|
|
68
|
+
indexOf: {};
|
|
69
|
+
lastIndexOf: {};
|
|
70
|
+
every: {};
|
|
71
|
+
some: {};
|
|
72
|
+
forEach: {};
|
|
73
|
+
map: {};
|
|
74
|
+
filter: {};
|
|
75
|
+
reduce: {};
|
|
76
|
+
reduceRight: {};
|
|
77
|
+
find: {};
|
|
78
|
+
findIndex: {};
|
|
79
|
+
entries: {};
|
|
80
|
+
keys: {};
|
|
81
|
+
values: {};
|
|
82
|
+
includes: {};
|
|
83
|
+
flatMap: {};
|
|
84
|
+
flat: {};
|
|
85
|
+
at: {};
|
|
86
|
+
findLast: {};
|
|
87
|
+
findLastIndex: {};
|
|
88
|
+
toReversed: {};
|
|
89
|
+
toSorted: {};
|
|
90
|
+
toSpliced: {};
|
|
91
|
+
with: {};
|
|
92
|
+
[Symbol.iterator]: {};
|
|
93
|
+
readonly [Symbol.unscopables]: {
|
|
94
|
+
readonly [x: number]: boolean | undefined;
|
|
95
|
+
readonly length?: boolean | undefined;
|
|
96
|
+
toString?: boolean | undefined;
|
|
97
|
+
toLocaleString?: boolean | undefined;
|
|
98
|
+
concat?: boolean | undefined;
|
|
99
|
+
join?: boolean | undefined;
|
|
100
|
+
slice?: boolean | undefined;
|
|
101
|
+
indexOf?: boolean | undefined;
|
|
102
|
+
lastIndexOf?: boolean | undefined;
|
|
103
|
+
every?: boolean | undefined;
|
|
104
|
+
some?: boolean | undefined;
|
|
105
|
+
forEach?: boolean | undefined;
|
|
106
|
+
map?: boolean | undefined;
|
|
107
|
+
filter?: boolean | undefined;
|
|
108
|
+
reduce?: boolean | undefined;
|
|
109
|
+
reduceRight?: boolean | undefined;
|
|
110
|
+
find?: boolean | undefined;
|
|
111
|
+
findIndex?: boolean | undefined;
|
|
112
|
+
entries?: boolean | undefined;
|
|
113
|
+
keys?: boolean | undefined;
|
|
114
|
+
values?: boolean | undefined;
|
|
115
|
+
includes?: boolean | undefined;
|
|
116
|
+
flatMap?: boolean | undefined;
|
|
117
|
+
flat?: boolean | undefined;
|
|
118
|
+
at?: boolean | undefined;
|
|
119
|
+
findLast?: boolean | undefined;
|
|
120
|
+
findLastIndex?: boolean | undefined;
|
|
121
|
+
toReversed?: boolean | undefined;
|
|
122
|
+
toSorted?: boolean | undefined;
|
|
123
|
+
toSpliced?: boolean | undefined;
|
|
124
|
+
with?: boolean | undefined;
|
|
125
|
+
[Symbol.iterator]?: boolean | undefined;
|
|
126
|
+
readonly [Symbol.unscopables]?: boolean | undefined;
|
|
127
|
+
};
|
|
128
|
+
} | undefined;
|
|
129
|
+
readonly outputs?: {
|
|
130
|
+
readonly [x: number]: {
|
|
131
|
+
readonly name?: string | undefined;
|
|
132
|
+
readonly indexed?: boolean | undefined;
|
|
133
|
+
readonly type?: string | undefined;
|
|
134
|
+
readonly internalType?: string | undefined;
|
|
135
|
+
readonly components?: /*elided*/ any | undefined;
|
|
136
|
+
};
|
|
137
|
+
readonly length: number;
|
|
138
|
+
toString: {};
|
|
139
|
+
toLocaleString: {};
|
|
140
|
+
concat: {};
|
|
141
|
+
join: {};
|
|
142
|
+
slice: {};
|
|
143
|
+
indexOf: {};
|
|
144
|
+
lastIndexOf: {};
|
|
145
|
+
every: {};
|
|
146
|
+
some: {};
|
|
147
|
+
forEach: {};
|
|
148
|
+
map: {};
|
|
149
|
+
filter: {};
|
|
150
|
+
reduce: {};
|
|
151
|
+
reduceRight: {};
|
|
152
|
+
find: {};
|
|
153
|
+
findIndex: {};
|
|
154
|
+
entries: {};
|
|
155
|
+
keys: {};
|
|
156
|
+
values: {};
|
|
157
|
+
includes: {};
|
|
158
|
+
flatMap: {};
|
|
159
|
+
flat: {};
|
|
160
|
+
at: {};
|
|
161
|
+
findLast: {};
|
|
162
|
+
findLastIndex: {};
|
|
163
|
+
toReversed: {};
|
|
164
|
+
toSorted: {};
|
|
165
|
+
toSpliced: {};
|
|
166
|
+
with: {};
|
|
167
|
+
[Symbol.iterator]: {};
|
|
168
|
+
readonly [Symbol.unscopables]: {
|
|
169
|
+
readonly [x: number]: boolean | undefined;
|
|
170
|
+
readonly length?: boolean | undefined;
|
|
171
|
+
toString?: boolean | undefined;
|
|
172
|
+
toLocaleString?: boolean | undefined;
|
|
173
|
+
concat?: boolean | undefined;
|
|
174
|
+
join?: boolean | undefined;
|
|
175
|
+
slice?: boolean | undefined;
|
|
176
|
+
indexOf?: boolean | undefined;
|
|
177
|
+
lastIndexOf?: boolean | undefined;
|
|
178
|
+
every?: boolean | undefined;
|
|
179
|
+
some?: boolean | undefined;
|
|
180
|
+
forEach?: boolean | undefined;
|
|
181
|
+
map?: boolean | undefined;
|
|
182
|
+
filter?: boolean | undefined;
|
|
183
|
+
reduce?: boolean | undefined;
|
|
184
|
+
reduceRight?: boolean | undefined;
|
|
185
|
+
find?: boolean | undefined;
|
|
186
|
+
findIndex?: boolean | undefined;
|
|
187
|
+
entries?: boolean | undefined;
|
|
188
|
+
keys?: boolean | undefined;
|
|
189
|
+
values?: boolean | undefined;
|
|
190
|
+
includes?: boolean | undefined;
|
|
191
|
+
flatMap?: boolean | undefined;
|
|
192
|
+
flat?: boolean | undefined;
|
|
193
|
+
at?: boolean | undefined;
|
|
194
|
+
findLast?: boolean | undefined;
|
|
195
|
+
findLastIndex?: boolean | undefined;
|
|
196
|
+
toReversed?: boolean | undefined;
|
|
197
|
+
toSorted?: boolean | undefined;
|
|
198
|
+
toSpliced?: boolean | undefined;
|
|
199
|
+
with?: boolean | undefined;
|
|
200
|
+
[Symbol.iterator]?: boolean | undefined;
|
|
201
|
+
readonly [Symbol.unscopables]?: boolean | undefined;
|
|
202
|
+
};
|
|
203
|
+
} | undefined;
|
|
204
|
+
readonly gas?: string | undefined;
|
|
205
|
+
};
|
|
206
|
+
readonly length: number;
|
|
207
|
+
toString: {};
|
|
208
|
+
toLocaleString: {};
|
|
209
|
+
concat: {};
|
|
210
|
+
join: {};
|
|
211
|
+
slice: {};
|
|
212
|
+
indexOf: {};
|
|
213
|
+
lastIndexOf: {};
|
|
214
|
+
every: {};
|
|
215
|
+
some: {};
|
|
216
|
+
forEach: {};
|
|
217
|
+
map: {};
|
|
218
|
+
filter: {};
|
|
219
|
+
reduce: {};
|
|
220
|
+
reduceRight: {};
|
|
221
|
+
find: {};
|
|
222
|
+
findIndex: {};
|
|
223
|
+
entries: {};
|
|
224
|
+
keys: {};
|
|
225
|
+
values: {};
|
|
226
|
+
includes: {};
|
|
227
|
+
flatMap: {};
|
|
228
|
+
flat: {};
|
|
229
|
+
at: {};
|
|
230
|
+
findLast: {};
|
|
231
|
+
findLastIndex: {};
|
|
232
|
+
toReversed: {};
|
|
233
|
+
toSorted: {};
|
|
234
|
+
toSpliced: {};
|
|
235
|
+
with: {};
|
|
236
|
+
[Symbol.iterator]: {};
|
|
237
|
+
readonly [Symbol.unscopables]: {
|
|
238
|
+
readonly [x: number]: boolean | undefined;
|
|
239
|
+
readonly length?: boolean | undefined;
|
|
240
|
+
toString?: boolean | undefined;
|
|
241
|
+
toLocaleString?: boolean | undefined;
|
|
242
|
+
concat?: boolean | undefined;
|
|
243
|
+
join?: boolean | undefined;
|
|
244
|
+
slice?: boolean | undefined;
|
|
245
|
+
indexOf?: boolean | undefined;
|
|
246
|
+
lastIndexOf?: boolean | undefined;
|
|
247
|
+
every?: boolean | undefined;
|
|
248
|
+
some?: boolean | undefined;
|
|
249
|
+
forEach?: boolean | undefined;
|
|
250
|
+
map?: boolean | undefined;
|
|
251
|
+
filter?: boolean | undefined;
|
|
252
|
+
reduce?: boolean | undefined;
|
|
253
|
+
reduceRight?: boolean | undefined;
|
|
254
|
+
find?: boolean | undefined;
|
|
255
|
+
findIndex?: boolean | undefined;
|
|
256
|
+
entries?: boolean | undefined;
|
|
257
|
+
keys?: boolean | undefined;
|
|
258
|
+
values?: boolean | undefined;
|
|
259
|
+
includes?: boolean | undefined;
|
|
260
|
+
flatMap?: boolean | undefined;
|
|
261
|
+
flat?: boolean | undefined;
|
|
262
|
+
at?: boolean | undefined;
|
|
263
|
+
findLast?: boolean | undefined;
|
|
264
|
+
findLastIndex?: boolean | undefined;
|
|
265
|
+
toReversed?: boolean | undefined;
|
|
266
|
+
toSorted?: boolean | undefined;
|
|
267
|
+
toSpliced?: boolean | undefined;
|
|
268
|
+
with?: boolean | undefined;
|
|
269
|
+
[Symbol.iterator]?: boolean | undefined;
|
|
270
|
+
readonly [Symbol.unscopables]?: boolean | undefined;
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
}>;
|
|
21
274
|
ephemeralQueryAccountEnabled?: boolean;
|
|
22
275
|
moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
|
|
23
276
|
} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAA;AAEhE,6CAA6C;AAC7C,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAUjD,CAAA"}
|
package/dist/node/Witness.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { CryptoContractFunctionCall, CryptoContractFunctionCallResult, Cryp
|
|
|
3
3
|
import type { AnyConfigSchema } from '@xyo-network/module-model';
|
|
4
4
|
import type { Schema } from '@xyo-network/payload-model';
|
|
5
5
|
import type { WitnessParams } from '@xyo-network/witness-model';
|
|
6
|
-
import type { Provider } from 'ethers';
|
|
6
|
+
import type { InterfaceAbi, Provider } from 'ethers';
|
|
7
7
|
/** @deprecated use EvmCallWitness instead */
|
|
8
8
|
export type CryptoContractFunctionReadWitnessParams = WitnessParams<AnyConfigSchema<CryptoContractFunctionReadWitnessConfig>, {
|
|
9
9
|
providers: Provider[];
|
|
@@ -12,7 +12,7 @@ export type CryptoContractFunctionReadWitnessParams = WitnessParams<AnyConfigSch
|
|
|
12
12
|
export declare class CryptoContractFunctionReadWitness<TParams extends CryptoContractFunctionReadWitnessParams = CryptoContractFunctionReadWitnessParams> extends AbstractWitness<TParams, CryptoContractFunctionCall, CryptoContractFunctionCallResult> {
|
|
13
13
|
static readonly configSchemas: Schema[];
|
|
14
14
|
static readonly defaultConfigSchema: Schema;
|
|
15
|
-
get abi():
|
|
15
|
+
get abi(): InterfaceAbi;
|
|
16
16
|
protected observeHandler(inPayloads?: CryptoContractFunctionCall[]): Promise<CryptoContractFunctionCallResult[]>;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=Witness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"
|
|
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,KAAK,EACV,0BAA0B,EAE1B,gCAAgC,EAEhC,uCAAuC,EACxC,MAAM,2DAA2D,CAAA;AAMlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAGpD,6CAA6C;AAC7C,MAAM,MAAM,uCAAuC,GAAG,aAAa,CACjE,eAAe,CAAC,uCAAuC,CAAC,EACxD;IACE,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CACF,CAAA;AAED,6CAA6C;AAC7C,qBAAa,iCAAiC,CAC5C,OAAO,SAAS,uCAAuC,GAAG,uCAAuC,CACjG,SAAQ,eAAe,CAAC,OAAO,EAAE,0BAA0B,EAAE,gCAAgC,CAAC;IAC9F,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA0E;IAC1H,gBAAyB,mBAAmB,EAAE,MAAM,CAAgD;IAEpG,IAAI,GAAG,IACoD,YAAY,CACtE;cAEwB,cAAc,CAAC,UAAU,GAAE,0BAA0B,EAAO,GAAG,OAAO,CAAC,gCAAgC,EAAE,CAAC;CAgDpI"}
|
package/dist/node/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Promisable } from '@xylabs/promise'\nimport type {\n ContractInfo,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\n/** @deprecated use EvmCallDiviner instead */\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\n/** @deprecated use EvmCallDiviner instead */\nexport class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractDivinerConfigSchema\n static override labels: CryptoContractDivinerLabels = { ...super.labels, ...CryptoContractDivinerLabels }\n\n protected static findCallResult<TResult = string>(\n address: string,\n functionName: string,\n payloads: CryptoContractFunctionCallResult[],\n ): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asCryptoContractFunctionCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n // eslint-disable-next-line unicorn/no-array-reduce\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo {\n return {\n address: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: ContractInfoSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: CryptoContractFunctionCallResult[] = []): Promise<ContractInfo[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<CryptoContractFunctionCallResult>(CryptoContractFunctionCallResultSchema))\n const addresses = Object.keys(\n // eslint-disable-next-line unicorn/no-array-reduce\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const info: ContractInfo = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return info\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']> {\n // eslint-disable-next-line unicorn/no-array-reduce\n return callResults.reduce<Record<string, unknown>>((prev, callResult) => {\n prev[callResult.functionName] = asCryptoContractFunctionCallSuccess(callResult)?.result\n return prev\n }, {})\n }\n}\n","import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\n// eslint-disable-next-line import-x/no-deprecated\nimport { CryptoContractFunctionReadWitness } from './Witness.ts'\n\n/** @deprecated use EvmCallWitness instead */\nexport const CryptoContractFunctionReadWitnessPlugin = () =>\n\n createPayloadSetWitnessPlugin<CryptoContractFunctionReadWitness>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CryptoContractFunctionReadWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport type {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport {\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport type { AnyConfigSchema } from '@xyo-network/module-model'\nimport type { Schema } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport type { WitnessParams } from '@xyo-network/witness-model'\nimport type { Provider } from 'ethers'\nimport { Contract } from 'ethers'\n\n/** @deprecated use EvmCallWitness instead */\nexport type CryptoContractFunctionReadWitnessParams = WitnessParams<\n AnyConfigSchema<CryptoContractFunctionReadWitnessConfig>,\n {\n providers: Provider[]\n }\n>\n\n/** @deprecated use EvmCallWitness instead */\nexport class CryptoContractFunctionReadWitness<\n TParams extends CryptoContractFunctionReadWitnessParams = CryptoContractFunctionReadWitnessParams,\n> extends AbstractWitness<TParams, CryptoContractFunctionCall, CryptoContractFunctionCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractFunctionReadWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractFunctionReadWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: CryptoContractFunctionCall[] = []): Promise<CryptoContractFunctionCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(CryptoContractFunctionCallSchema)).map(async ({\n functionName, args, address,\n }) => {\n const { providers } = this.params\n const provider = providers[Date.now() % providers.length] // pick a random provider\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])]\n\n const contract = new Contract(validatedAddress, this.abi, provider)\n try {\n const result = await contract[validatedFunctionName](...mergedArgs)\n const transformedResult = typeof result === 'bigint' ? result.toString(16) : result\n const observation: CryptoContractFunctionCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n } catch (ex) {\n const error = ex as Error & { code: string }\n console.log(`Error [${this.config.name}]: ${error.code}`)\n const observation: CryptoContractFunctionCallFailure = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n error: error.code,\n functionName: validatedFunctionName,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n }\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":"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","names":["result","assertEx","CryptoContractFunctionCallResultSchema","isPayloadOfSchemaType"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Promisable } from '@xylabs/promise'\nimport type {\n ContractInfo,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\n/** @deprecated use EvmCallDiviner instead */\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\n/** @deprecated use EvmCallDiviner instead */\nexport class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractDivinerConfigSchema\n static override labels: CryptoContractDivinerLabels = { ...super.labels, ...CryptoContractDivinerLabels }\n\n protected static findCallResult<TResult = string>(\n address: string,\n functionName: string,\n payloads: CryptoContractFunctionCallResult[],\n ): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asCryptoContractFunctionCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n // eslint-disable-next-line unicorn/no-array-reduce\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo {\n return {\n address: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: ContractInfoSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: CryptoContractFunctionCallResult[] = []): Promise<ContractInfo[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<CryptoContractFunctionCallResult>(CryptoContractFunctionCallResultSchema))\n const addresses = Object.keys(\n // eslint-disable-next-line unicorn/no-array-reduce\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const info: ContractInfo = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return info\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']> {\n // eslint-disable-next-line unicorn/no-array-reduce\n return callResults.reduce<Record<string, unknown>>((prev, callResult) => {\n prev[callResult.functionName] = asCryptoContractFunctionCallSuccess(callResult)?.result\n return prev\n }, {})\n }\n}\n","import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CryptoContractFunctionReadWitness } from './Witness.ts'\n\n/** @deprecated use EvmCallWitness instead */\nexport const CryptoContractFunctionReadWitnessPlugin = () =>\n\n createPayloadSetWitnessPlugin<CryptoContractFunctionReadWitness>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CryptoContractFunctionReadWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport type { JsonObject } from '@xylabs/object'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport type {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport {\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport type { AnyConfigSchema } from '@xyo-network/module-model'\nimport type { Schema } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport type { WitnessParams } from '@xyo-network/witness-model'\nimport type { InterfaceAbi, Provider } from 'ethers'\nimport { Contract } from 'ethers'\n\n/** @deprecated use EvmCallWitness instead */\nexport type CryptoContractFunctionReadWitnessParams = WitnessParams<\n AnyConfigSchema<CryptoContractFunctionReadWitnessConfig>,\n {\n providers: Provider[]\n }\n>\n\n/** @deprecated use EvmCallWitness instead */\nexport class CryptoContractFunctionReadWitness<\n TParams extends CryptoContractFunctionReadWitnessParams = CryptoContractFunctionReadWitnessParams,\n> extends AbstractWitness<TParams, CryptoContractFunctionCall, CryptoContractFunctionCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractFunctionReadWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractFunctionReadWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi') as InterfaceAbi\n }\n\n protected override async observeHandler(inPayloads: CryptoContractFunctionCall[] = []): Promise<CryptoContractFunctionCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(CryptoContractFunctionCallSchema)).map(async ({\n functionName, args, address,\n }) => {\n const { providers } = this.params\n const provider = providers[Date.now() % providers.length] // pick a random provider\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])] as JsonObject[]\n\n const contract = new Contract(validatedAddress, this.abi, provider)\n try {\n const result = await contract[validatedFunctionName](...mergedArgs)\n const transformedResult = typeof result === 'bigint' ? result.toString(16) : result\n const observation: CryptoContractFunctionCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n } catch (ex) {\n const error = ex as Error & { code: string }\n console.log(`Error [${this.config.name}]: ${error.code}`)\n const observation: CryptoContractFunctionCallFailure = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n error: error.code,\n functionName: validatedFunctionName,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n }\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":"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","names":["result","assertEx","CryptoContractFunctionCallResultSchema","isPayloadOfSchemaType"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/crypto-contract-function-read-plugin",
|
|
3
|
-
"version": "3.2.0-rc.
|
|
3
|
+
"version": "3.2.0-rc.3",
|
|
4
4
|
"description": "Typescript/Javascript Plugins for XYO Platform",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -29,42 +29,43 @@
|
|
|
29
29
|
"module": "dist/neutral/index.mjs",
|
|
30
30
|
"types": "dist/neutral/index.d.ts",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@xylabs/assert": "^4.4.
|
|
33
|
-
"@xylabs/
|
|
34
|
-
"@
|
|
35
|
-
"@xyo-network/
|
|
36
|
-
"@xyo-network/crypto-
|
|
37
|
-
"@xyo-network/
|
|
38
|
-
"@xyo-network/
|
|
39
|
-
"@xyo-network/
|
|
40
|
-
"@xyo-network/
|
|
41
|
-
"@xyo-network/
|
|
32
|
+
"@xylabs/assert": "^4.4.25",
|
|
33
|
+
"@xylabs/object": "^4.4.25",
|
|
34
|
+
"@xylabs/promise": "^4.4.25",
|
|
35
|
+
"@xyo-network/abstract-witness": "^3.6.0-rc.13",
|
|
36
|
+
"@xyo-network/crypto-contract-function-read-payload-plugin": "^3.2.0-rc.3",
|
|
37
|
+
"@xyo-network/crypto-nft-payload-plugin": "^3.2.0-rc.3",
|
|
38
|
+
"@xyo-network/diviner-abstract": "^3.6.0-rc.13",
|
|
39
|
+
"@xyo-network/module-model": "^3.6.0-rc.13",
|
|
40
|
+
"@xyo-network/payload-model": "^3.6.0-rc.13",
|
|
41
|
+
"@xyo-network/payloadset-plugin": "^3.6.0-rc.13",
|
|
42
|
+
"@xyo-network/witness-model": "^3.6.0-rc.13",
|
|
42
43
|
"ethers": "^6.13.4"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
|
-
"@xylabs/delay": "^4.4.
|
|
46
|
-
"@xylabs/hex": "^4.4.
|
|
47
|
-
"@xylabs/ts-scripts-yarn3": "^4.2.
|
|
48
|
-
"@xylabs/tsconfig": "^4.2.
|
|
49
|
-
"@xylabs/vitest-extended": "^4.4.
|
|
50
|
-
"@xyo-network/account": "^3.6.0-rc.
|
|
51
|
-
"@xyo-network/archivist-memory": "^3.6.0-rc.
|
|
52
|
-
"@xyo-network/diviner-boundwitness-memory": "^3.6.0-rc.
|
|
53
|
-
"@xyo-network/diviner-jsonpatch": "^3.6.0-rc.
|
|
54
|
-
"@xyo-network/diviner-jsonpath-aggregate-memory": "^3.6.0-rc.
|
|
55
|
-
"@xyo-network/diviner-model": "^3.6.0-rc.
|
|
56
|
-
"@xyo-network/diviner-payload-memory": "^3.6.0-rc.
|
|
57
|
-
"@xyo-network/diviner-payload-model": "^3.6.0-rc.
|
|
58
|
-
"@xyo-network/diviner-range": "^3.6.0-rc.
|
|
59
|
-
"@xyo-network/diviner-temporal-indexing": "^3.6.0-rc.
|
|
60
|
-
"@xyo-network/evm-nft-id-payload-plugin": "^3.2.0-rc.
|
|
61
|
-
"@xyo-network/manifest": "^3.6.0-rc.
|
|
62
|
-
"@xyo-network/module-factory-locator": "^3.6.0-rc.
|
|
63
|
-
"@xyo-network/node-memory": "^3.6.0-rc.
|
|
64
|
-
"@xyo-network/open-zeppelin-typechain": "^3.2
|
|
65
|
-
"@xyo-network/sentinel-model": "^3.6.0-rc.
|
|
66
|
-
"@xyo-network/witness-blockchain-abstract": "^3.6.0-rc.
|
|
67
|
-
"@xyo-network/witness-timestamp": "^3.6.0-rc.
|
|
46
|
+
"@xylabs/delay": "^4.4.25",
|
|
47
|
+
"@xylabs/hex": "^4.4.25",
|
|
48
|
+
"@xylabs/ts-scripts-yarn3": "^4.2.6",
|
|
49
|
+
"@xylabs/tsconfig": "^4.2.6",
|
|
50
|
+
"@xylabs/vitest-extended": "^4.4.25",
|
|
51
|
+
"@xyo-network/account": "^3.6.0-rc.13",
|
|
52
|
+
"@xyo-network/archivist-memory": "^3.6.0-rc.13",
|
|
53
|
+
"@xyo-network/diviner-boundwitness-memory": "^3.6.0-rc.13",
|
|
54
|
+
"@xyo-network/diviner-jsonpatch": "^3.6.0-rc.13",
|
|
55
|
+
"@xyo-network/diviner-jsonpath-aggregate-memory": "^3.6.0-rc.13",
|
|
56
|
+
"@xyo-network/diviner-model": "^3.6.0-rc.13",
|
|
57
|
+
"@xyo-network/diviner-payload-memory": "^3.6.0-rc.13",
|
|
58
|
+
"@xyo-network/diviner-payload-model": "^3.6.0-rc.13",
|
|
59
|
+
"@xyo-network/diviner-range": "^3.6.0-rc.13",
|
|
60
|
+
"@xyo-network/diviner-temporal-indexing": "^3.6.0-rc.13",
|
|
61
|
+
"@xyo-network/evm-nft-id-payload-plugin": "^3.2.0-rc.3",
|
|
62
|
+
"@xyo-network/manifest": "^3.6.0-rc.13",
|
|
63
|
+
"@xyo-network/module-factory-locator": "^3.6.0-rc.13",
|
|
64
|
+
"@xyo-network/node-memory": "^3.6.0-rc.13",
|
|
65
|
+
"@xyo-network/open-zeppelin-typechain": "^3.3.2",
|
|
66
|
+
"@xyo-network/sentinel-model": "^3.6.0-rc.13",
|
|
67
|
+
"@xyo-network/witness-blockchain-abstract": "^3.6.0-rc.13",
|
|
68
|
+
"@xyo-network/witness-timestamp": "^3.6.0-rc.13",
|
|
68
69
|
"async-mutex": "^0.5.0",
|
|
69
70
|
"typescript": "^5.7.2",
|
|
70
71
|
"vitest": "^2.1.8"
|
package/src/Plugin.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'
|
|
|
2
2
|
import { PayloadSetSchema } from '@xyo-network/payload-model'
|
|
3
3
|
import { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'
|
|
4
4
|
|
|
5
|
-
// eslint-disable-next-line import-x/no-deprecated
|
|
6
5
|
import { CryptoContractFunctionReadWitness } from './Witness.ts'
|
|
7
6
|
|
|
8
7
|
/** @deprecated use EvmCallWitness instead */
|
package/src/Witness.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import type { JsonObject } from '@xylabs/object'
|
|
2
3
|
import { AbstractWitness } from '@xyo-network/abstract-witness'
|
|
3
4
|
import type {
|
|
4
5
|
CryptoContractFunctionCall,
|
|
@@ -16,7 +17,7 @@ import type { AnyConfigSchema } from '@xyo-network/module-model'
|
|
|
16
17
|
import type { Schema } from '@xyo-network/payload-model'
|
|
17
18
|
import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
|
|
18
19
|
import type { WitnessParams } from '@xyo-network/witness-model'
|
|
19
|
-
import type { Provider } from 'ethers'
|
|
20
|
+
import type { InterfaceAbi, Provider } from 'ethers'
|
|
20
21
|
import { Contract } from 'ethers'
|
|
21
22
|
|
|
22
23
|
/** @deprecated use EvmCallWitness instead */
|
|
@@ -35,7 +36,7 @@ export class CryptoContractFunctionReadWitness<
|
|
|
35
36
|
static override readonly defaultConfigSchema: Schema = CryptoContractFunctionReadWitnessConfigSchema
|
|
36
37
|
|
|
37
38
|
get abi() {
|
|
38
|
-
return assertEx(this.config.abi, () => 'Missing abi')
|
|
39
|
+
return assertEx(this.config.abi, () => 'Missing abi') as InterfaceAbi
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
protected override async observeHandler(inPayloads: CryptoContractFunctionCall[] = []): Promise<CryptoContractFunctionCallResult[]> {
|
|
@@ -49,7 +50,7 @@ export class CryptoContractFunctionReadWitness<
|
|
|
49
50
|
const provider = providers[Date.now() % providers.length] // pick a random provider
|
|
50
51
|
const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')
|
|
51
52
|
const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')
|
|
52
|
-
const mergedArgs = [...(args ?? this.config.args ?? [])]
|
|
53
|
+
const mergedArgs = [...(args ?? this.config.args ?? [])] as JsonObject[]
|
|
53
54
|
|
|
54
55
|
const contract = new Contract(validatedAddress, this.abi, provider)
|
|
55
56
|
try {
|
|
@@ -122,9 +122,8 @@
|
|
|
122
122
|
"sourcePathExpression": "$.limit"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"sourcePathExpression": "$.offset"
|
|
125
|
+
"destinationField": "cursor",
|
|
126
|
+
"sourcePathExpression": "$.cursor"
|
|
128
127
|
},
|
|
129
128
|
{
|
|
130
129
|
"defaultValue": "desc",
|
|
@@ -214,9 +213,7 @@
|
|
|
214
213
|
{
|
|
215
214
|
"config": {
|
|
216
215
|
"archiving": {
|
|
217
|
-
"archivists": [
|
|
218
|
-
"Archivist"
|
|
219
|
-
]
|
|
216
|
+
"archivists": ["Archivist"]
|
|
220
217
|
},
|
|
221
218
|
"language": "javascript",
|
|
222
219
|
"name": "Sentinel",
|
|
@@ -239,4 +236,4 @@
|
|
|
239
236
|
}
|
|
240
237
|
],
|
|
241
238
|
"schema": "network.xyo.manifest"
|
|
242
|
-
}
|
|
239
|
+
}
|
|
@@ -52,9 +52,7 @@
|
|
|
52
52
|
{
|
|
53
53
|
"config": {
|
|
54
54
|
"filter": {
|
|
55
|
-
"payload_schemas": [
|
|
56
|
-
"network.xyo.evm.nft.index"
|
|
57
|
-
]
|
|
55
|
+
"payload_schemas": ["network.xyo.evm.nft.index"]
|
|
58
56
|
},
|
|
59
57
|
"labels": {
|
|
60
58
|
"network.xyo.diviner.stage": "stateToIndexCandidateDiviner"
|
|
@@ -126,9 +124,8 @@
|
|
|
126
124
|
"sourcePathExpression": "$.limit"
|
|
127
125
|
},
|
|
128
126
|
{
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
"sourcePathExpression": "$.offset"
|
|
127
|
+
"destinationField": "cursor",
|
|
128
|
+
"sourcePathExpression": "$.cursor"
|
|
132
129
|
},
|
|
133
130
|
{
|
|
134
131
|
"defaultValue": "desc",
|
|
@@ -299,15 +296,11 @@
|
|
|
299
296
|
"mod": "TotalSupplyToRangeQueryTransformDiviner"
|
|
300
297
|
},
|
|
301
298
|
{
|
|
302
|
-
"input": [
|
|
303
|
-
"TotalSupplyToRangeQueryTransformDiviner"
|
|
304
|
-
],
|
|
299
|
+
"input": ["TotalSupplyToRangeQueryTransformDiviner"],
|
|
305
300
|
"mod": "RangeDiviner"
|
|
306
301
|
},
|
|
307
302
|
{
|
|
308
|
-
"input": [
|
|
309
|
-
"RangeDiviner"
|
|
310
|
-
],
|
|
303
|
+
"input": ["RangeDiviner"],
|
|
311
304
|
"mod": "RangeToNftIndexTransformDiviner"
|
|
312
305
|
}
|
|
313
306
|
]
|
|
@@ -362,9 +355,7 @@
|
|
|
362
355
|
{
|
|
363
356
|
"config": {
|
|
364
357
|
"archiving": {
|
|
365
|
-
"archivists": [
|
|
366
|
-
"Archivist"
|
|
367
|
-
]
|
|
358
|
+
"archivists": ["Archivist"]
|
|
368
359
|
},
|
|
369
360
|
"name": "Sentinel",
|
|
370
361
|
"schema": "network.xyo.sentinel.config",
|
|
@@ -400,4 +391,4 @@
|
|
|
400
391
|
}
|
|
401
392
|
],
|
|
402
393
|
"schema": "network.xyo.manifest"
|
|
403
|
-
}
|
|
394
|
+
}
|