@xyo-network/evm-abi-diviner 6.0.0 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/diviner-abstract';
|
|
2
|
-
import type { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model';
|
|
3
1
|
import type { EvmContract } from '@xyo-network/evm-contract-witness';
|
|
4
|
-
import type { AnyConfigSchema } from '@xyo-network/
|
|
5
|
-
import
|
|
2
|
+
import type { AnyConfigSchema, DivinerConfig, DivinerParams, Schema } from '@xyo-network/sdk-js';
|
|
3
|
+
import { AbstractDiviner } from '@xyo-network/sdk-js';
|
|
6
4
|
import type { EvmFunctionImplemented, InterfaceAbi } from './Payload.ts';
|
|
7
5
|
export declare const EvmAbiImplementedDivinerConfigSchema: "network.xyo.evm.abi.implemented.diviner.config" & {
|
|
8
6
|
readonly __schema: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAEpE,OAAO,KAAK,EACV,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EACtD,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGxE,eAAO,MAAM,oCAAoC;;CAAmE,CAAA;AACpH,MAAM,MAAM,oCAAoC,GAAG,OAAO,oCAAoC,CAAA;AAE9F,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,oCAAoC,CAAA;CAAE,CAAC,CAAA;AAEhI,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC,CAAA;AAE3G,qBAAa,wBAAwB,CAAC,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CAAE,SAAQ,eAAe,CAC5I,OAAO,EACP,WAAW,EACX,sBAAsB,CACvB;IACC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAiE;IACjH,gBAAyB,mBAAmB,EAAE,MAAM,CAAuC;IAE3F,IAAI,GAAG,IAC0D,YAAY,CAC5E;cAEwB,aAAa,CAAC,UAAU,GAAE,WAAW,EAAO,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;CA4B1G"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Payload } from '@xyo-network/
|
|
1
|
+
import { type Payload } from '@xyo-network/sdk-js';
|
|
2
2
|
import type { Fragment, JsonFragment } from 'ethers';
|
|
3
3
|
export type InterfaceAbi = string | readonly (Fragment | JsonFragment | string)[];
|
|
4
4
|
export declare const EvmFunctionImplementedSchema: "network.xyo.evm.function.implemented" & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEpD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC,EAAE,CAAA;AAEjF,eAAO,MAAM,4BAA4B;;CAAyD,CAAA;AAClG,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAA;AAE9E,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C;IACE,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,EACD,4BAA4B,CAC7B,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
// src/Diviner.ts
|
|
2
2
|
import { assertEx } from "@xylabs/sdk-js";
|
|
3
|
-
import { AbstractDiviner } from "@xyo-network/diviner-abstract";
|
|
4
3
|
import { EvmContractSchema } from "@xyo-network/evm-contract-witness";
|
|
5
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
AbstractDiviner,
|
|
6
|
+
asSchema as asSchema2,
|
|
7
|
+
isPayloadOfSchemaType
|
|
8
|
+
} from "@xyo-network/sdk-js";
|
|
6
9
|
import { Interface } from "ethers";
|
|
7
10
|
|
|
8
11
|
// src/Payload.ts
|
|
9
|
-
import { asSchema } from "@xyo-network/
|
|
12
|
+
import { asSchema } from "@xyo-network/sdk-js";
|
|
10
13
|
var EvmFunctionImplementedSchema = asSchema("network.xyo.evm.function.implemented", true);
|
|
11
14
|
|
|
12
15
|
// src/Diviner.ts
|
|
@@ -18,25 +21,23 @@ var EvmAbiImplementedDiviner = class extends AbstractDiviner {
|
|
|
18
21
|
return assertEx(this.config?.abi, () => "No ABI specified");
|
|
19
22
|
}
|
|
20
23
|
async divineHandler(inPayloads = []) {
|
|
21
|
-
await this.
|
|
24
|
+
await this.startedAsync("throw");
|
|
22
25
|
try {
|
|
23
|
-
const observations =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
})
|
|
39
|
-
);
|
|
26
|
+
const observations = inPayloads.filter(isPayloadOfSchemaType(EvmContractSchema)).map(({ address, code }) => {
|
|
27
|
+
const contractInterface = new Interface(this.abi);
|
|
28
|
+
const byteCode = assertEx(code, () => "Missing code");
|
|
29
|
+
const results = [];
|
|
30
|
+
contractInterface.forEachFunction(({ selector }) => {
|
|
31
|
+
const observation = {
|
|
32
|
+
address,
|
|
33
|
+
implemented: byteCode.includes(BigInt(selector).toString(16)),
|
|
34
|
+
schema: EvmFunctionImplementedSchema,
|
|
35
|
+
selector
|
|
36
|
+
};
|
|
37
|
+
results.push(observation);
|
|
38
|
+
});
|
|
39
|
+
return results;
|
|
40
|
+
});
|
|
40
41
|
return observations.flat();
|
|
41
42
|
} catch (ex) {
|
|
42
43
|
const error = ex;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Diviner.ts", "../../src/Payload.ts"],
|
|
4
|
-
"sourcesContent": ["import { assertEx } from '@xylabs/sdk-js'\nimport
|
|
5
|
-
"mappings": ";AAAA,SAAS,gBAAgB;
|
|
4
|
+
"sourcesContent": ["import { assertEx } from '@xylabs/sdk-js'\nimport type { EvmContract } from '@xyo-network/evm-contract-witness'\nimport { EvmContractSchema } from '@xyo-network/evm-contract-witness'\nimport type {\n AnyConfigSchema, DivinerConfig, DivinerParams, Schema,\n} from '@xyo-network/sdk-js'\nimport {\n AbstractDiviner, asSchema, isPayloadOfSchemaType,\n} from '@xyo-network/sdk-js'\nimport { Interface } from 'ethers'\n\nimport type { EvmFunctionImplemented, InterfaceAbi } from './Payload.ts'\nimport { EvmFunctionImplementedSchema } from './Payload.ts'\n\nexport const EvmAbiImplementedDivinerConfigSchema = asSchema('network.xyo.evm.abi.implemented.diviner.config', true)\nexport type EvmAbiImplementedDivinerConfigSchema = typeof EvmAbiImplementedDivinerConfigSchema\n\nexport type EvmAbiImplementedDivinerConfig = DivinerConfig<{ abi?: InterfaceAbi; schema: EvmAbiImplementedDivinerConfigSchema }>\n\nexport type EvmAbiImplementedDivinerParams = DivinerParams<AnyConfigSchema<EvmAbiImplementedDivinerConfig>>\n\nexport class EvmAbiImplementedDiviner<TParams extends EvmAbiImplementedDivinerParams = EvmAbiImplementedDivinerParams> extends AbstractDiviner<\n TParams,\n EvmContract,\n EvmFunctionImplemented\n> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EvmAbiImplementedDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EvmAbiImplementedDivinerConfigSchema\n\n get abi() {\n return assertEx(this.config?.abi, () => 'No ABI specified') as InterfaceAbi\n }\n\n protected override async divineHandler(inPayloads: EvmContract[] = []): Promise<EvmFunctionImplemented[]> {\n await this.startedAsync('throw')\n try {\n const observations = inPayloads.filter(isPayloadOfSchemaType<EvmContract>(EvmContractSchema)).map(({ address, code }) => {\n const contractInterface = new Interface(this.abi)\n const byteCode = assertEx(code, () => 'Missing code')\n\n const results: EvmFunctionImplemented[] = []\n\n contractInterface.forEachFunction(({ selector }) => {\n const observation: EvmFunctionImplemented = {\n address,\n implemented: byteCode.includes(BigInt(selector).toString(16)),\n schema: EvmFunctionImplementedSchema,\n selector,\n }\n results.push(observation)\n })\n\n return results\n })\n return observations.flat()\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", "import { asSchema, type Payload } from '@xyo-network/sdk-js'\nimport type { Fragment, JsonFragment } from 'ethers'\n\nexport type InterfaceAbi = string | readonly (Fragment | JsonFragment | string)[]\n\nexport const EvmFunctionImplementedSchema = asSchema('network.xyo.evm.function.implemented', true)\nexport type EvmFunctionImplementedSchema = typeof EvmFunctionImplementedSchema\n\nexport type EvmFunctionImplemented = Payload<\n {\n address: string\n implemented: boolean\n selector: string\n },\n EvmFunctionImplementedSchema\n>\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,gBAAgB;AAEzB,SAAS,yBAAyB;AAIlC;AAAA,EACE;AAAA,EAAiB,YAAAA;AAAA,EAAU;AAAA,OACtB;AACP,SAAS,iBAAiB;;;ACT1B,SAAS,gBAA8B;AAKhC,IAAM,+BAA+B,SAAS,wCAAwC,IAAI;;;ADS1F,IAAM,uCAAuCC,UAAS,kDAAkD,IAAI;AAO5G,IAAM,2BAAN,cAAwH,gBAI7H;AAAA,EACA,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,oCAAoC;AAAA,EAChH,OAAyB,sBAA8B;AAAA,EAEvD,IAAI,MAAM;AACR,WAAO,SAAS,KAAK,QAAQ,KAAK,MAAM,kBAAkB;AAAA,EAC5D;AAAA,EAEA,MAAyB,cAAc,aAA4B,CAAC,GAAsC;AACxG,UAAM,KAAK,aAAa,OAAO;AAC/B,QAAI;AACF,YAAM,eAAe,WAAW,OAAO,sBAAmC,iBAAiB,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,KAAK,MAAM;AACvH,cAAM,oBAAoB,IAAI,UAAU,KAAK,GAAG;AAChD,cAAM,WAAW,SAAS,MAAM,MAAM,cAAc;AAEpD,cAAM,UAAoC,CAAC;AAE3C,0BAAkB,gBAAgB,CAAC,EAAE,SAAS,MAAM;AAClD,gBAAM,cAAsC;AAAA,YAC1C;AAAA,YACA,aAAa,SAAS,SAAS,OAAO,QAAQ,EAAE,SAAS,EAAE,CAAC;AAAA,YAC5D,QAAQ;AAAA,YACR;AAAA,UACF;AACA,kBAAQ,KAAK,WAAW;AAAA,QAC1B,CAAC;AAED,eAAO;AAAA,MACT,CAAC;AACD,aAAO,aAAa,KAAK;AAAA,IAC3B,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;",
|
|
6
6
|
"names": ["asSchema", "asSchema"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/evm-abi-diviner",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.2",
|
|
4
4
|
"description": "Typescript/Javascript Plugins for XYO Platform",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -31,84 +31,70 @@
|
|
|
31
31
|
"README.md"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@xyo-network/evm-contract-witness": "~6.0.
|
|
34
|
+
"@xyo-network/evm-contract-witness": "~6.0.2"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@bitauth/libauth": "~3.0.0",
|
|
38
|
+
"@metamask/providers": "^22.1.1",
|
|
39
|
+
"@noble/post-quantum": "~0.6.1",
|
|
38
40
|
"@opentelemetry/api": "^1.9.1",
|
|
39
41
|
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
40
42
|
"@scure/base": "^2.2.0",
|
|
41
|
-
"@
|
|
42
|
-
"@xylabs/
|
|
43
|
-
"@xylabs/
|
|
44
|
-
"@xylabs/
|
|
45
|
-
"@xylabs/
|
|
46
|
-
"@
|
|
47
|
-
"@
|
|
48
|
-
"@xyo-network/boundwitness-builder": "~6.0",
|
|
49
|
-
"@xyo-network/boundwitness-model": "~6.0",
|
|
50
|
-
"@xyo-network/boundwitness-wrapper": "~6.0",
|
|
51
|
-
"@xyo-network/config-payload-plugin": "~6.0",
|
|
52
|
-
"@xyo-network/diviner-abstract": "~6.0",
|
|
53
|
-
"@xyo-network/diviner-model": "~6.0",
|
|
54
|
-
"@xyo-network/manifest-model": "~6.0",
|
|
55
|
-
"@xyo-network/module-model": "~6.0",
|
|
43
|
+
"@scure/bip39": "~2.2.0",
|
|
44
|
+
"@xylabs/geo": "^6.0.6",
|
|
45
|
+
"@xylabs/sdk-js": "^6.0.6",
|
|
46
|
+
"@xylabs/threads": "^6.0.6",
|
|
47
|
+
"@xylabs/toolchain": "~8.1.11",
|
|
48
|
+
"@xylabs/tsconfig": "~8.1.11",
|
|
49
|
+
"@xylabs/vitest-extended": "~6.0.6",
|
|
56
50
|
"@xyo-network/open-zeppelin-typechain": "^4.1.3",
|
|
57
|
-
"@xyo-network/
|
|
58
|
-
"@xyo-network/
|
|
59
|
-
"@xyo-network/
|
|
60
|
-
"
|
|
61
|
-
"@xyo-network/witness-evm-abstract": "~6.0",
|
|
51
|
+
"@xyo-network/sdk-js": "^6.0.2",
|
|
52
|
+
"@xyo-network/sdk-protocol-js": "~6.0.7",
|
|
53
|
+
"@xyo-network/witness-evm-abstract": "~6.0.2",
|
|
54
|
+
"ajv": "^8.20.0",
|
|
62
55
|
"async-mutex": "^0.5.0",
|
|
63
56
|
"bn.js": "^5.2.3",
|
|
64
57
|
"buffer": "^6.0.3",
|
|
65
|
-
"chalk": "^5.6.2",
|
|
66
58
|
"debug": "~4.4.3",
|
|
67
|
-
"eslint": "^10.4.
|
|
59
|
+
"eslint": "^10.4.1",
|
|
68
60
|
"ethers": "^6.16.0",
|
|
69
61
|
"hash-wasm": "^4.12.0",
|
|
70
|
-
"
|
|
62
|
+
"idb": "^8.0.3",
|
|
63
|
+
"lru-cache": "^11.5.1",
|
|
71
64
|
"observable-fns": "~0.6.1",
|
|
72
65
|
"pako": "~2.1.0",
|
|
73
66
|
"typescript": "~6.0.3",
|
|
74
|
-
"vite": "^8.0.
|
|
75
|
-
"vitest": "^4.1.
|
|
76
|
-
"
|
|
67
|
+
"vite": "^8.0.16",
|
|
68
|
+
"vitest": "^4.1.8",
|
|
69
|
+
"webextension-polyfill": "^0.12.0",
|
|
77
70
|
"zod": "^4.4.3"
|
|
78
71
|
},
|
|
79
72
|
"peerDependencies": {
|
|
80
73
|
"@bitauth/libauth": "~3.0",
|
|
74
|
+
"@metamask/providers": "^22.1",
|
|
75
|
+
"@noble/post-quantum": "~0.6.1",
|
|
81
76
|
"@opentelemetry/api": "^1.9",
|
|
82
77
|
"@opentelemetry/sdk-trace-base": "^2.7",
|
|
83
78
|
"@scure/base": "^2.2",
|
|
79
|
+
"@scure/bip39": "~2.2",
|
|
80
|
+
"@xylabs/geo": "^6.0",
|
|
84
81
|
"@xylabs/sdk-js": "^6.0",
|
|
85
82
|
"@xylabs/threads": "^6.0",
|
|
86
|
-
"@xyo-network/
|
|
87
|
-
"@xyo-network/
|
|
88
|
-
"@xyo-network/boundwitness-builder": "~6.0",
|
|
89
|
-
"@xyo-network/boundwitness-model": "^6.0",
|
|
90
|
-
"@xyo-network/boundwitness-wrapper": "~6.0",
|
|
91
|
-
"@xyo-network/config-payload-plugin": "~6.0",
|
|
92
|
-
"@xyo-network/diviner-abstract": "^6.0",
|
|
93
|
-
"@xyo-network/diviner-model": "^6.0",
|
|
94
|
-
"@xyo-network/manifest-model": "~6.0",
|
|
95
|
-
"@xyo-network/module-model": "^6.0",
|
|
96
|
-
"@xyo-network/payload-builder": "~6.0",
|
|
97
|
-
"@xyo-network/payload-model": "^6.0",
|
|
98
|
-
"@xyo-network/query-payload-plugin": "~6.0",
|
|
99
|
-
"@xyo-network/wallet-model": "~6.0",
|
|
83
|
+
"@xyo-network/sdk-js": "^6.0",
|
|
84
|
+
"@xyo-network/sdk-protocol-js": "~6.0",
|
|
100
85
|
"@xyo-network/witness-evm-abstract": "^6.0",
|
|
86
|
+
"ajv": "^8.20",
|
|
101
87
|
"async-mutex": "^0.5",
|
|
102
88
|
"bn.js": "^5.2",
|
|
103
89
|
"buffer": "^6.0",
|
|
104
|
-
"chalk": "^5.6",
|
|
105
90
|
"debug": "~4.4",
|
|
106
91
|
"ethers": "^6.16",
|
|
107
92
|
"hash-wasm": "^4.12",
|
|
93
|
+
"idb": "^8.0",
|
|
108
94
|
"lru-cache": "^11.3",
|
|
109
95
|
"observable-fns": "~0.6",
|
|
110
96
|
"pako": "~2.1",
|
|
111
|
-
"
|
|
97
|
+
"webextension-polyfill": "^0.12",
|
|
112
98
|
"zod": "^4.4"
|
|
113
99
|
},
|
|
114
100
|
"publishConfig": {
|