@xyo-network/evm-token-interface-diviner 2.85.0 → 2.85.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Diviner.d.cts +1 -1
- package/dist/browser/Diviner.d.cts.map +1 -1
- package/dist/browser/Diviner.d.mts +1 -1
- package/dist/browser/Diviner.d.mts.map +1 -1
- package/dist/browser/Diviner.d.ts +1 -1
- package/dist/browser/Diviner.d.ts.map +1 -1
- package/dist/browser/Payload.d.cts +1 -3
- package/dist/browser/Payload.d.cts.map +1 -1
- package/dist/browser/Payload.d.mts +1 -3
- package/dist/browser/Payload.d.mts.map +1 -1
- package/dist/browser/Payload.d.ts +1 -3
- package/dist/browser/Payload.d.ts.map +1 -1
- package/dist/browser/index.cjs +10 -14
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +9 -13
- package/dist/browser/index.js.map +1 -1
- package/dist/node/Diviner.d.cts +1 -1
- package/dist/node/Diviner.d.cts.map +1 -1
- package/dist/node/Diviner.d.mts +1 -1
- package/dist/node/Diviner.d.mts.map +1 -1
- package/dist/node/Diviner.d.ts +1 -1
- package/dist/node/Diviner.d.ts.map +1 -1
- package/dist/node/Payload.d.cts +1 -3
- package/dist/node/Payload.d.cts.map +1 -1
- package/dist/node/Payload.d.mts +1 -3
- package/dist/node/Payload.d.mts.map +1 -1
- package/dist/node/Payload.d.ts +1 -3
- package/dist/node/Payload.d.ts.map +1 -1
- package/dist/node/index.cjs +10 -14
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +9 -13
- package/dist/node/index.js.map +1 -1
- package/package.json +24 -24
- package/src/Diviner.ts +7 -10
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
import { AbstractDiviner } from '@xyo-network/diviner-abstract';
|
|
2
2
|
import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model';
|
|
3
3
|
import { EvmContract } from '@xyo-network/evm-contract-witness';
|
|
4
4
|
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,6BAWlB;cAEwB,aAAa,CAAC,UAAU,GAAE,WAAW,EAAO,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;CAsChH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
import { AbstractDiviner } from '@xyo-network/diviner-abstract';
|
|
2
2
|
import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model';
|
|
3
3
|
import { EvmContract } from '@xyo-network/evm-contract-witness';
|
|
4
4
|
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,6BAWlB;cAEwB,aAAa,CAAC,UAAU,GAAE,WAAW,EAAO,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;CAsChH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
import { AbstractDiviner } from '@xyo-network/diviner-abstract';
|
|
2
2
|
import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model';
|
|
3
3
|
import { EvmContract } from '@xyo-network/evm-contract-witness';
|
|
4
4
|
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,6BAWlB;cAEwB,aAAa,CAAC,UAAU,GAAE,WAAW,EAAO,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;CAsChH"}
|
|
@@ -65,8 +65,6 @@ export declare const isEvmTokenInterfaceImplemented: (x?: unknown) => x is impor
|
|
|
65
65
|
*/
|
|
66
66
|
tokenInterface: TokenInterface;
|
|
67
67
|
} & {
|
|
68
|
-
schema: "network.xyo.evm.token.interface.implemented";
|
|
69
|
-
* The contract address
|
|
70
|
-
*/
|
|
68
|
+
schema: "network.xyo.evm.token.interface.implemented";
|
|
71
69
|
};
|
|
72
70
|
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc;;;CAQmG,CAAA"}
|
|
@@ -65,8 +65,6 @@ export declare const isEvmTokenInterfaceImplemented: (x?: unknown) => x is impor
|
|
|
65
65
|
*/
|
|
66
66
|
tokenInterface: TokenInterface;
|
|
67
67
|
} & {
|
|
68
|
-
schema: "network.xyo.evm.token.interface.implemented";
|
|
69
|
-
* The contract address
|
|
70
|
-
*/
|
|
68
|
+
schema: "network.xyo.evm.token.interface.implemented";
|
|
71
69
|
};
|
|
72
70
|
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc;;;CAQmG,CAAA"}
|
|
@@ -65,8 +65,6 @@ export declare const isEvmTokenInterfaceImplemented: (x?: unknown) => x is impor
|
|
|
65
65
|
*/
|
|
66
66
|
tokenInterface: TokenInterface;
|
|
67
67
|
} & {
|
|
68
|
-
schema: "network.xyo.evm.token.interface.implemented";
|
|
69
|
-
* The contract address
|
|
70
|
-
*/
|
|
68
|
+
schema: "network.xyo.evm.token.interface.implemented";
|
|
71
69
|
};
|
|
72
70
|
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc;;;CAQmG,CAAA"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -29,7 +29,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
29
29
|
|
|
30
30
|
// src/Diviner.ts
|
|
31
31
|
var import_assert = require("@xylabs/assert");
|
|
32
|
-
var
|
|
32
|
+
var import_diviner_abstract = require("@xyo-network/diviner-abstract");
|
|
33
33
|
var import_evm_contract_witness = require("@xyo-network/evm-contract-witness");
|
|
34
34
|
var import_open_zeppelin_typechain = require("@xyo-network/open-zeppelin-typechain");
|
|
35
35
|
var import_ethers = require("ethers");
|
|
@@ -41,7 +41,7 @@ var isEvmTokenInterfaceImplemented = (0, import_payload_model.isPayloadOfSchemaT
|
|
|
41
41
|
|
|
42
42
|
// src/Diviner.ts
|
|
43
43
|
var EvmTokenInterfaceImplementedDivinerConfigSchema = `${EvmTokenInterfaceImplementedSchema}.diviner.config`;
|
|
44
|
-
var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiviner extends
|
|
44
|
+
var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiviner extends import_diviner_abstract.AbstractDiviner {
|
|
45
45
|
/**
|
|
46
46
|
* The list of supported token interfaces
|
|
47
47
|
*/
|
|
@@ -62,15 +62,11 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
62
62
|
*/
|
|
63
63
|
get tokenInterfaces() {
|
|
64
64
|
if (!this._tokenInterfaces) {
|
|
65
|
-
|
|
66
|
-
this.
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
) ?? {};
|
|
71
|
-
} else {
|
|
72
|
-
this._tokenInterfaces = _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces;
|
|
73
|
-
}
|
|
65
|
+
this._tokenInterfaces = this.config?.tokenInterfaces ? Object.fromEntries(
|
|
66
|
+
this.config?.tokenInterfaces.map((tokenInterface) => {
|
|
67
|
+
return [tokenInterface, _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]];
|
|
68
|
+
})
|
|
69
|
+
) ?? {} : _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces;
|
|
74
70
|
}
|
|
75
71
|
return this._tokenInterfaces;
|
|
76
72
|
}
|
|
@@ -82,13 +78,13 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
82
78
|
inPayloads.filter(import_evm_contract_witness.isEvmContract).map(({ address, code, chainId }) => {
|
|
83
79
|
const byteCode = (0, import_assert.assertEx)(code, "Missing code");
|
|
84
80
|
const results = [];
|
|
85
|
-
Object.entries(this.tokenInterfaces)
|
|
81
|
+
for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {
|
|
86
82
|
const contractInterface = new import_ethers.Interface(abi);
|
|
87
83
|
const implementations = [];
|
|
88
84
|
contractInterface.forEachFunction(({ selector }) => {
|
|
89
85
|
implementations.push(byteCode.includes(BigInt(selector).toString(16)));
|
|
90
86
|
});
|
|
91
|
-
const implemented = implementations.every(
|
|
87
|
+
const implemented = implementations.every(Boolean);
|
|
92
88
|
const result = {
|
|
93
89
|
address,
|
|
94
90
|
chainId,
|
|
@@ -97,7 +93,7 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
97
93
|
tokenInterface
|
|
98
94
|
};
|
|
99
95
|
results.push(result);
|
|
100
|
-
}
|
|
96
|
+
}
|
|
101
97
|
return results;
|
|
102
98
|
})
|
|
103
99
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/Payload.ts"],"sourcesContent":["export * from './Diviner'\nexport * from './Payload'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/Payload.ts"],"sourcesContent":["export * from './Diviner'\nexport * from './Payload'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model'\nimport { EvmContract, isEvmContract } from '@xyo-network/evm-contract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport {\n ERC20__factory,\n ERC721__factory,\n ERC1155__factory,\n IERC721Enumerable__factory,\n IERC721Metadata__factory,\n IERC721Receiver__factory,\n IERC1155MetadataURI__factory,\n IERC1155Receiver__factory,\n} from '@xyo-network/open-zeppelin-typechain'\nimport { Interface, JsonFragment } from 'ethers'\n\nimport { EvmTokenInterfaceImplemented, EvmTokenInterfaceImplementedSchema, TokenInterface } from './Payload'\n\nexport const EvmTokenInterfaceImplementedDivinerConfigSchema = `${EvmTokenInterfaceImplementedSchema}.diviner.config`\nexport type EvmTokenInterfaceImplementedDivinerConfigSchema = typeof EvmTokenInterfaceImplementedDivinerConfigSchema\n\nexport type EvmTokenInterfaceImplementedDivinerConfig = DivinerConfig<{\n schema: EvmTokenInterfaceImplementedDivinerConfigSchema\n tokenInterfaces?: TokenInterface[]\n}>\n\nexport type EvmTokenInterfaceImplementedDivinerParams = DivinerParams<AnyConfigSchema<EvmTokenInterfaceImplementedDivinerConfig>>\n\ntype DistributiveMappedType<T> = T extends string ? { [K in T]: readonly JsonFragment[] } : never\ntype TokenInterfaceDictionary = DistributiveMappedType<TokenInterface>\n\n/**\n * A diviner that checks if a contract implements a token interface\n */\nexport class EvmTokenInterfaceImplementedDiviner<\n TParams extends EvmTokenInterfaceImplementedDivinerParams = EvmTokenInterfaceImplementedDivinerParams,\n> extends AbstractDiviner<TParams, EvmContract, EvmTokenInterfaceImplemented> {\n /**\n * The list of supported token interfaces\n */\n static readonly SupportedTokenInterfaces: Readonly<Record<TokenInterface, readonly JsonFragment[]>> = {\n ERC1155: ERC1155__factory.abi,\n ERC1155Metadata_URI: IERC1155MetadataURI__factory.abi,\n ERC1155TokenReceiver: IERC1155Receiver__factory.abi,\n ERC20: ERC20__factory.abi,\n ERC721: ERC721__factory.abi,\n ERC721Enumerable: IERC721Enumerable__factory.abi,\n ERC721Metadata: IERC721Metadata__factory.abi,\n ERC721TokenReceiver: IERC721Receiver__factory.abi,\n }\n static override configSchemas = [EvmTokenInterfaceImplementedDivinerConfigSchema]\n\n private _tokenInterfaces?: TokenInterfaceDictionary\n\n /**\n * The list of token interfaces to check against the contract\n */\n get tokenInterfaces() {\n if (!this._tokenInterfaces) {\n this._tokenInterfaces = this.config?.tokenInterfaces\n ? (Object.fromEntries(\n this.config?.tokenInterfaces.map((tokenInterface) => {\n return [tokenInterface, EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]] as const\n }),\n ) as TokenInterfaceDictionary) ?? {}\n : EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces\n }\n return this._tokenInterfaces\n }\n\n protected override async divineHandler(inPayloads: EvmContract[] = []): Promise<EvmTokenInterfaceImplemented[]> {\n await this.started('throw')\n try {\n const allResults = await Promise.all(\n // Iterate over each contract passed in\n inPayloads.filter(isEvmContract).map(({ address, code, chainId }) => {\n // Ensure we have the contract code\n const byteCode = assertEx(code, 'Missing code')\n const results: EvmTokenInterfaceImplemented[] = []\n // Iterate over each token interface\n for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {\n // Check if the contract implements the interface abi\n const contractInterface = new Interface(abi)\n const implementations: boolean[] = []\n contractInterface.forEachFunction(({ selector }) => {\n implementations.push(byteCode.includes(BigInt(selector).toString(16)))\n })\n const implemented = implementations.every(Boolean)\n const result: EvmTokenInterfaceImplemented = {\n address,\n chainId,\n implemented,\n schema: EvmTokenInterfaceImplementedSchema,\n tokenInterface: tokenInterface as TokenInterface,\n }\n results.push(result)\n }\n\n return results\n }),\n )\n return allResults.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 { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\n/**\n * ERC20 Token Interfaces\n */\nexport type ERC20TokenInterfaces = 'ERC20'\n\n/**\n * ERC721 Token Interfaces\n */\nexport type ERC721TokenInterfaces = 'ERC721' | 'ERC721TokenReceiver' | 'ERC721Metadata' | 'ERC721Enumerable'\n\n/**\n * ERC1155 Token Interfaces\n */\nexport type ERC1155TokenInterfaces = 'ERC1155' | 'ERC1155TokenReceiver' | 'ERC1155Metadata_URI'\n\n/**\n * All Token Interfaces\n */\nexport type TokenInterface = ERC20TokenInterfaces | ERC721TokenInterfaces | ERC1155TokenInterfaces\n\n/**\n * The schema for the EVM Token Interface Implemented payload\n */\nexport const EvmTokenInterfaceImplementedSchema = 'network.xyo.evm.token.interface.implemented'\n/**\n * The schema for the EVM Token Interface Implemented payload\n */\nexport type EvmTokenInterfaceImplementedSchema = typeof EvmTokenInterfaceImplementedSchema\n\n/**\n * The EVM Token Interface Implemented payload\n */\nexport type EvmTokenInterfaceImplemented = Payload<\n {\n /**\n * The contract address\n */\n address: string\n /**\n * The chain id\n */\n chainId: number\n /**\n * True if the contract implements the interface\n */\n implemented: boolean\n /**\n * The specific token interface\n */\n tokenInterface: TokenInterface\n },\n EvmTokenInterfaceImplementedSchema\n>\n\n/**\n * Identity function for EvmTokenInterfaceImplemented payload\n */\nexport const isEvmTokenInterfaceImplemented = isPayloadOfSchemaType<EvmTokenInterfaceImplemented>(EvmTokenInterfaceImplementedSchema)\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,8BAAgC;AAEhC,kCAA2C;AAE3C,qCASO;AACP,oBAAwC;;;ACfxC,2BAA+C;AAyBxC,IAAM,qCAAqC;AAkC3C,IAAM,qCAAiC,4CAAoD,kCAAkC;;;ADxC7H,IAAM,kDAAkD,GAAG,kCAAkC;AAgB7F,IAAM,sCAAN,MAAM,6CAEH,wCAAoE;AAAA;AAAA;AAAA;AAAA,EAI5E,OAAgB,2BAAsF;AAAA,IACpG,SAAS,gDAAiB;AAAA,IAC1B,qBAAqB,4DAA6B;AAAA,IAClD,sBAAsB,yDAA0B;AAAA,IAChD,OAAO,8CAAe;AAAA,IACtB,QAAQ,+CAAgB;AAAA,IACxB,kBAAkB,0DAA2B;AAAA,IAC7C,gBAAgB,wDAAyB;AAAA,IACzC,qBAAqB,wDAAyB;AAAA,EAChD;AAAA,EACA,OAAgB,gBAAgB,CAAC,+CAA+C;AAAA,EAExE;AAAA;AAAA;AAAA;AAAA,EAKR,IAAI,kBAAkB;AACpB,QAAI,CAAC,KAAK,kBAAkB;AAC1B,WAAK,mBAAmB,KAAK,QAAQ,kBAChC,OAAO;AAAA,QACN,KAAK,QAAQ,gBAAgB,IAAI,CAAC,mBAAmB;AACnD,iBAAO,CAAC,gBAAgB,qCAAoC,yBAAyB,cAAc,CAAC;AAAA,QACtG,CAAC;AAAA,MACH,KAAkC,CAAC,IACnC,qCAAoC;AAAA,IAC1C;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAyB,cAAc,aAA4B,CAAC,GAA4C;AAC9G,UAAM,KAAK,QAAQ,OAAO;AAC1B,QAAI;AACF,YAAM,aAAa,MAAM,QAAQ;AAAA;AAAA,QAE/B,WAAW,OAAO,yCAAa,EAAE,IAAI,CAAC,EAAE,SAAS,MAAM,QAAQ,MAAM;AAEnE,gBAAM,eAAW,wBAAS,MAAM,cAAc;AAC9C,gBAAM,UAA0C,CAAC;AAEjD,qBAAW,CAAC,gBAAgB,GAAG,KAAK,OAAO,QAAQ,KAAK,eAAe,GAAG;AAExE,kBAAM,oBAAoB,IAAI,wBAAU,GAAG;AAC3C,kBAAM,kBAA6B,CAAC;AACpC,8BAAkB,gBAAgB,CAAC,EAAE,SAAS,MAAM;AAClD,8BAAgB,KAAK,SAAS,SAAS,OAAO,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAAA,YACvE,CAAC;AACD,kBAAM,cAAc,gBAAgB,MAAM,OAAO;AACjD,kBAAM,SAAuC;AAAA,cAC3C;AAAA,cACA;AAAA,cACA;AAAA,cACA,QAAQ;AAAA,cACR;AAAA,YACF;AACA,oBAAQ,KAAK,MAAM;AAAA,UACrB;AAEA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO,WAAW,KAAK;AAAA,IACzB,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
|
package/dist/browser/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/Diviner.ts
|
|
2
2
|
import { assertEx } from "@xylabs/assert";
|
|
3
|
-
import { AbstractDiviner } from "@xyo-network/abstract
|
|
3
|
+
import { AbstractDiviner } from "@xyo-network/diviner-abstract";
|
|
4
4
|
import { isEvmContract } from "@xyo-network/evm-contract-witness";
|
|
5
5
|
import {
|
|
6
6
|
ERC20__factory,
|
|
@@ -42,15 +42,11 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
42
42
|
*/
|
|
43
43
|
get tokenInterfaces() {
|
|
44
44
|
if (!this._tokenInterfaces) {
|
|
45
|
-
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
) ?? {};
|
|
51
|
-
} else {
|
|
52
|
-
this._tokenInterfaces = _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces;
|
|
53
|
-
}
|
|
45
|
+
this._tokenInterfaces = this.config?.tokenInterfaces ? Object.fromEntries(
|
|
46
|
+
this.config?.tokenInterfaces.map((tokenInterface) => {
|
|
47
|
+
return [tokenInterface, _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]];
|
|
48
|
+
})
|
|
49
|
+
) ?? {} : _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces;
|
|
54
50
|
}
|
|
55
51
|
return this._tokenInterfaces;
|
|
56
52
|
}
|
|
@@ -62,13 +58,13 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
62
58
|
inPayloads.filter(isEvmContract).map(({ address, code, chainId }) => {
|
|
63
59
|
const byteCode = assertEx(code, "Missing code");
|
|
64
60
|
const results = [];
|
|
65
|
-
Object.entries(this.tokenInterfaces)
|
|
61
|
+
for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {
|
|
66
62
|
const contractInterface = new Interface(abi);
|
|
67
63
|
const implementations = [];
|
|
68
64
|
contractInterface.forEachFunction(({ selector }) => {
|
|
69
65
|
implementations.push(byteCode.includes(BigInt(selector).toString(16)));
|
|
70
66
|
});
|
|
71
|
-
const implemented = implementations.every(
|
|
67
|
+
const implemented = implementations.every(Boolean);
|
|
72
68
|
const result = {
|
|
73
69
|
address,
|
|
74
70
|
chainId,
|
|
@@ -77,7 +73,7 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
77
73
|
tokenInterface
|
|
78
74
|
};
|
|
79
75
|
results.push(result);
|
|
80
|
-
}
|
|
76
|
+
}
|
|
81
77
|
return results;
|
|
82
78
|
})
|
|
83
79
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Diviner.ts","../../src/Payload.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
{"version":3,"sources":["../../src/Diviner.ts","../../src/Payload.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model'\nimport { EvmContract, isEvmContract } from '@xyo-network/evm-contract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport {\n ERC20__factory,\n ERC721__factory,\n ERC1155__factory,\n IERC721Enumerable__factory,\n IERC721Metadata__factory,\n IERC721Receiver__factory,\n IERC1155MetadataURI__factory,\n IERC1155Receiver__factory,\n} from '@xyo-network/open-zeppelin-typechain'\nimport { Interface, JsonFragment } from 'ethers'\n\nimport { EvmTokenInterfaceImplemented, EvmTokenInterfaceImplementedSchema, TokenInterface } from './Payload'\n\nexport const EvmTokenInterfaceImplementedDivinerConfigSchema = `${EvmTokenInterfaceImplementedSchema}.diviner.config`\nexport type EvmTokenInterfaceImplementedDivinerConfigSchema = typeof EvmTokenInterfaceImplementedDivinerConfigSchema\n\nexport type EvmTokenInterfaceImplementedDivinerConfig = DivinerConfig<{\n schema: EvmTokenInterfaceImplementedDivinerConfigSchema\n tokenInterfaces?: TokenInterface[]\n}>\n\nexport type EvmTokenInterfaceImplementedDivinerParams = DivinerParams<AnyConfigSchema<EvmTokenInterfaceImplementedDivinerConfig>>\n\ntype DistributiveMappedType<T> = T extends string ? { [K in T]: readonly JsonFragment[] } : never\ntype TokenInterfaceDictionary = DistributiveMappedType<TokenInterface>\n\n/**\n * A diviner that checks if a contract implements a token interface\n */\nexport class EvmTokenInterfaceImplementedDiviner<\n TParams extends EvmTokenInterfaceImplementedDivinerParams = EvmTokenInterfaceImplementedDivinerParams,\n> extends AbstractDiviner<TParams, EvmContract, EvmTokenInterfaceImplemented> {\n /**\n * The list of supported token interfaces\n */\n static readonly SupportedTokenInterfaces: Readonly<Record<TokenInterface, readonly JsonFragment[]>> = {\n ERC1155: ERC1155__factory.abi,\n ERC1155Metadata_URI: IERC1155MetadataURI__factory.abi,\n ERC1155TokenReceiver: IERC1155Receiver__factory.abi,\n ERC20: ERC20__factory.abi,\n ERC721: ERC721__factory.abi,\n ERC721Enumerable: IERC721Enumerable__factory.abi,\n ERC721Metadata: IERC721Metadata__factory.abi,\n ERC721TokenReceiver: IERC721Receiver__factory.abi,\n }\n static override configSchemas = [EvmTokenInterfaceImplementedDivinerConfigSchema]\n\n private _tokenInterfaces?: TokenInterfaceDictionary\n\n /**\n * The list of token interfaces to check against the contract\n */\n get tokenInterfaces() {\n if (!this._tokenInterfaces) {\n this._tokenInterfaces = this.config?.tokenInterfaces\n ? (Object.fromEntries(\n this.config?.tokenInterfaces.map((tokenInterface) => {\n return [tokenInterface, EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]] as const\n }),\n ) as TokenInterfaceDictionary) ?? {}\n : EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces\n }\n return this._tokenInterfaces\n }\n\n protected override async divineHandler(inPayloads: EvmContract[] = []): Promise<EvmTokenInterfaceImplemented[]> {\n await this.started('throw')\n try {\n const allResults = await Promise.all(\n // Iterate over each contract passed in\n inPayloads.filter(isEvmContract).map(({ address, code, chainId }) => {\n // Ensure we have the contract code\n const byteCode = assertEx(code, 'Missing code')\n const results: EvmTokenInterfaceImplemented[] = []\n // Iterate over each token interface\n for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {\n // Check if the contract implements the interface abi\n const contractInterface = new Interface(abi)\n const implementations: boolean[] = []\n contractInterface.forEachFunction(({ selector }) => {\n implementations.push(byteCode.includes(BigInt(selector).toString(16)))\n })\n const implemented = implementations.every(Boolean)\n const result: EvmTokenInterfaceImplemented = {\n address,\n chainId,\n implemented,\n schema: EvmTokenInterfaceImplementedSchema,\n tokenInterface: tokenInterface as TokenInterface,\n }\n results.push(result)\n }\n\n return results\n }),\n )\n return allResults.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 { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\n/**\n * ERC20 Token Interfaces\n */\nexport type ERC20TokenInterfaces = 'ERC20'\n\n/**\n * ERC721 Token Interfaces\n */\nexport type ERC721TokenInterfaces = 'ERC721' | 'ERC721TokenReceiver' | 'ERC721Metadata' | 'ERC721Enumerable'\n\n/**\n * ERC1155 Token Interfaces\n */\nexport type ERC1155TokenInterfaces = 'ERC1155' | 'ERC1155TokenReceiver' | 'ERC1155Metadata_URI'\n\n/**\n * All Token Interfaces\n */\nexport type TokenInterface = ERC20TokenInterfaces | ERC721TokenInterfaces | ERC1155TokenInterfaces\n\n/**\n * The schema for the EVM Token Interface Implemented payload\n */\nexport const EvmTokenInterfaceImplementedSchema = 'network.xyo.evm.token.interface.implemented'\n/**\n * The schema for the EVM Token Interface Implemented payload\n */\nexport type EvmTokenInterfaceImplementedSchema = typeof EvmTokenInterfaceImplementedSchema\n\n/**\n * The EVM Token Interface Implemented payload\n */\nexport type EvmTokenInterfaceImplemented = Payload<\n {\n /**\n * The contract address\n */\n address: string\n /**\n * The chain id\n */\n chainId: number\n /**\n * True if the contract implements the interface\n */\n implemented: boolean\n /**\n * The specific token interface\n */\n tokenInterface: TokenInterface\n },\n EvmTokenInterfaceImplementedSchema\n>\n\n/**\n * Identity function for EvmTokenInterfaceImplemented payload\n */\nexport const isEvmTokenInterfaceImplemented = isPayloadOfSchemaType<EvmTokenInterfaceImplemented>(EvmTokenInterfaceImplementedSchema)\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAEhC,SAAsB,qBAAqB;AAE3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAA+B;;;ACfxC,SAAS,6BAAsC;AAyBxC,IAAM,qCAAqC;AAkC3C,IAAM,iCAAiC,sBAAoD,kCAAkC;;;ADxC7H,IAAM,kDAAkD,GAAG,kCAAkC;AAgB7F,IAAM,sCAAN,MAAM,6CAEH,gBAAoE;AAAA;AAAA;AAAA;AAAA,EAI5E,OAAgB,2BAAsF;AAAA,IACpG,SAAS,iBAAiB;AAAA,IAC1B,qBAAqB,6BAA6B;AAAA,IAClD,sBAAsB,0BAA0B;AAAA,IAChD,OAAO,eAAe;AAAA,IACtB,QAAQ,gBAAgB;AAAA,IACxB,kBAAkB,2BAA2B;AAAA,IAC7C,gBAAgB,yBAAyB;AAAA,IACzC,qBAAqB,yBAAyB;AAAA,EAChD;AAAA,EACA,OAAgB,gBAAgB,CAAC,+CAA+C;AAAA,EAExE;AAAA;AAAA;AAAA;AAAA,EAKR,IAAI,kBAAkB;AACpB,QAAI,CAAC,KAAK,kBAAkB;AAC1B,WAAK,mBAAmB,KAAK,QAAQ,kBAChC,OAAO;AAAA,QACN,KAAK,QAAQ,gBAAgB,IAAI,CAAC,mBAAmB;AACnD,iBAAO,CAAC,gBAAgB,qCAAoC,yBAAyB,cAAc,CAAC;AAAA,QACtG,CAAC;AAAA,MACH,KAAkC,CAAC,IACnC,qCAAoC;AAAA,IAC1C;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAyB,cAAc,aAA4B,CAAC,GAA4C;AAC9G,UAAM,KAAK,QAAQ,OAAO;AAC1B,QAAI;AACF,YAAM,aAAa,MAAM,QAAQ;AAAA;AAAA,QAE/B,WAAW,OAAO,aAAa,EAAE,IAAI,CAAC,EAAE,SAAS,MAAM,QAAQ,MAAM;AAEnE,gBAAM,WAAW,SAAS,MAAM,cAAc;AAC9C,gBAAM,UAA0C,CAAC;AAEjD,qBAAW,CAAC,gBAAgB,GAAG,KAAK,OAAO,QAAQ,KAAK,eAAe,GAAG;AAExE,kBAAM,oBAAoB,IAAI,UAAU,GAAG;AAC3C,kBAAM,kBAA6B,CAAC;AACpC,8BAAkB,gBAAgB,CAAC,EAAE,SAAS,MAAM;AAClD,8BAAgB,KAAK,SAAS,SAAS,OAAO,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAAA,YACvE,CAAC;AACD,kBAAM,cAAc,gBAAgB,MAAM,OAAO;AACjD,kBAAM,SAAuC;AAAA,cAC3C;AAAA,cACA;AAAA,cACA;AAAA,cACA,QAAQ;AAAA,cACR;AAAA,YACF;AACA,oBAAQ,KAAK,MAAM;AAAA,UACrB;AAEA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO,WAAW,KAAK;AAAA,IACzB,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
|
package/dist/node/Diviner.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
import { AbstractDiviner } from '@xyo-network/diviner-abstract';
|
|
2
2
|
import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model';
|
|
3
3
|
import { EvmContract } from '@xyo-network/evm-contract-witness';
|
|
4
4
|
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,6BAWlB;cAEwB,aAAa,CAAC,UAAU,GAAE,WAAW,EAAO,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;CAsChH"}
|
package/dist/node/Diviner.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
import { AbstractDiviner } from '@xyo-network/diviner-abstract';
|
|
2
2
|
import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model';
|
|
3
3
|
import { EvmContract } from '@xyo-network/evm-contract-witness';
|
|
4
4
|
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,6BAWlB;cAEwB,aAAa,CAAC,UAAU,GAAE,WAAW,EAAO,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;CAsChH"}
|
package/dist/node/Diviner.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
import { AbstractDiviner } from '@xyo-network/diviner-abstract';
|
|
2
2
|
import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model';
|
|
3
3
|
import { EvmContract } from '@xyo-network/evm-contract-witness';
|
|
4
4
|
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,WAAW,EAAiB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAW3D,OAAO,EAAa,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAsC,cAAc,EAAE,MAAM,WAAW,CAAA;AAE5G,eAAO,MAAM,+CAA+C,+DAAyD,CAAA;AACrH,MAAM,MAAM,+CAA+C,GAAG,OAAO,+CAA+C,CAAA;AAEpH,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC;IACpE,MAAM,EAAE,+CAA+C,CAAA;IACvD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;CACnC,CAAC,CAAA;AAEF,MAAM,MAAM,yCAAyC,GAAG,aAAa,CAAC,eAAe,CAAC,yCAAyC,CAAC,CAAC,CAAA;AAEjI,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,EAAE;CAAE,GAAG,KAAK,CAAA;AACjG,KAAK,wBAAwB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAA;AAEtE;;GAEG;AACH,qBAAa,mCAAmC,CAC9C,OAAO,SAAS,yCAAyC,GAAG,yCAAyC,CACrG,SAAQ,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,4BAA4B,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CASlG;IACD,OAAgB,aAAa,WAAoD;IAEjF,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD;;OAEG;IACH,IAAI,eAAe,6BAWlB;cAEwB,aAAa,CAAC,UAAU,GAAE,WAAW,EAAO,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;CAsChH"}
|
package/dist/node/Payload.d.cts
CHANGED
|
@@ -65,8 +65,6 @@ export declare const isEvmTokenInterfaceImplemented: (x?: unknown) => x is impor
|
|
|
65
65
|
*/
|
|
66
66
|
tokenInterface: TokenInterface;
|
|
67
67
|
} & {
|
|
68
|
-
schema: "network.xyo.evm.token.interface.implemented";
|
|
69
|
-
* The contract address
|
|
70
|
-
*/
|
|
68
|
+
schema: "network.xyo.evm.token.interface.implemented";
|
|
71
69
|
};
|
|
72
70
|
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc;;;CAQmG,CAAA"}
|
package/dist/node/Payload.d.mts
CHANGED
|
@@ -65,8 +65,6 @@ export declare const isEvmTokenInterfaceImplemented: (x?: unknown) => x is impor
|
|
|
65
65
|
*/
|
|
66
66
|
tokenInterface: TokenInterface;
|
|
67
67
|
} & {
|
|
68
|
-
schema: "network.xyo.evm.token.interface.implemented";
|
|
69
|
-
* The contract address
|
|
70
|
-
*/
|
|
68
|
+
schema: "network.xyo.evm.token.interface.implemented";
|
|
71
69
|
};
|
|
72
70
|
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc;;;CAQmG,CAAA"}
|
package/dist/node/Payload.d.ts
CHANGED
|
@@ -65,8 +65,6 @@ export declare const isEvmTokenInterfaceImplemented: (x?: unknown) => x is impor
|
|
|
65
65
|
*/
|
|
66
66
|
tokenInterface: TokenInterface;
|
|
67
67
|
} & {
|
|
68
|
-
schema: "network.xyo.evm.token.interface.implemented";
|
|
69
|
-
* The contract address
|
|
70
|
-
*/
|
|
68
|
+
schema: "network.xyo.evm.token.interface.implemented";
|
|
71
69
|
};
|
|
72
70
|
//# sourceMappingURL=Payload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc
|
|
1
|
+
{"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;AAE5G;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,sBAAsB,GAAG,qBAAqB,CAAA;AAE/F;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,CAAA;AAElG;;GAEG;AACH,eAAO,MAAM,kCAAkC,gDAAgD,CAAA;AAC/F;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD;IACE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;CAC/B,EACD,kCAAkC,CACnC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B;IAvBvC;;OAEG;aACM,MAAM;IACf;;OAEG;aACM,MAAM;IACf;;OAEG;iBACU,OAAO;IACpB;;OAEG;oBACa,cAAc;;;CAQmG,CAAA"}
|
package/dist/node/index.cjs
CHANGED
|
@@ -29,7 +29,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
29
29
|
|
|
30
30
|
// src/Diviner.ts
|
|
31
31
|
var import_assert = require("@xylabs/assert");
|
|
32
|
-
var
|
|
32
|
+
var import_diviner_abstract = require("@xyo-network/diviner-abstract");
|
|
33
33
|
var import_evm_contract_witness = require("@xyo-network/evm-contract-witness");
|
|
34
34
|
var import_open_zeppelin_typechain = require("@xyo-network/open-zeppelin-typechain");
|
|
35
35
|
var import_ethers = require("ethers");
|
|
@@ -41,7 +41,7 @@ var isEvmTokenInterfaceImplemented = (0, import_payload_model.isPayloadOfSchemaT
|
|
|
41
41
|
|
|
42
42
|
// src/Diviner.ts
|
|
43
43
|
var EvmTokenInterfaceImplementedDivinerConfigSchema = `${EvmTokenInterfaceImplementedSchema}.diviner.config`;
|
|
44
|
-
var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiviner extends
|
|
44
|
+
var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiviner extends import_diviner_abstract.AbstractDiviner {
|
|
45
45
|
/**
|
|
46
46
|
* The list of supported token interfaces
|
|
47
47
|
*/
|
|
@@ -63,15 +63,11 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
63
63
|
get tokenInterfaces() {
|
|
64
64
|
var _a, _b;
|
|
65
65
|
if (!this._tokenInterfaces) {
|
|
66
|
-
|
|
67
|
-
this.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
) ?? {};
|
|
72
|
-
} else {
|
|
73
|
-
this._tokenInterfaces = _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces;
|
|
74
|
-
}
|
|
66
|
+
this._tokenInterfaces = ((_a = this.config) == null ? void 0 : _a.tokenInterfaces) ? Object.fromEntries(
|
|
67
|
+
(_b = this.config) == null ? void 0 : _b.tokenInterfaces.map((tokenInterface) => {
|
|
68
|
+
return [tokenInterface, _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]];
|
|
69
|
+
})
|
|
70
|
+
) ?? {} : _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces;
|
|
75
71
|
}
|
|
76
72
|
return this._tokenInterfaces;
|
|
77
73
|
}
|
|
@@ -83,13 +79,13 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
83
79
|
inPayloads.filter(import_evm_contract_witness.isEvmContract).map(({ address, code, chainId }) => {
|
|
84
80
|
const byteCode = (0, import_assert.assertEx)(code, "Missing code");
|
|
85
81
|
const results = [];
|
|
86
|
-
Object.entries(this.tokenInterfaces)
|
|
82
|
+
for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {
|
|
87
83
|
const contractInterface = new import_ethers.Interface(abi);
|
|
88
84
|
const implementations = [];
|
|
89
85
|
contractInterface.forEachFunction(({ selector }) => {
|
|
90
86
|
implementations.push(byteCode.includes(BigInt(selector).toString(16)));
|
|
91
87
|
});
|
|
92
|
-
const implemented = implementations.every(
|
|
88
|
+
const implemented = implementations.every(Boolean);
|
|
93
89
|
const result = {
|
|
94
90
|
address,
|
|
95
91
|
chainId,
|
|
@@ -98,7 +94,7 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
98
94
|
tokenInterface
|
|
99
95
|
};
|
|
100
96
|
results.push(result);
|
|
101
|
-
}
|
|
97
|
+
}
|
|
102
98
|
return results;
|
|
103
99
|
})
|
|
104
100
|
);
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/Payload.ts"],"sourcesContent":["export * from './Diviner'\nexport * from './Payload'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/Payload.ts"],"sourcesContent":["export * from './Diviner'\nexport * from './Payload'\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model'\nimport { EvmContract, isEvmContract } from '@xyo-network/evm-contract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport {\n ERC20__factory,\n ERC721__factory,\n ERC1155__factory,\n IERC721Enumerable__factory,\n IERC721Metadata__factory,\n IERC721Receiver__factory,\n IERC1155MetadataURI__factory,\n IERC1155Receiver__factory,\n} from '@xyo-network/open-zeppelin-typechain'\nimport { Interface, JsonFragment } from 'ethers'\n\nimport { EvmTokenInterfaceImplemented, EvmTokenInterfaceImplementedSchema, TokenInterface } from './Payload'\n\nexport const EvmTokenInterfaceImplementedDivinerConfigSchema = `${EvmTokenInterfaceImplementedSchema}.diviner.config`\nexport type EvmTokenInterfaceImplementedDivinerConfigSchema = typeof EvmTokenInterfaceImplementedDivinerConfigSchema\n\nexport type EvmTokenInterfaceImplementedDivinerConfig = DivinerConfig<{\n schema: EvmTokenInterfaceImplementedDivinerConfigSchema\n tokenInterfaces?: TokenInterface[]\n}>\n\nexport type EvmTokenInterfaceImplementedDivinerParams = DivinerParams<AnyConfigSchema<EvmTokenInterfaceImplementedDivinerConfig>>\n\ntype DistributiveMappedType<T> = T extends string ? { [K in T]: readonly JsonFragment[] } : never\ntype TokenInterfaceDictionary = DistributiveMappedType<TokenInterface>\n\n/**\n * A diviner that checks if a contract implements a token interface\n */\nexport class EvmTokenInterfaceImplementedDiviner<\n TParams extends EvmTokenInterfaceImplementedDivinerParams = EvmTokenInterfaceImplementedDivinerParams,\n> extends AbstractDiviner<TParams, EvmContract, EvmTokenInterfaceImplemented> {\n /**\n * The list of supported token interfaces\n */\n static readonly SupportedTokenInterfaces: Readonly<Record<TokenInterface, readonly JsonFragment[]>> = {\n ERC1155: ERC1155__factory.abi,\n ERC1155Metadata_URI: IERC1155MetadataURI__factory.abi,\n ERC1155TokenReceiver: IERC1155Receiver__factory.abi,\n ERC20: ERC20__factory.abi,\n ERC721: ERC721__factory.abi,\n ERC721Enumerable: IERC721Enumerable__factory.abi,\n ERC721Metadata: IERC721Metadata__factory.abi,\n ERC721TokenReceiver: IERC721Receiver__factory.abi,\n }\n static override configSchemas = [EvmTokenInterfaceImplementedDivinerConfigSchema]\n\n private _tokenInterfaces?: TokenInterfaceDictionary\n\n /**\n * The list of token interfaces to check against the contract\n */\n get tokenInterfaces() {\n if (!this._tokenInterfaces) {\n this._tokenInterfaces = this.config?.tokenInterfaces\n ? (Object.fromEntries(\n this.config?.tokenInterfaces.map((tokenInterface) => {\n return [tokenInterface, EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]] as const\n }),\n ) as TokenInterfaceDictionary) ?? {}\n : EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces\n }\n return this._tokenInterfaces\n }\n\n protected override async divineHandler(inPayloads: EvmContract[] = []): Promise<EvmTokenInterfaceImplemented[]> {\n await this.started('throw')\n try {\n const allResults = await Promise.all(\n // Iterate over each contract passed in\n inPayloads.filter(isEvmContract).map(({ address, code, chainId }) => {\n // Ensure we have the contract code\n const byteCode = assertEx(code, 'Missing code')\n const results: EvmTokenInterfaceImplemented[] = []\n // Iterate over each token interface\n for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {\n // Check if the contract implements the interface abi\n const contractInterface = new Interface(abi)\n const implementations: boolean[] = []\n contractInterface.forEachFunction(({ selector }) => {\n implementations.push(byteCode.includes(BigInt(selector).toString(16)))\n })\n const implemented = implementations.every(Boolean)\n const result: EvmTokenInterfaceImplemented = {\n address,\n chainId,\n implemented,\n schema: EvmTokenInterfaceImplementedSchema,\n tokenInterface: tokenInterface as TokenInterface,\n }\n results.push(result)\n }\n\n return results\n }),\n )\n return allResults.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 { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\n/**\n * ERC20 Token Interfaces\n */\nexport type ERC20TokenInterfaces = 'ERC20'\n\n/**\n * ERC721 Token Interfaces\n */\nexport type ERC721TokenInterfaces = 'ERC721' | 'ERC721TokenReceiver' | 'ERC721Metadata' | 'ERC721Enumerable'\n\n/**\n * ERC1155 Token Interfaces\n */\nexport type ERC1155TokenInterfaces = 'ERC1155' | 'ERC1155TokenReceiver' | 'ERC1155Metadata_URI'\n\n/**\n * All Token Interfaces\n */\nexport type TokenInterface = ERC20TokenInterfaces | ERC721TokenInterfaces | ERC1155TokenInterfaces\n\n/**\n * The schema for the EVM Token Interface Implemented payload\n */\nexport const EvmTokenInterfaceImplementedSchema = 'network.xyo.evm.token.interface.implemented'\n/**\n * The schema for the EVM Token Interface Implemented payload\n */\nexport type EvmTokenInterfaceImplementedSchema = typeof EvmTokenInterfaceImplementedSchema\n\n/**\n * The EVM Token Interface Implemented payload\n */\nexport type EvmTokenInterfaceImplemented = Payload<\n {\n /**\n * The contract address\n */\n address: string\n /**\n * The chain id\n */\n chainId: number\n /**\n * True if the contract implements the interface\n */\n implemented: boolean\n /**\n * The specific token interface\n */\n tokenInterface: TokenInterface\n },\n EvmTokenInterfaceImplementedSchema\n>\n\n/**\n * Identity function for EvmTokenInterfaceImplemented payload\n */\nexport const isEvmTokenInterfaceImplemented = isPayloadOfSchemaType<EvmTokenInterfaceImplemented>(EvmTokenInterfaceImplementedSchema)\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyB;AACzB,8BAAgC;AAEhC,kCAA2C;AAE3C,qCASO;AACP,oBAAwC;;;ACfxC,2BAA+C;AAyBxC,IAAM,qCAAqC;AAkC3C,IAAM,qCAAiC,4CAAoD,kCAAkC;;;ADxC7H,IAAM,kDAAkD,GAAG,kCAAkC;AAgB7F,IAAM,sCAAN,MAAM,6CAEH,wCAAoE;AAAA;AAAA;AAAA;AAAA,EAI5E,OAAgB,2BAAsF;AAAA,IACpG,SAAS,gDAAiB;AAAA,IAC1B,qBAAqB,4DAA6B;AAAA,IAClD,sBAAsB,yDAA0B;AAAA,IAChD,OAAO,8CAAe;AAAA,IACtB,QAAQ,+CAAgB;AAAA,IACxB,kBAAkB,0DAA2B;AAAA,IAC7C,gBAAgB,wDAAyB;AAAA,IACzC,qBAAqB,wDAAyB;AAAA,EAChD;AAAA,EACA,OAAgB,gBAAgB,CAAC,+CAA+C;AAAA,EAExE;AAAA;AAAA;AAAA;AAAA,EAKR,IAAI,kBAAkB;AA1DxB;AA2DI,QAAI,CAAC,KAAK,kBAAkB;AAC1B,WAAK,qBAAmB,UAAK,WAAL,mBAAa,mBAChC,OAAO;AAAA,SACN,UAAK,WAAL,mBAAa,gBAAgB,IAAI,CAAC,mBAAmB;AACnD,iBAAO,CAAC,gBAAgB,qCAAoC,yBAAyB,cAAc,CAAC;AAAA,QACtG;AAAA,MACF,KAAkC,CAAC,IACnC,qCAAoC;AAAA,IAC1C;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAyB,cAAc,aAA4B,CAAC,GAA4C;AAC9G,UAAM,KAAK,QAAQ,OAAO;AAC1B,QAAI;AACF,YAAM,aAAa,MAAM,QAAQ;AAAA;AAAA,QAE/B,WAAW,OAAO,yCAAa,EAAE,IAAI,CAAC,EAAE,SAAS,MAAM,QAAQ,MAAM;AAEnE,gBAAM,eAAW,wBAAS,MAAM,cAAc;AAC9C,gBAAM,UAA0C,CAAC;AAEjD,qBAAW,CAAC,gBAAgB,GAAG,KAAK,OAAO,QAAQ,KAAK,eAAe,GAAG;AAExE,kBAAM,oBAAoB,IAAI,wBAAU,GAAG;AAC3C,kBAAM,kBAA6B,CAAC;AACpC,8BAAkB,gBAAgB,CAAC,EAAE,SAAS,MAAM;AAClD,8BAAgB,KAAK,SAAS,SAAS,OAAO,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAAA,YACvE,CAAC;AACD,kBAAM,cAAc,gBAAgB,MAAM,OAAO;AACjD,kBAAM,SAAuC;AAAA,cAC3C;AAAA,cACA;AAAA,cACA;AAAA,cACA,QAAQ;AAAA,cACR;AAAA,YACF;AACA,oBAAQ,KAAK,MAAM;AAAA,UACrB;AAEA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO,WAAW,KAAK;AAAA,IACzB,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
|
package/dist/node/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/Diviner.ts
|
|
2
2
|
import { assertEx } from "@xylabs/assert";
|
|
3
|
-
import { AbstractDiviner } from "@xyo-network/abstract
|
|
3
|
+
import { AbstractDiviner } from "@xyo-network/diviner-abstract";
|
|
4
4
|
import { isEvmContract } from "@xyo-network/evm-contract-witness";
|
|
5
5
|
import {
|
|
6
6
|
ERC20__factory,
|
|
@@ -43,15 +43,11 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
43
43
|
get tokenInterfaces() {
|
|
44
44
|
var _a, _b;
|
|
45
45
|
if (!this._tokenInterfaces) {
|
|
46
|
-
|
|
47
|
-
this.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
) ?? {};
|
|
52
|
-
} else {
|
|
53
|
-
this._tokenInterfaces = _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces;
|
|
54
|
-
}
|
|
46
|
+
this._tokenInterfaces = ((_a = this.config) == null ? void 0 : _a.tokenInterfaces) ? Object.fromEntries(
|
|
47
|
+
(_b = this.config) == null ? void 0 : _b.tokenInterfaces.map((tokenInterface) => {
|
|
48
|
+
return [tokenInterface, _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]];
|
|
49
|
+
})
|
|
50
|
+
) ?? {} : _EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces;
|
|
55
51
|
}
|
|
56
52
|
return this._tokenInterfaces;
|
|
57
53
|
}
|
|
@@ -63,13 +59,13 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
63
59
|
inPayloads.filter(isEvmContract).map(({ address, code, chainId }) => {
|
|
64
60
|
const byteCode = assertEx(code, "Missing code");
|
|
65
61
|
const results = [];
|
|
66
|
-
Object.entries(this.tokenInterfaces)
|
|
62
|
+
for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {
|
|
67
63
|
const contractInterface = new Interface(abi);
|
|
68
64
|
const implementations = [];
|
|
69
65
|
contractInterface.forEachFunction(({ selector }) => {
|
|
70
66
|
implementations.push(byteCode.includes(BigInt(selector).toString(16)));
|
|
71
67
|
});
|
|
72
|
-
const implemented = implementations.every(
|
|
68
|
+
const implemented = implementations.every(Boolean);
|
|
73
69
|
const result = {
|
|
74
70
|
address,
|
|
75
71
|
chainId,
|
|
@@ -78,7 +74,7 @@ var EvmTokenInterfaceImplementedDiviner = class _EvmTokenInterfaceImplementedDiv
|
|
|
78
74
|
tokenInterface
|
|
79
75
|
};
|
|
80
76
|
results.push(result);
|
|
81
|
-
}
|
|
77
|
+
}
|
|
82
78
|
return results;
|
|
83
79
|
})
|
|
84
80
|
);
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Diviner.ts","../../src/Payload.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/abstract
|
|
1
|
+
{"version":3,"sources":["../../src/Diviner.ts","../../src/Payload.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model'\nimport { EvmContract, isEvmContract } from '@xyo-network/evm-contract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport {\n ERC20__factory,\n ERC721__factory,\n ERC1155__factory,\n IERC721Enumerable__factory,\n IERC721Metadata__factory,\n IERC721Receiver__factory,\n IERC1155MetadataURI__factory,\n IERC1155Receiver__factory,\n} from '@xyo-network/open-zeppelin-typechain'\nimport { Interface, JsonFragment } from 'ethers'\n\nimport { EvmTokenInterfaceImplemented, EvmTokenInterfaceImplementedSchema, TokenInterface } from './Payload'\n\nexport const EvmTokenInterfaceImplementedDivinerConfigSchema = `${EvmTokenInterfaceImplementedSchema}.diviner.config`\nexport type EvmTokenInterfaceImplementedDivinerConfigSchema = typeof EvmTokenInterfaceImplementedDivinerConfigSchema\n\nexport type EvmTokenInterfaceImplementedDivinerConfig = DivinerConfig<{\n schema: EvmTokenInterfaceImplementedDivinerConfigSchema\n tokenInterfaces?: TokenInterface[]\n}>\n\nexport type EvmTokenInterfaceImplementedDivinerParams = DivinerParams<AnyConfigSchema<EvmTokenInterfaceImplementedDivinerConfig>>\n\ntype DistributiveMappedType<T> = T extends string ? { [K in T]: readonly JsonFragment[] } : never\ntype TokenInterfaceDictionary = DistributiveMappedType<TokenInterface>\n\n/**\n * A diviner that checks if a contract implements a token interface\n */\nexport class EvmTokenInterfaceImplementedDiviner<\n TParams extends EvmTokenInterfaceImplementedDivinerParams = EvmTokenInterfaceImplementedDivinerParams,\n> extends AbstractDiviner<TParams, EvmContract, EvmTokenInterfaceImplemented> {\n /**\n * The list of supported token interfaces\n */\n static readonly SupportedTokenInterfaces: Readonly<Record<TokenInterface, readonly JsonFragment[]>> = {\n ERC1155: ERC1155__factory.abi,\n ERC1155Metadata_URI: IERC1155MetadataURI__factory.abi,\n ERC1155TokenReceiver: IERC1155Receiver__factory.abi,\n ERC20: ERC20__factory.abi,\n ERC721: ERC721__factory.abi,\n ERC721Enumerable: IERC721Enumerable__factory.abi,\n ERC721Metadata: IERC721Metadata__factory.abi,\n ERC721TokenReceiver: IERC721Receiver__factory.abi,\n }\n static override configSchemas = [EvmTokenInterfaceImplementedDivinerConfigSchema]\n\n private _tokenInterfaces?: TokenInterfaceDictionary\n\n /**\n * The list of token interfaces to check against the contract\n */\n get tokenInterfaces() {\n if (!this._tokenInterfaces) {\n this._tokenInterfaces = this.config?.tokenInterfaces\n ? (Object.fromEntries(\n this.config?.tokenInterfaces.map((tokenInterface) => {\n return [tokenInterface, EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]] as const\n }),\n ) as TokenInterfaceDictionary) ?? {}\n : EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces\n }\n return this._tokenInterfaces\n }\n\n protected override async divineHandler(inPayloads: EvmContract[] = []): Promise<EvmTokenInterfaceImplemented[]> {\n await this.started('throw')\n try {\n const allResults = await Promise.all(\n // Iterate over each contract passed in\n inPayloads.filter(isEvmContract).map(({ address, code, chainId }) => {\n // Ensure we have the contract code\n const byteCode = assertEx(code, 'Missing code')\n const results: EvmTokenInterfaceImplemented[] = []\n // Iterate over each token interface\n for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {\n // Check if the contract implements the interface abi\n const contractInterface = new Interface(abi)\n const implementations: boolean[] = []\n contractInterface.forEachFunction(({ selector }) => {\n implementations.push(byteCode.includes(BigInt(selector).toString(16)))\n })\n const implemented = implementations.every(Boolean)\n const result: EvmTokenInterfaceImplemented = {\n address,\n chainId,\n implemented,\n schema: EvmTokenInterfaceImplementedSchema,\n tokenInterface: tokenInterface as TokenInterface,\n }\n results.push(result)\n }\n\n return results\n }),\n )\n return allResults.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 { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\n/**\n * ERC20 Token Interfaces\n */\nexport type ERC20TokenInterfaces = 'ERC20'\n\n/**\n * ERC721 Token Interfaces\n */\nexport type ERC721TokenInterfaces = 'ERC721' | 'ERC721TokenReceiver' | 'ERC721Metadata' | 'ERC721Enumerable'\n\n/**\n * ERC1155 Token Interfaces\n */\nexport type ERC1155TokenInterfaces = 'ERC1155' | 'ERC1155TokenReceiver' | 'ERC1155Metadata_URI'\n\n/**\n * All Token Interfaces\n */\nexport type TokenInterface = ERC20TokenInterfaces | ERC721TokenInterfaces | ERC1155TokenInterfaces\n\n/**\n * The schema for the EVM Token Interface Implemented payload\n */\nexport const EvmTokenInterfaceImplementedSchema = 'network.xyo.evm.token.interface.implemented'\n/**\n * The schema for the EVM Token Interface Implemented payload\n */\nexport type EvmTokenInterfaceImplementedSchema = typeof EvmTokenInterfaceImplementedSchema\n\n/**\n * The EVM Token Interface Implemented payload\n */\nexport type EvmTokenInterfaceImplemented = Payload<\n {\n /**\n * The contract address\n */\n address: string\n /**\n * The chain id\n */\n chainId: number\n /**\n * True if the contract implements the interface\n */\n implemented: boolean\n /**\n * The specific token interface\n */\n tokenInterface: TokenInterface\n },\n EvmTokenInterfaceImplementedSchema\n>\n\n/**\n * Identity function for EvmTokenInterfaceImplemented payload\n */\nexport const isEvmTokenInterfaceImplemented = isPayloadOfSchemaType<EvmTokenInterfaceImplemented>(EvmTokenInterfaceImplementedSchema)\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAEhC,SAAsB,qBAAqB;AAE3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,iBAA+B;;;ACfxC,SAAS,6BAAsC;AAyBxC,IAAM,qCAAqC;AAkC3C,IAAM,iCAAiC,sBAAoD,kCAAkC;;;ADxC7H,IAAM,kDAAkD,GAAG,kCAAkC;AAgB7F,IAAM,sCAAN,MAAM,6CAEH,gBAAoE;AAAA;AAAA;AAAA;AAAA,EAI5E,OAAgB,2BAAsF;AAAA,IACpG,SAAS,iBAAiB;AAAA,IAC1B,qBAAqB,6BAA6B;AAAA,IAClD,sBAAsB,0BAA0B;AAAA,IAChD,OAAO,eAAe;AAAA,IACtB,QAAQ,gBAAgB;AAAA,IACxB,kBAAkB,2BAA2B;AAAA,IAC7C,gBAAgB,yBAAyB;AAAA,IACzC,qBAAqB,yBAAyB;AAAA,EAChD;AAAA,EACA,OAAgB,gBAAgB,CAAC,+CAA+C;AAAA,EAExE;AAAA;AAAA;AAAA;AAAA,EAKR,IAAI,kBAAkB;AA1DxB;AA2DI,QAAI,CAAC,KAAK,kBAAkB;AAC1B,WAAK,qBAAmB,UAAK,WAAL,mBAAa,mBAChC,OAAO;AAAA,SACN,UAAK,WAAL,mBAAa,gBAAgB,IAAI,CAAC,mBAAmB;AACnD,iBAAO,CAAC,gBAAgB,qCAAoC,yBAAyB,cAAc,CAAC;AAAA,QACtG;AAAA,MACF,KAAkC,CAAC,IACnC,qCAAoC;AAAA,IAC1C;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAyB,cAAc,aAA4B,CAAC,GAA4C;AAC9G,UAAM,KAAK,QAAQ,OAAO;AAC1B,QAAI;AACF,YAAM,aAAa,MAAM,QAAQ;AAAA;AAAA,QAE/B,WAAW,OAAO,aAAa,EAAE,IAAI,CAAC,EAAE,SAAS,MAAM,QAAQ,MAAM;AAEnE,gBAAM,WAAW,SAAS,MAAM,cAAc;AAC9C,gBAAM,UAA0C,CAAC;AAEjD,qBAAW,CAAC,gBAAgB,GAAG,KAAK,OAAO,QAAQ,KAAK,eAAe,GAAG;AAExE,kBAAM,oBAAoB,IAAI,UAAU,GAAG;AAC3C,kBAAM,kBAA6B,CAAC;AACpC,8BAAkB,gBAAgB,CAAC,EAAE,SAAS,MAAM;AAClD,8BAAgB,KAAK,SAAS,SAAS,OAAO,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAAA,YACvE,CAAC;AACD,kBAAM,cAAc,gBAAgB,MAAM,OAAO;AACjD,kBAAM,SAAuC;AAAA,cAC3C;AAAA,cACA;AAAA,cACA;AAAA,cACA,QAAQ;AAAA,cACR;AAAA,YACF;AACA,oBAAQ,KAAK,MAAM;AAAA,UACrB;AAEA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AACA,aAAO,WAAW,KAAK;AAAA,IACzB,SAAS,IAAI;AACX,YAAM,QAAQ;AACd,cAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,MAAM,MAAM,OAAO,EAAE;AAC3D,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
|
package/package.json
CHANGED
|
@@ -10,35 +10,35 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/plugins/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^2.13.
|
|
14
|
-
"@xyo-network/abstract
|
|
15
|
-
"@xyo-network/diviner-model": "^2.85.
|
|
16
|
-
"@xyo-network/module-model": "^2.85.
|
|
13
|
+
"@xylabs/assert": "^2.13.23",
|
|
14
|
+
"@xyo-network/diviner-abstract": "^2.85.8",
|
|
15
|
+
"@xyo-network/diviner-model": "^2.85.8",
|
|
16
|
+
"@xyo-network/module-model": "^2.85.8",
|
|
17
17
|
"@xyo-network/open-zeppelin-typechain": "^3.0.5",
|
|
18
|
-
"@xyo-network/payload-model": "^2.85.
|
|
19
|
-
"ethers": "^6.9.
|
|
18
|
+
"@xyo-network/payload-model": "^2.85.8",
|
|
19
|
+
"ethers": "^6.9.2"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@xylabs/delay": "^2.13.
|
|
23
|
-
"@xylabs/jest-helpers": "^2.13.
|
|
22
|
+
"@xylabs/delay": "^2.13.23",
|
|
23
|
+
"@xylabs/jest-helpers": "^2.13.23",
|
|
24
24
|
"@xylabs/ts-scripts-yarn3": "^3.2.25",
|
|
25
25
|
"@xylabs/tsconfig": "^3.2.25",
|
|
26
|
-
"@xyo-network/account": "^2.85.
|
|
27
|
-
"@xyo-network/
|
|
28
|
-
"@xyo-network/
|
|
29
|
-
"@xyo-network/diviner-
|
|
30
|
-
"@xyo-network/diviner-
|
|
31
|
-
"@xyo-network/diviner-payload-
|
|
32
|
-
"@xyo-network/diviner-
|
|
33
|
-
"@xyo-network/diviner-
|
|
34
|
-
"@xyo-network/
|
|
35
|
-
"@xyo-network/
|
|
36
|
-
"@xyo-network/
|
|
37
|
-
"@xyo-network/node-memory": "^2.85.
|
|
26
|
+
"@xyo-network/account": "^2.85.8",
|
|
27
|
+
"@xyo-network/archivist-memory": "^2.85.8",
|
|
28
|
+
"@xyo-network/boundwitness-model": "^2.85.8",
|
|
29
|
+
"@xyo-network/diviner-boundwitness-memory": "^2.85.8",
|
|
30
|
+
"@xyo-network/diviner-jsonpatch": "^2.85.8",
|
|
31
|
+
"@xyo-network/diviner-payload-memory": "^2.85.8",
|
|
32
|
+
"@xyo-network/diviner-payload-model": "^2.85.8",
|
|
33
|
+
"@xyo-network/diviner-stateful": "^2.85.8",
|
|
34
|
+
"@xyo-network/diviner-temporal-indexing": "^2.85.8",
|
|
35
|
+
"@xyo-network/evm-contract-witness": "~2.85.2",
|
|
36
|
+
"@xyo-network/manifest": "^2.85.8",
|
|
37
|
+
"@xyo-network/node-memory": "^2.85.8",
|
|
38
38
|
"@xyo-network/open-zeppelin-typechain": "^3.0.5",
|
|
39
|
-
"@xyo-network/sentinel-model": "^2.85.
|
|
40
|
-
"@xyo-network/witness-evm-abstract": "^2.85.
|
|
41
|
-
"@xyo-network/witness-timestamp": "^2.85.
|
|
39
|
+
"@xyo-network/sentinel-model": "^2.85.8",
|
|
40
|
+
"@xyo-network/witness-evm-abstract": "^2.85.8",
|
|
41
|
+
"@xyo-network/witness-timestamp": "^2.85.8",
|
|
42
42
|
"jest": "^29.7.0",
|
|
43
43
|
"typescript": "^5.3.3"
|
|
44
44
|
},
|
|
@@ -81,6 +81,6 @@
|
|
|
81
81
|
"url": "https://github.com/XYOracleNetwork/plugins.git"
|
|
82
82
|
},
|
|
83
83
|
"sideEffects": false,
|
|
84
|
-
"version": "2.85.
|
|
84
|
+
"version": "2.85.2",
|
|
85
85
|
"type": "module"
|
|
86
86
|
}
|
package/src/Diviner.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import { AbstractDiviner } from '@xyo-network/abstract
|
|
2
|
+
import { AbstractDiviner } from '@xyo-network/diviner-abstract'
|
|
3
3
|
import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model'
|
|
4
4
|
import { EvmContract, isEvmContract } from '@xyo-network/evm-contract-witness'
|
|
5
5
|
import { AnyConfigSchema } from '@xyo-network/module-model'
|
|
@@ -58,16 +58,13 @@ export class EvmTokenInterfaceImplementedDiviner<
|
|
|
58
58
|
*/
|
|
59
59
|
get tokenInterfaces() {
|
|
60
60
|
if (!this._tokenInterfaces) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
(Object.fromEntries(
|
|
61
|
+
this._tokenInterfaces = this.config?.tokenInterfaces
|
|
62
|
+
? (Object.fromEntries(
|
|
64
63
|
this.config?.tokenInterfaces.map((tokenInterface) => {
|
|
65
64
|
return [tokenInterface, EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces[tokenInterface]] as const
|
|
66
65
|
}),
|
|
67
66
|
) as TokenInterfaceDictionary) ?? {}
|
|
68
|
-
|
|
69
|
-
this._tokenInterfaces = EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces
|
|
70
|
-
}
|
|
67
|
+
: EvmTokenInterfaceImplementedDiviner.SupportedTokenInterfaces
|
|
71
68
|
}
|
|
72
69
|
return this._tokenInterfaces
|
|
73
70
|
}
|
|
@@ -82,14 +79,14 @@ export class EvmTokenInterfaceImplementedDiviner<
|
|
|
82
79
|
const byteCode = assertEx(code, 'Missing code')
|
|
83
80
|
const results: EvmTokenInterfaceImplemented[] = []
|
|
84
81
|
// Iterate over each token interface
|
|
85
|
-
Object.entries(this.tokenInterfaces)
|
|
82
|
+
for (const [tokenInterface, abi] of Object.entries(this.tokenInterfaces)) {
|
|
86
83
|
// Check if the contract implements the interface abi
|
|
87
84
|
const contractInterface = new Interface(abi)
|
|
88
85
|
const implementations: boolean[] = []
|
|
89
86
|
contractInterface.forEachFunction(({ selector }) => {
|
|
90
87
|
implementations.push(byteCode.includes(BigInt(selector).toString(16)))
|
|
91
88
|
})
|
|
92
|
-
const implemented = implementations.every(
|
|
89
|
+
const implemented = implementations.every(Boolean)
|
|
93
90
|
const result: EvmTokenInterfaceImplemented = {
|
|
94
91
|
address,
|
|
95
92
|
chainId,
|
|
@@ -98,7 +95,7 @@ export class EvmTokenInterfaceImplementedDiviner<
|
|
|
98
95
|
tokenInterface: tokenInterface as TokenInterface,
|
|
99
96
|
}
|
|
100
97
|
results.push(result)
|
|
101
|
-
}
|
|
98
|
+
}
|
|
102
99
|
|
|
103
100
|
return results
|
|
104
101
|
}),
|