@xyo-network/crypto-contract-function-read-plugin 2.99.4 → 2.99.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Diviner/Diviner.d.cts.map +1 -1
- package/dist/browser/Diviner/Diviner.d.mts.map +1 -1
- package/dist/browser/Diviner/Diviner.d.ts.map +1 -1
- package/dist/browser/Diviner/index.d.cts +1 -1
- package/dist/browser/Diviner/index.d.mts +1 -1
- package/dist/browser/Diviner/index.d.ts +1 -1
- package/dist/browser/Plugin.d.cts +1 -1
- package/dist/browser/Plugin.d.cts.map +1 -1
- package/dist/browser/Plugin.d.mts +1 -1
- package/dist/browser/Plugin.d.mts.map +1 -1
- package/dist/browser/Plugin.d.ts +1 -1
- package/dist/browser/Plugin.d.ts.map +1 -1
- package/dist/browser/Witness.d.cts.map +1 -1
- package/dist/browser/Witness.d.mts.map +1 -1
- package/dist/browser/Witness.d.ts.map +1 -1
- package/dist/browser/index.cjs +73 -62
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +3 -3
- package/dist/browser/index.d.cts.map +1 -1
- package/dist/browser/index.d.mts +3 -3
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.d.ts +3 -3
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.mjs +157 -0
- package/dist/browser/index.mjs.map +1 -0
- package/dist/neutral/Diviner/Diviner.d.cts.map +1 -1
- package/dist/neutral/Diviner/Diviner.d.mts.map +1 -1
- package/dist/neutral/Diviner/Diviner.d.ts.map +1 -1
- package/dist/neutral/Diviner/index.d.cts +1 -1
- package/dist/neutral/Diviner/index.d.mts +1 -1
- package/dist/neutral/Diviner/index.d.ts +1 -1
- package/dist/neutral/Plugin.d.cts +1 -1
- package/dist/neutral/Plugin.d.cts.map +1 -1
- package/dist/neutral/Plugin.d.mts +1 -1
- package/dist/neutral/Plugin.d.mts.map +1 -1
- package/dist/neutral/Plugin.d.ts +1 -1
- package/dist/neutral/Plugin.d.ts.map +1 -1
- package/dist/neutral/Witness.d.cts.map +1 -1
- package/dist/neutral/Witness.d.mts.map +1 -1
- package/dist/neutral/Witness.d.ts.map +1 -1
- package/dist/neutral/index.cjs +73 -62
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.d.cts +3 -3
- package/dist/neutral/index.d.cts.map +1 -1
- package/dist/neutral/index.d.mts +3 -3
- package/dist/neutral/index.d.mts.map +1 -1
- package/dist/neutral/index.d.ts +3 -3
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +157 -0
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/node/Diviner/Diviner.d.cts.map +1 -1
- package/dist/node/Diviner/Diviner.d.mts.map +1 -1
- package/dist/node/Diviner/Diviner.d.ts.map +1 -1
- package/dist/node/Diviner/index.d.cts +1 -1
- package/dist/node/Diviner/index.d.mts +1 -1
- package/dist/node/Diviner/index.d.ts +1 -1
- package/dist/node/Plugin.d.cts +1 -1
- package/dist/node/Plugin.d.cts.map +1 -1
- package/dist/node/Plugin.d.mts +1 -1
- package/dist/node/Plugin.d.mts.map +1 -1
- package/dist/node/Plugin.d.ts +1 -1
- package/dist/node/Plugin.d.ts.map +1 -1
- package/dist/node/Witness.d.cts.map +1 -1
- package/dist/node/Witness.d.mts.map +1 -1
- package/dist/node/Witness.d.ts.map +1 -1
- package/dist/node/index.cjs +80 -66
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +3 -3
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +3 -3
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +3 -3
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.mjs +163 -0
- package/dist/node/index.mjs.map +1 -0
- package/package.json +38 -38
- package/src/Diviner/Diviner.ts +2 -4
- package/src/Diviner/index.ts +1 -1
- package/src/Plugin.ts +2 -3
- package/src/Witness.ts +1 -2
- package/src/index.ts +3 -4
- package/dist/browser/index.js +0 -154
- package/dist/browser/index.js.map +0 -1
- package/dist/neutral/index.js +0 -154
- package/dist/neutral/index.js.map +0 -1
- package/dist/node/index.js +0 -157
- package/dist/node/index.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './Diviner.
|
|
1
|
+
export * from './Diviner.ts';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './Diviner.
|
|
1
|
+
export * from './Diviner.ts';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/Plugin.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CryptoContractFunctionReadWitness } from './Witness.
|
|
1
|
+
import { CryptoContractFunctionReadWitness } from './Witness.ts';
|
|
2
2
|
export declare const CryptoContractFunctionReadWitnessPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CryptoContractFunctionReadWitness<import("@xylabs/object").BaseParamsFields & {
|
|
3
3
|
account?: import("@xyo-network/account-model").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAA;AAGhE,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAA;AAGhE,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;GAUjD,CAAA"}
|
package/dist/node/Plugin.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CryptoContractFunctionReadWitness } from './Witness.
|
|
1
|
+
import { CryptoContractFunctionReadWitness } from './Witness.ts';
|
|
2
2
|
export declare const CryptoContractFunctionReadWitnessPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CryptoContractFunctionReadWitness<import("@xylabs/object").BaseParamsFields & {
|
|
3
3
|
account?: import("@xyo-network/account-model").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAA;AAGhE,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAA;AAGhE,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;GAUjD,CAAA"}
|
package/dist/node/Plugin.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CryptoContractFunctionReadWitness } from './Witness.
|
|
1
|
+
import { CryptoContractFunctionReadWitness } from './Witness.ts';
|
|
2
2
|
export declare const CryptoContractFunctionReadWitnessPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CryptoContractFunctionReadWitness<import("@xylabs/object").BaseParamsFields & {
|
|
3
3
|
account?: import("@xyo-network/account-model").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAA;AAGhE,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAA;AAGhE,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;GAUjD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,0BAA0B,EAE1B,gCAAgC,EAIhC,uCAAuC,EAExC,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAyB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAY,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG3C,MAAM,MAAM,uCAAuC,GAAG,aAAa,CACjE,eAAe,CAAC,uCAAuC,CAAC,EACxD;IACE,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CACF,CAAA;AAGD,qBAAa,iCAAiC,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,0BAA0B,EAE1B,gCAAgC,EAIhC,uCAAuC,EAExC,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAyB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAY,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG3C,MAAM,MAAM,uCAAuC,GAAG,aAAa,CACjE,eAAe,CAAC,uCAAuC,CAAC,EACxD;IACE,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CACF,CAAA;AAGD,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,iEAEN;cAEwB,cAAc,CAAC,UAAU,GAAE,0BAA0B,EAAO,GAAG,OAAO,CAAC,gCAAgC,EAAE,CAAC;CA8CpI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,0BAA0B,EAE1B,gCAAgC,EAIhC,uCAAuC,EAExC,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAyB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAY,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG3C,MAAM,MAAM,uCAAuC,GAAG,aAAa,CACjE,eAAe,CAAC,uCAAuC,CAAC,EACxD;IACE,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CACF,CAAA;AAGD,qBAAa,iCAAiC,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,0BAA0B,EAE1B,gCAAgC,EAIhC,uCAAuC,EAExC,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAyB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAY,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG3C,MAAM,MAAM,uCAAuC,GAAG,aAAa,CACjE,eAAe,CAAC,uCAAuC,CAAC,EACxD;IACE,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CACF,CAAA;AAGD,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,iEAEN;cAEwB,cAAc,CAAC,UAAU,GAAE,0BAA0B,EAAO,GAAG,OAAO,CAAC,gCAAgC,EAAE,CAAC;CA8CpI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,0BAA0B,EAE1B,gCAAgC,EAIhC,uCAAuC,EAExC,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAyB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAY,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG3C,MAAM,MAAM,uCAAuC,GAAG,aAAa,CACjE,eAAe,CAAC,uCAAuC,CAAC,EACxD;IACE,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CACF,CAAA;AAGD,qBAAa,iCAAiC,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EACL,0BAA0B,EAE1B,gCAAgC,EAIhC,uCAAuC,EAExC,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAyB,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAY,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG3C,MAAM,MAAM,uCAAuC,GAAG,aAAa,CACjE,eAAe,CAAC,uCAAuC,CAAC,EACxD;IACE,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CACF,CAAA;AAGD,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,iEAEN;cAEwB,cAAc,CAAC,UAAU,GAAE,0BAA0B,EAAO,GAAG,OAAO,CAAC,gCAAgC,EAAE,CAAC;CA8CpI"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __reflectGet = Reflect.get;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
10
|
var __export = (target, all) => {
|
|
7
11
|
for (var name in all)
|
|
8
12
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,6 +20,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
20
|
return to;
|
|
17
21
|
};
|
|
18
22
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
24
|
+
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
19
25
|
|
|
20
26
|
// src/index.ts
|
|
21
27
|
var src_exports = {};
|
|
@@ -32,10 +38,7 @@ var import_assert = require("@xylabs/assert");
|
|
|
32
38
|
var import_crypto_contract_function_read_payload_plugin = require("@xyo-network/crypto-contract-function-read-payload-plugin");
|
|
33
39
|
var import_diviner_abstract = require("@xyo-network/diviner-abstract");
|
|
34
40
|
var import_payload_model = require("@xyo-network/payload-model");
|
|
35
|
-
var
|
|
36
|
-
static configSchemas = [...super.configSchemas, import_crypto_contract_function_read_payload_plugin.CryptoContractDivinerConfigSchema];
|
|
37
|
-
static defaultConfigSchema = import_crypto_contract_function_read_payload_plugin.CryptoContractDivinerConfigSchema;
|
|
38
|
-
static labels = { ...super.labels, ...import_crypto_contract_function_read_payload_plugin.CryptoContractDivinerLabels };
|
|
41
|
+
var _CryptoContractDiviner = class _CryptoContractDiviner extends import_diviner_abstract.AbstractDiviner {
|
|
39
42
|
static findCallResult(address, functionName, payloads) {
|
|
40
43
|
var _a;
|
|
41
44
|
const foundPayload = payloads.find((payload) => payload.functionName === functionName && payload.address === address);
|
|
@@ -51,9 +54,7 @@ var CryptoContractDiviner = class _CryptoContractDiviner extends import_diviner_
|
|
|
51
54
|
}
|
|
52
55
|
contractInfoRequiredFields(callResults) {
|
|
53
56
|
return {
|
|
54
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
55
57
|
address: (0, import_assert.assertEx)(_CryptoContractDiviner.matchingExistingField(callResults, "address"), () => "Mismatched address"),
|
|
56
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
57
58
|
chainId: (0, import_assert.assertEx)(_CryptoContractDiviner.matchingExistingField(callResults, "chainId"), () => "Mismatched chainId"),
|
|
58
59
|
schema: import_crypto_contract_function_read_payload_plugin.ContractInfoSchema
|
|
59
60
|
};
|
|
@@ -69,16 +70,14 @@ var CryptoContractDiviner = class _CryptoContractDiviner extends import_diviner_
|
|
|
69
70
|
return prev;
|
|
70
71
|
}, {})
|
|
71
72
|
);
|
|
72
|
-
const result = await Promise.all(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
})
|
|
81
|
-
);
|
|
73
|
+
const result = await Promise.all(addresses.map(async (address) => {
|
|
74
|
+
const foundCallResults = callResults.filter((callResult) => callResult.address === address);
|
|
75
|
+
const info = {
|
|
76
|
+
results: await this.reduceResults(foundCallResults),
|
|
77
|
+
...this.contractInfoRequiredFields(foundCallResults)
|
|
78
|
+
};
|
|
79
|
+
return info;
|
|
80
|
+
}));
|
|
82
81
|
return result;
|
|
83
82
|
}
|
|
84
83
|
reduceResults(callResults) {
|
|
@@ -89,6 +88,17 @@ var CryptoContractDiviner = class _CryptoContractDiviner extends import_diviner_
|
|
|
89
88
|
}, {});
|
|
90
89
|
}
|
|
91
90
|
};
|
|
91
|
+
__name(_CryptoContractDiviner, "CryptoContractDiviner");
|
|
92
|
+
__publicField(_CryptoContractDiviner, "configSchemas", [
|
|
93
|
+
...__superGet(_CryptoContractDiviner, _CryptoContractDiviner, "configSchemas"),
|
|
94
|
+
import_crypto_contract_function_read_payload_plugin.CryptoContractDivinerConfigSchema
|
|
95
|
+
]);
|
|
96
|
+
__publicField(_CryptoContractDiviner, "defaultConfigSchema", import_crypto_contract_function_read_payload_plugin.CryptoContractDivinerConfigSchema);
|
|
97
|
+
__publicField(_CryptoContractDiviner, "labels", {
|
|
98
|
+
...__superGet(_CryptoContractDiviner, _CryptoContractDiviner, "labels"),
|
|
99
|
+
...import_crypto_contract_function_read_payload_plugin.CryptoContractDivinerLabels
|
|
100
|
+
});
|
|
101
|
+
var CryptoContractDiviner = _CryptoContractDiviner;
|
|
92
102
|
|
|
93
103
|
// src/Plugin.ts
|
|
94
104
|
var import_crypto_nft_payload_plugin = require("@xyo-network/crypto-nft-payload-plugin");
|
|
@@ -101,50 +111,48 @@ var import_abstract_witness = require("@xyo-network/abstract-witness");
|
|
|
101
111
|
var import_crypto_contract_function_read_payload_plugin2 = require("@xyo-network/crypto-contract-function-read-payload-plugin");
|
|
102
112
|
var import_payload_model2 = require("@xyo-network/payload-model");
|
|
103
113
|
var import_ethers = require("ethers");
|
|
104
|
-
var
|
|
105
|
-
static configSchemas = [...super.configSchemas, import_crypto_contract_function_read_payload_plugin2.CryptoContractFunctionReadWitnessConfigSchema];
|
|
106
|
-
static defaultConfigSchema = import_crypto_contract_function_read_payload_plugin2.CryptoContractFunctionReadWitnessConfigSchema;
|
|
114
|
+
var _CryptoContractFunctionReadWitness = class _CryptoContractFunctionReadWitness extends import_abstract_witness.AbstractWitness {
|
|
107
115
|
get abi() {
|
|
108
116
|
return (0, import_assert2.assertEx)(this.config.abi, () => "Missing abi");
|
|
109
117
|
}
|
|
110
118
|
async observeHandler(inPayloads = []) {
|
|
111
119
|
await this.started("throw");
|
|
112
120
|
try {
|
|
113
|
-
const observations = await Promise.all(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
);
|
|
121
|
+
const observations = await Promise.all(inPayloads.filter((0, import_payload_model2.isPayloadOfSchemaType)(import_crypto_contract_function_read_payload_plugin2.CryptoContractFunctionCallSchema)).map(async ({ functionName, args, address }) => {
|
|
122
|
+
const { providers } = this.params;
|
|
123
|
+
const provider = providers[Date.now() % providers.length];
|
|
124
|
+
const validatedAddress = (0, import_assert2.assertEx)(address ?? this.config.address, () => "Missing address");
|
|
125
|
+
const validatedFunctionName = (0, import_assert2.assertEx)(functionName ?? this.config.functionName, () => "Missing address");
|
|
126
|
+
const mergedArgs = [
|
|
127
|
+
...args ?? this.config.args ?? []
|
|
128
|
+
];
|
|
129
|
+
const contract = new import_ethers.Contract(validatedAddress, this.abi, provider);
|
|
130
|
+
try {
|
|
131
|
+
const result = await contract[validatedFunctionName](...mergedArgs);
|
|
132
|
+
const transformedResult = typeof result === "bigint" ? result.toString(16) : result;
|
|
133
|
+
const observation = {
|
|
134
|
+
address: validatedAddress,
|
|
135
|
+
args: mergedArgs,
|
|
136
|
+
chainId: Number((await provider.getNetwork()).chainId),
|
|
137
|
+
functionName: validatedFunctionName,
|
|
138
|
+
result: transformedResult,
|
|
139
|
+
schema: import_crypto_contract_function_read_payload_plugin2.CryptoContractFunctionCallResultSchema
|
|
140
|
+
};
|
|
141
|
+
return observation;
|
|
142
|
+
} catch (ex) {
|
|
143
|
+
const error = ex;
|
|
144
|
+
console.log(`Error [${this.config.name}]: ${error.code}`);
|
|
145
|
+
const observation = {
|
|
146
|
+
address: validatedAddress,
|
|
147
|
+
args: mergedArgs,
|
|
148
|
+
chainId: Number((await provider.getNetwork()).chainId),
|
|
149
|
+
error: error.code,
|
|
150
|
+
functionName: validatedFunctionName,
|
|
151
|
+
schema: import_crypto_contract_function_read_payload_plugin2.CryptoContractFunctionCallResultSchema
|
|
152
|
+
};
|
|
153
|
+
return observation;
|
|
154
|
+
}
|
|
155
|
+
}));
|
|
148
156
|
return observations;
|
|
149
157
|
} catch (ex) {
|
|
150
158
|
const error = ex;
|
|
@@ -153,20 +161,26 @@ var CryptoContractFunctionReadWitness = class extends import_abstract_witness.Ab
|
|
|
153
161
|
}
|
|
154
162
|
}
|
|
155
163
|
};
|
|
164
|
+
__name(_CryptoContractFunctionReadWitness, "CryptoContractFunctionReadWitness");
|
|
165
|
+
__publicField(_CryptoContractFunctionReadWitness, "configSchemas", [
|
|
166
|
+
...__superGet(_CryptoContractFunctionReadWitness, _CryptoContractFunctionReadWitness, "configSchemas"),
|
|
167
|
+
import_crypto_contract_function_read_payload_plugin2.CryptoContractFunctionReadWitnessConfigSchema
|
|
168
|
+
]);
|
|
169
|
+
__publicField(_CryptoContractFunctionReadWitness, "defaultConfigSchema", import_crypto_contract_function_read_payload_plugin2.CryptoContractFunctionReadWitnessConfigSchema);
|
|
170
|
+
var CryptoContractFunctionReadWitness = _CryptoContractFunctionReadWitness;
|
|
156
171
|
|
|
157
172
|
// src/Plugin.ts
|
|
158
|
-
var CryptoContractFunctionReadWitnessPlugin = () => (
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
);
|
|
173
|
+
var CryptoContractFunctionReadWitnessPlugin = /* @__PURE__ */ __name(() => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)({
|
|
174
|
+
required: {
|
|
175
|
+
[import_crypto_nft_payload_plugin.NftSchema]: 1
|
|
176
|
+
},
|
|
177
|
+
schema: import_payload_model3.PayloadSetSchema
|
|
178
|
+
}, {
|
|
179
|
+
witness: /* @__PURE__ */ __name(async (params) => {
|
|
180
|
+
const result = await CryptoContractFunctionReadWitness.create(params);
|
|
181
|
+
return result;
|
|
182
|
+
}, "witness")
|
|
183
|
+
}), "CryptoContractFunctionReadWitnessPlugin");
|
|
170
184
|
// Annotate the CommonJS export names for ESM import in node:
|
|
171
185
|
0 && (module.exports = {
|
|
172
186
|
CryptoContractDiviner,
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["export * from './Diviner/index.js'\n// eslint-disable-next-line deprecation/deprecation, import/no-default-export\nexport { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.js'\nexport * from './Witness.js'\n","import { assertEx } from '@xylabs/assert'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfo,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { isPayloadOfSchemaType, Payload, Schema } 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 // eslint-disable-next-line deprecation/deprecation\n address: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n // eslint-disable-next-line deprecation/deprecation\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/no-deprecated\nimport { CryptoContractFunctionReadWitness } from './Witness.js'\n\n/** @deprecated use EvmCallWitness instead */\nexport const CryptoContractFunctionReadWitnessPlugin = () =>\n // eslint-disable-next-line deprecation/deprecation, import/no-deprecated\n createPayloadSetWitnessPlugin<CryptoContractFunctionReadWitness>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n // eslint-disable-next-line deprecation/deprecation, import/no-deprecated\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 {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Contract, Provider } 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 // eslint-disable-next-line deprecation/deprecation\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 ({ functionName, args, address }) => {\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","import_payload_model","import_assert","import_crypto_contract_function_read_payload_plugin","import_payload_model"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["export * from './Diviner/index.ts'\nexport { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.ts'\nexport * from './Witness.ts'\n","import { assertEx } from '@xylabs/assert'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfo,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { isPayloadOfSchemaType, Payload, Schema } 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/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 {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Contract, Provider } 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 ({ functionName, args, address }) => {\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":["CryptoContractDiviner","AbstractDiviner","findCallResult","address","functionName","payloads","foundPayload","find","payload","asCryptoContractFunctionCallSuccess","result","matchingExistingField","objs","field","expectedValue","at","didNotMatch","reduce","prev","obj","undefined","contractInfoRequiredFields","callResults","assertEx","chainId","schema","ContractInfoSchema","divineHandler","inPayloads","filter","isPayloadOfSchemaType","CryptoContractFunctionCallResultSchema","addresses","Object","keys","Promise","all","map","foundCallResults","callResult","info","results","reduceResults","configSchemas","CryptoContractDivinerConfigSchema","defaultConfigSchema","labels","CryptoContractDivinerLabels","import_payload_model","import_assert","import_crypto_contract_function_read_payload_plugin","import_payload_model","CryptoContractFunctionReadWitness","AbstractWitness","abi","assertEx","config","observeHandler","inPayloads","started","observations","Promise","all","filter","isPayloadOfSchemaType","CryptoContractFunctionCallSchema","map","functionName","args","address","providers","params","provider","Date","now","length","validatedAddress","validatedFunctionName","mergedArgs","contract","Contract","result","transformedResult","toString","observation","chainId","Number","getNetwork","schema","CryptoContractFunctionCallResultSchema","ex","error","console","log","name","code","message","configSchemas","CryptoContractFunctionReadWitnessConfigSchema","defaultConfigSchema","CryptoContractFunctionReadWitnessPlugin","createPayloadSetWitnessPlugin","required","NftSchema","schema","PayloadSetSchema","witness","params","result","CryptoContractFunctionReadWitness","create"]}
|
package/dist/node/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Diviner/index.
|
|
2
|
-
export { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.
|
|
3
|
-
export * from './Witness.
|
|
1
|
+
export * from './Diviner/index.ts';
|
|
2
|
+
export { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.ts';
|
|
3
|
+
export * from './Witness.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,uCAAuC,EAAE,uCAAuC,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AACzH,cAAc,cAAc,CAAA"}
|
package/dist/node/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Diviner/index.
|
|
2
|
-
export { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.
|
|
3
|
-
export * from './Witness.
|
|
1
|
+
export * from './Diviner/index.ts';
|
|
2
|
+
export { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.ts';
|
|
3
|
+
export * from './Witness.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,uCAAuC,EAAE,uCAAuC,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AACzH,cAAc,cAAc,CAAA"}
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Diviner/index.
|
|
2
|
-
export { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.
|
|
3
|
-
export * from './Witness.
|
|
1
|
+
export * from './Diviner/index.ts';
|
|
2
|
+
export { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.ts';
|
|
3
|
+
export * from './Witness.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,uCAAuC,EAAE,uCAAuC,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA;AACzH,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
+
var __reflectGet = Reflect.get;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
|
+
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
8
|
+
|
|
9
|
+
// src/Diviner/Diviner.ts
|
|
10
|
+
import { assertEx } from "@xylabs/assert";
|
|
11
|
+
import { asCryptoContractFunctionCallSuccess, ContractInfoSchema, CryptoContractDivinerConfigSchema, CryptoContractDivinerLabels, CryptoContractFunctionCallResultSchema } from "@xyo-network/crypto-contract-function-read-payload-plugin";
|
|
12
|
+
import { AbstractDiviner } from "@xyo-network/diviner-abstract";
|
|
13
|
+
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
14
|
+
var _CryptoContractDiviner = class _CryptoContractDiviner extends AbstractDiviner {
|
|
15
|
+
static findCallResult(address, functionName, payloads) {
|
|
16
|
+
var _a;
|
|
17
|
+
const foundPayload = payloads.find((payload) => payload.functionName === functionName && payload.address === address);
|
|
18
|
+
return (_a = asCryptoContractFunctionCallSuccess(foundPayload)) == null ? void 0 : _a.result;
|
|
19
|
+
}
|
|
20
|
+
static matchingExistingField(objs, field) {
|
|
21
|
+
var _a;
|
|
22
|
+
const expectedValue = (_a = objs.at(0)) == null ? void 0 : _a[field];
|
|
23
|
+
const didNotMatch = objs.reduce((prev, obj) => {
|
|
24
|
+
return prev || obj[field] !== expectedValue;
|
|
25
|
+
}, false);
|
|
26
|
+
return didNotMatch ? void 0 : expectedValue;
|
|
27
|
+
}
|
|
28
|
+
contractInfoRequiredFields(callResults) {
|
|
29
|
+
return {
|
|
30
|
+
address: assertEx(_CryptoContractDiviner.matchingExistingField(callResults, "address"), () => "Mismatched address"),
|
|
31
|
+
chainId: assertEx(_CryptoContractDiviner.matchingExistingField(callResults, "chainId"), () => "Mismatched chainId"),
|
|
32
|
+
schema: ContractInfoSchema
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async divineHandler(inPayloads = []) {
|
|
36
|
+
const callResults = inPayloads.filter(isPayloadOfSchemaType(CryptoContractFunctionCallResultSchema));
|
|
37
|
+
const addresses = Object.keys(
|
|
38
|
+
// eslint-disable-next-line unicorn/no-array-reduce
|
|
39
|
+
callResults.reduce((prev, result2) => {
|
|
40
|
+
if (result2.address) {
|
|
41
|
+
prev[result2.address] = true;
|
|
42
|
+
}
|
|
43
|
+
return prev;
|
|
44
|
+
}, {})
|
|
45
|
+
);
|
|
46
|
+
const result = await Promise.all(addresses.map(async (address) => {
|
|
47
|
+
const foundCallResults = callResults.filter((callResult) => callResult.address === address);
|
|
48
|
+
const info = {
|
|
49
|
+
results: await this.reduceResults(foundCallResults),
|
|
50
|
+
...this.contractInfoRequiredFields(foundCallResults)
|
|
51
|
+
};
|
|
52
|
+
return info;
|
|
53
|
+
}));
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
reduceResults(callResults) {
|
|
57
|
+
return callResults.reduce((prev, callResult) => {
|
|
58
|
+
var _a;
|
|
59
|
+
prev[callResult.functionName] = (_a = asCryptoContractFunctionCallSuccess(callResult)) == null ? void 0 : _a.result;
|
|
60
|
+
return prev;
|
|
61
|
+
}, {});
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
__name(_CryptoContractDiviner, "CryptoContractDiviner");
|
|
65
|
+
__publicField(_CryptoContractDiviner, "configSchemas", [
|
|
66
|
+
...__superGet(_CryptoContractDiviner, _CryptoContractDiviner, "configSchemas"),
|
|
67
|
+
CryptoContractDivinerConfigSchema
|
|
68
|
+
]);
|
|
69
|
+
__publicField(_CryptoContractDiviner, "defaultConfigSchema", CryptoContractDivinerConfigSchema);
|
|
70
|
+
__publicField(_CryptoContractDiviner, "labels", {
|
|
71
|
+
...__superGet(_CryptoContractDiviner, _CryptoContractDiviner, "labels"),
|
|
72
|
+
...CryptoContractDivinerLabels
|
|
73
|
+
});
|
|
74
|
+
var CryptoContractDiviner = _CryptoContractDiviner;
|
|
75
|
+
|
|
76
|
+
// src/Plugin.ts
|
|
77
|
+
import { NftSchema } from "@xyo-network/crypto-nft-payload-plugin";
|
|
78
|
+
import { PayloadSetSchema } from "@xyo-network/payload-model";
|
|
79
|
+
import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
|
|
80
|
+
|
|
81
|
+
// src/Witness.ts
|
|
82
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
83
|
+
import { AbstractWitness } from "@xyo-network/abstract-witness";
|
|
84
|
+
import { CryptoContractFunctionCallResultSchema as CryptoContractFunctionCallResultSchema2, CryptoContractFunctionCallSchema, CryptoContractFunctionReadWitnessConfigSchema } from "@xyo-network/crypto-contract-function-read-payload-plugin";
|
|
85
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
|
|
86
|
+
import { Contract } from "ethers";
|
|
87
|
+
var _CryptoContractFunctionReadWitness = class _CryptoContractFunctionReadWitness extends AbstractWitness {
|
|
88
|
+
get abi() {
|
|
89
|
+
return assertEx2(this.config.abi, () => "Missing abi");
|
|
90
|
+
}
|
|
91
|
+
async observeHandler(inPayloads = []) {
|
|
92
|
+
await this.started("throw");
|
|
93
|
+
try {
|
|
94
|
+
const observations = await Promise.all(inPayloads.filter(isPayloadOfSchemaType2(CryptoContractFunctionCallSchema)).map(async ({ functionName, args, address }) => {
|
|
95
|
+
const { providers } = this.params;
|
|
96
|
+
const provider = providers[Date.now() % providers.length];
|
|
97
|
+
const validatedAddress = assertEx2(address ?? this.config.address, () => "Missing address");
|
|
98
|
+
const validatedFunctionName = assertEx2(functionName ?? this.config.functionName, () => "Missing address");
|
|
99
|
+
const mergedArgs = [
|
|
100
|
+
...args ?? this.config.args ?? []
|
|
101
|
+
];
|
|
102
|
+
const contract = new Contract(validatedAddress, this.abi, provider);
|
|
103
|
+
try {
|
|
104
|
+
const result = await contract[validatedFunctionName](...mergedArgs);
|
|
105
|
+
const transformedResult = typeof result === "bigint" ? result.toString(16) : result;
|
|
106
|
+
const observation = {
|
|
107
|
+
address: validatedAddress,
|
|
108
|
+
args: mergedArgs,
|
|
109
|
+
chainId: Number((await provider.getNetwork()).chainId),
|
|
110
|
+
functionName: validatedFunctionName,
|
|
111
|
+
result: transformedResult,
|
|
112
|
+
schema: CryptoContractFunctionCallResultSchema2
|
|
113
|
+
};
|
|
114
|
+
return observation;
|
|
115
|
+
} catch (ex) {
|
|
116
|
+
const error = ex;
|
|
117
|
+
console.log(`Error [${this.config.name}]: ${error.code}`);
|
|
118
|
+
const observation = {
|
|
119
|
+
address: validatedAddress,
|
|
120
|
+
args: mergedArgs,
|
|
121
|
+
chainId: Number((await provider.getNetwork()).chainId),
|
|
122
|
+
error: error.code,
|
|
123
|
+
functionName: validatedFunctionName,
|
|
124
|
+
schema: CryptoContractFunctionCallResultSchema2
|
|
125
|
+
};
|
|
126
|
+
return observation;
|
|
127
|
+
}
|
|
128
|
+
}));
|
|
129
|
+
return observations;
|
|
130
|
+
} catch (ex) {
|
|
131
|
+
const error = ex;
|
|
132
|
+
console.log(`Error [${this.config.name}]: ${error.message}`);
|
|
133
|
+
throw error;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
__name(_CryptoContractFunctionReadWitness, "CryptoContractFunctionReadWitness");
|
|
138
|
+
__publicField(_CryptoContractFunctionReadWitness, "configSchemas", [
|
|
139
|
+
...__superGet(_CryptoContractFunctionReadWitness, _CryptoContractFunctionReadWitness, "configSchemas"),
|
|
140
|
+
CryptoContractFunctionReadWitnessConfigSchema
|
|
141
|
+
]);
|
|
142
|
+
__publicField(_CryptoContractFunctionReadWitness, "defaultConfigSchema", CryptoContractFunctionReadWitnessConfigSchema);
|
|
143
|
+
var CryptoContractFunctionReadWitness = _CryptoContractFunctionReadWitness;
|
|
144
|
+
|
|
145
|
+
// src/Plugin.ts
|
|
146
|
+
var CryptoContractFunctionReadWitnessPlugin = /* @__PURE__ */ __name(() => createPayloadSetWitnessPlugin({
|
|
147
|
+
required: {
|
|
148
|
+
[NftSchema]: 1
|
|
149
|
+
},
|
|
150
|
+
schema: PayloadSetSchema
|
|
151
|
+
}, {
|
|
152
|
+
witness: /* @__PURE__ */ __name(async (params) => {
|
|
153
|
+
const result = await CryptoContractFunctionReadWitness.create(params);
|
|
154
|
+
return result;
|
|
155
|
+
}, "witness")
|
|
156
|
+
}), "CryptoContractFunctionReadWitnessPlugin");
|
|
157
|
+
export {
|
|
158
|
+
CryptoContractDiviner,
|
|
159
|
+
CryptoContractFunctionReadWitness,
|
|
160
|
+
CryptoContractFunctionReadWitnessPlugin,
|
|
161
|
+
CryptoContractFunctionReadWitnessPlugin as default
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfo,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { isPayloadOfSchemaType, Payload, Schema } 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/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 {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Contract, Provider } 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 ({ functionName, args, address }) => {\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":["assertEx","asCryptoContractFunctionCallSuccess","ContractInfoSchema","CryptoContractDivinerConfigSchema","CryptoContractDivinerLabels","CryptoContractFunctionCallResultSchema","AbstractDiviner","isPayloadOfSchemaType","CryptoContractDiviner","AbstractDiviner","findCallResult","address","functionName","payloads","foundPayload","find","payload","asCryptoContractFunctionCallSuccess","result","matchingExistingField","objs","field","expectedValue","at","didNotMatch","reduce","prev","obj","undefined","contractInfoRequiredFields","callResults","assertEx","chainId","schema","ContractInfoSchema","divineHandler","inPayloads","filter","isPayloadOfSchemaType","CryptoContractFunctionCallResultSchema","addresses","Object","keys","Promise","all","map","foundCallResults","callResult","info","results","reduceResults","configSchemas","CryptoContractDivinerConfigSchema","defaultConfigSchema","labels","CryptoContractDivinerLabels","NftSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","assertEx","AbstractWitness","CryptoContractFunctionCallResultSchema","CryptoContractFunctionCallSchema","CryptoContractFunctionReadWitnessConfigSchema","isPayloadOfSchemaType","Contract","CryptoContractFunctionReadWitness","AbstractWitness","abi","assertEx","config","observeHandler","inPayloads","started","observations","Promise","all","filter","isPayloadOfSchemaType","CryptoContractFunctionCallSchema","map","functionName","args","address","providers","params","provider","Date","now","length","validatedAddress","validatedFunctionName","mergedArgs","contract","Contract","result","transformedResult","toString","observation","chainId","Number","getNetwork","schema","CryptoContractFunctionCallResultSchema","ex","error","console","log","name","code","message","configSchemas","CryptoContractFunctionReadWitnessConfigSchema","defaultConfigSchema","CryptoContractFunctionReadWitnessPlugin","createPayloadSetWitnessPlugin","required","NftSchema","schema","PayloadSetSchema","witness","params","result","CryptoContractFunctionReadWitness","create"]}
|