@xyo-network/evm-abi-diviner 5.1.3 → 5.1.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/evm-abi-diviner",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.5",
|
|
4
4
|
"description": "Typescript/Javascript Plugins for XYO Platform",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -30,25 +30,28 @@
|
|
|
30
30
|
"types": "dist/neutral/index.d.ts",
|
|
31
31
|
"files": [
|
|
32
32
|
"dist",
|
|
33
|
-
"src"
|
|
33
|
+
"src",
|
|
34
|
+
"!**/*.bench.*",
|
|
35
|
+
"!**/*.spec.*",
|
|
36
|
+
"!**/*.test.*"
|
|
34
37
|
],
|
|
35
38
|
"dependencies": {
|
|
36
|
-
"@xylabs/assert": "~5.0.
|
|
37
|
-
"@xyo-network/diviner-abstract": "~5.1.
|
|
38
|
-
"@xyo-network/diviner-model": "~5.1.
|
|
39
|
-
"@xyo-network/evm-contract-witness": "~5.1.
|
|
40
|
-
"@xyo-network/module-model": "~5.1.
|
|
41
|
-
"@xyo-network/payload-model": "~5.1.
|
|
39
|
+
"@xylabs/assert": "~5.0.37",
|
|
40
|
+
"@xyo-network/diviner-abstract": "~5.1.23",
|
|
41
|
+
"@xyo-network/diviner-model": "~5.1.23",
|
|
42
|
+
"@xyo-network/evm-contract-witness": "~5.1.5",
|
|
43
|
+
"@xyo-network/module-model": "~5.1.23",
|
|
44
|
+
"@xyo-network/payload-model": "~5.1.23",
|
|
42
45
|
"ethers": "~6.15.0"
|
|
43
46
|
},
|
|
44
47
|
"devDependencies": {
|
|
45
|
-
"@xylabs/ts-scripts-yarn3": "~7.
|
|
46
|
-
"@xylabs/tsconfig": "~7.
|
|
47
|
-
"@xylabs/vitest-extended": "~5.0.
|
|
48
|
-
"@xyo-network/open-zeppelin-typechain": "~4.0.
|
|
49
|
-
"@xyo-network/witness-evm-abstract": "~5.1.
|
|
50
|
-
"typescript": "~5.9.
|
|
51
|
-
"vitest": "~
|
|
48
|
+
"@xylabs/ts-scripts-yarn3": "~7.2.8",
|
|
49
|
+
"@xylabs/tsconfig": "~7.2.8",
|
|
50
|
+
"@xylabs/vitest-extended": "~5.0.37",
|
|
51
|
+
"@xyo-network/open-zeppelin-typechain": "~4.0.10",
|
|
52
|
+
"@xyo-network/witness-evm-abstract": "~5.1.23",
|
|
53
|
+
"typescript": "~5.9.3",
|
|
54
|
+
"vitest": "~4.0.10"
|
|
52
55
|
},
|
|
53
56
|
"publishConfig": {
|
|
54
57
|
"access": "public"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.spec.d.ts","sourceRoot":"","sources":["../../../src/spec/Diviner.spec.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAA"}
|
package/src/spec/Diviner.spec.ts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import '@xylabs/vitest-extended'
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
EvmContractSchema, EvmContractWitness, EvmContractWitnessConfigSchema,
|
|
5
|
-
} from '@xyo-network/evm-contract-witness'
|
|
6
|
-
import {
|
|
7
|
-
ERC20__factory,
|
|
8
|
-
ERC721__factory,
|
|
9
|
-
ERC721Burnable__factory,
|
|
10
|
-
ERC721Enumerable__factory,
|
|
11
|
-
ERC721Pausable__factory,
|
|
12
|
-
ERC1155__factory,
|
|
13
|
-
ERC1155Holder__factory,
|
|
14
|
-
ERC1155Pausable__factory,
|
|
15
|
-
IERC721Metadata__factory,
|
|
16
|
-
} from '@xyo-network/open-zeppelin-typechain'
|
|
17
|
-
import { EvmAddressSchema, getProvidersFromEnv } from '@xyo-network/witness-evm-abstract'
|
|
18
|
-
import {
|
|
19
|
-
describe, expect,
|
|
20
|
-
it,
|
|
21
|
-
} from 'vitest'
|
|
22
|
-
|
|
23
|
-
import { EvmAbiImplementedDiviner, EvmAbiImplementedDivinerConfigSchema } from '../Diviner.ts'
|
|
24
|
-
|
|
25
|
-
describe.skipIf(!process.env.INFURA_PROJECT_ID)('EvmAbiImplementedDiviner', () => {
|
|
26
|
-
const name = ERC1155__factory.abi[11].name
|
|
27
|
-
console.log(name)
|
|
28
|
-
const cases = [
|
|
29
|
-
['0x55296f69f40ea6d20e478533c15a6b08b654e758', ERC20__factory.abi], // XYO ERC20
|
|
30
|
-
['0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D', [...ERC721__factory.abi, ...IERC721Metadata__factory.abi, ...ERC721Enumerable__factory.abi]], // BAYC
|
|
31
|
-
[
|
|
32
|
-
'0xBd3531dA5CF5857e7CfAA92426877b022e612cf8',
|
|
33
|
-
[
|
|
34
|
-
...ERC721__factory.abi,
|
|
35
|
-
...IERC721Metadata__factory.abi,
|
|
36
|
-
...ERC721Enumerable__factory.abi,
|
|
37
|
-
...ERC721Burnable__factory.abi,
|
|
38
|
-
...ERC721Pausable__factory.abi,
|
|
39
|
-
],
|
|
40
|
-
], // PPG
|
|
41
|
-
['0xEdB61f74B0d09B2558F1eeb79B247c1F363Ae452', ERC1155__factory.abi], // Gutter Cat Gang
|
|
42
|
-
['0x2A6d6a082C410a195157EC4caf67CB9fD718f087', ERC1155__factory.abi], // Spider Tanks
|
|
43
|
-
['0x2A6d6a082C410a195157EC4caf67CB9fD718f087', [...ERC1155Holder__factory.abi, ...ERC1155Pausable__factory.abi]], // Spider Tanks
|
|
44
|
-
['0x7dEB7Bce4d360Ebe68278dee6054b882aa62D19c', ERC1155__factory.abi], // Inhabitants: United Planets
|
|
45
|
-
] as const
|
|
46
|
-
describe('divine', () => {
|
|
47
|
-
describe('with matching ABI', () => {
|
|
48
|
-
it.each(cases)('returns implemented true', async (address, abi) => {
|
|
49
|
-
const witness = await EvmContractWitness.create({
|
|
50
|
-
account: 'random',
|
|
51
|
-
config: { schema: EvmContractWitnessConfigSchema },
|
|
52
|
-
providers: getProvidersFromEnv,
|
|
53
|
-
})
|
|
54
|
-
const diviner = await EvmAbiImplementedDiviner.create({
|
|
55
|
-
account: 'random',
|
|
56
|
-
config: { abi, schema: EvmAbiImplementedDivinerConfigSchema },
|
|
57
|
-
})
|
|
58
|
-
const observations = await witness.observe([{ address, schema: EvmAddressSchema }])
|
|
59
|
-
expect(observations?.length).toBeGreaterThan(0)
|
|
60
|
-
const code = observations?.[0].code
|
|
61
|
-
const results = await diviner.divine([{
|
|
62
|
-
address, block: 0, chainId: 1, code, schema: EvmContractSchema,
|
|
63
|
-
}])
|
|
64
|
-
expect(results?.length).toBeGreaterThan(0)
|
|
65
|
-
for (const result of results ?? []) {
|
|
66
|
-
expect(result.address).toBe(address)
|
|
67
|
-
expect(result.implemented).toBeTrue()
|
|
68
|
-
}
|
|
69
|
-
})
|
|
70
|
-
})
|
|
71
|
-
describe('without matching ABI', () => {
|
|
72
|
-
it.each(cases)('returns implemented false', async (address, abi) => {
|
|
73
|
-
const diviner = await EvmAbiImplementedDiviner.create({
|
|
74
|
-
account: 'random',
|
|
75
|
-
config: { abi, schema: EvmAbiImplementedDivinerConfigSchema },
|
|
76
|
-
})
|
|
77
|
-
const results = await diviner.divine([{
|
|
78
|
-
address, block: 0, chainId: 1, code: '0x00', schema: EvmContractSchema,
|
|
79
|
-
}])
|
|
80
|
-
expect(results?.length).toBeGreaterThan(0)
|
|
81
|
-
for (const result of results ?? []) {
|
|
82
|
-
expect(result.address).toBe(address)
|
|
83
|
-
expect(result.implemented).toBeFalse()
|
|
84
|
-
}
|
|
85
|
-
})
|
|
86
|
-
})
|
|
87
|
-
})
|
|
88
|
-
})
|