@xyo-network/etherchain-ethereum-gas-v2-plugin 2.42.0

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.
Files changed (70) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +81 -0
  3. package/dist/cjs/Config.d.ts +6 -0
  4. package/dist/cjs/Config.d.ts.map +1 -0
  5. package/dist/cjs/Config.js +3 -0
  6. package/dist/cjs/Config.js.map +1 -0
  7. package/dist/cjs/Plugin.d.ts +15 -0
  8. package/dist/cjs/Plugin.d.ts.map +1 -0
  9. package/dist/cjs/Plugin.js +16 -0
  10. package/dist/cjs/Plugin.js.map +1 -0
  11. package/dist/cjs/Schema.d.ts +3 -0
  12. package/dist/cjs/Schema.d.ts.map +1 -0
  13. package/dist/cjs/Schema.js +5 -0
  14. package/dist/cjs/Schema.js.map +1 -0
  15. package/dist/cjs/Witness.d.ts +10 -0
  16. package/dist/cjs/Witness.d.ts.map +1 -0
  17. package/dist/cjs/Witness.js +30 -0
  18. package/dist/cjs/Witness.js.map +1 -0
  19. package/dist/cjs/index.d.ts +7 -0
  20. package/dist/cjs/index.d.ts.map +1 -0
  21. package/dist/cjs/index.js +12 -0
  22. package/dist/cjs/index.js.map +1 -0
  23. package/dist/cjs/lib/getV2GasFromEtherchain.d.ts +3 -0
  24. package/dist/cjs/lib/getV2GasFromEtherchain.d.ts.map +1 -0
  25. package/dist/cjs/lib/getV2GasFromEtherchain.js +11 -0
  26. package/dist/cjs/lib/getV2GasFromEtherchain.js.map +1 -0
  27. package/dist/cjs/lib/index.d.ts +2 -0
  28. package/dist/cjs/lib/index.d.ts.map +1 -0
  29. package/dist/cjs/lib/index.js +5 -0
  30. package/dist/cjs/lib/index.js.map +1 -0
  31. package/dist/docs.json +4679 -0
  32. package/dist/esm/Config.d.ts +6 -0
  33. package/dist/esm/Config.d.ts.map +1 -0
  34. package/dist/esm/Config.js +2 -0
  35. package/dist/esm/Config.js.map +1 -0
  36. package/dist/esm/Plugin.d.ts +15 -0
  37. package/dist/esm/Plugin.d.ts.map +1 -0
  38. package/dist/esm/Plugin.js +11 -0
  39. package/dist/esm/Plugin.js.map +1 -0
  40. package/dist/esm/Schema.d.ts +3 -0
  41. package/dist/esm/Schema.d.ts.map +1 -0
  42. package/dist/esm/Schema.js +2 -0
  43. package/dist/esm/Schema.js.map +1 -0
  44. package/dist/esm/Witness.d.ts +10 -0
  45. package/dist/esm/Witness.d.ts.map +1 -0
  46. package/dist/esm/Witness.js +19 -0
  47. package/dist/esm/Witness.js.map +1 -0
  48. package/dist/esm/index.d.ts +7 -0
  49. package/dist/esm/index.d.ts.map +1 -0
  50. package/dist/esm/index.js +8 -0
  51. package/dist/esm/index.js.map +1 -0
  52. package/dist/esm/lib/getV2GasFromEtherchain.d.ts +3 -0
  53. package/dist/esm/lib/getV2GasFromEtherchain.d.ts.map +1 -0
  54. package/dist/esm/lib/getV2GasFromEtherchain.js +6 -0
  55. package/dist/esm/lib/getV2GasFromEtherchain.js.map +1 -0
  56. package/dist/esm/lib/index.d.ts +2 -0
  57. package/dist/esm/lib/index.d.ts.map +1 -0
  58. package/dist/esm/lib/index.js +2 -0
  59. package/dist/esm/lib/index.js.map +1 -0
  60. package/package.json +55 -0
  61. package/src/Config.ts +7 -0
  62. package/src/Plugin.spec.ts +13 -0
  63. package/src/Plugin.ts +18 -0
  64. package/src/Schema.ts +3 -0
  65. package/src/Witness.spec.ts +34 -0
  66. package/src/Witness.ts +25 -0
  67. package/src/index.ts +10 -0
  68. package/src/lib/getV2GasFromEtherchain.spec.ts +16 -0
  69. package/src/lib/getV2GasFromEtherchain.ts +8 -0
  70. package/src/lib/index.ts +1 -0
@@ -0,0 +1,6 @@
1
+ import { XyoWitnessConfig } from '@xyo-network/witness';
2
+ import { XyoEthereumGasEtherchainV2WitnessConfigSchema } from './Schema';
3
+ export type XyoEthereumGasEtherchainV2WitnessConfig = XyoWitnessConfig<{
4
+ schema: XyoEthereumGasEtherchainV2WitnessConfigSchema;
5
+ }>;
6
+ //# sourceMappingURL=Config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,6CAA6C,EAAE,MAAM,UAAU,CAAA;AAExE,MAAM,MAAM,uCAAuC,GAAG,gBAAgB,CAAC;IACrE,MAAM,EAAE,6CAA6C,CAAA;CACtD,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { XyoModuleParams } from '@xyo-network/module';
2
+ import { PayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin';
3
+ export declare const XyoEthereumGasEtherchainV2Plugin: () => PayloadSetWitnessPlugin<XyoModuleParams<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
4
+ security?: {
5
+ allowed?: Record<string, string[][]> | undefined;
6
+ disallowed?: Record<string, string[]> | undefined;
7
+ } | undefined;
8
+ } & {
9
+ schema: "network.xyo.blockchain.ethereum.gas.etherchain.v2.witness.config";
10
+ } & {
11
+ targetSet?: (import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & import("@xyo-network/payload").PayloadSet & {
12
+ schema: "network.xyo.payload.set";
13
+ }) | undefined;
14
+ }>>;
15
+ //# sourceMappingURL=Plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAA0B,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAKhG,eAAO,MAAM,gCAAgC;;;;;;;;;;;GAS1C,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { XyoEthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-ethereum-gas-v2-payload-plugin';
2
+ import { PayloadSetSchema } from '@xyo-network/payload';
3
+ import { createPayloadSetPlugin } from '@xyo-network/payloadset-plugin';
4
+ import { XyoEtherchainEthereumGasWitnessV2 } from './Witness';
5
+ export const XyoEthereumGasEtherchainV2Plugin = () => createPayloadSetPlugin({ required: { [XyoEthereumGasEtherchainV2Schema]: 1 }, schema: PayloadSetSchema }, {
6
+ witness: async (params) => {
7
+ const result = await XyoEtherchainEthereumGasWitnessV2.create(params);
8
+ return result;
9
+ },
10
+ });
11
+ //# sourceMappingURL=Plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,wDAAwD,CAAA;AAEzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAA2B,MAAM,gCAAgC,CAAA;AAGhG,OAAO,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAA;AAE7D,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,EAAE,CACnD,sBAAsB,CACpB,EAAE,QAAQ,EAAE,EAAE,CAAC,gCAAgC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EACjF;IACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,iCAAiC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrE,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ export type XyoEthereumGasEtherchainV2WitnessConfigSchema = 'network.xyo.blockchain.ethereum.gas.etherchain.v2.witness.config';
2
+ export declare const XyoEthereumGasEtherchainV2WitnessConfigSchema: XyoEthereumGasEtherchainV2WitnessConfigSchema;
3
+ //# sourceMappingURL=Schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6CAA6C,GAAG,kEAAkE,CAAA;AAC9H,eAAO,MAAM,6CAA6C,EAAE,6CACQ,CAAA"}
@@ -0,0 +1,2 @@
1
+ export const XyoEthereumGasEtherchainV2WitnessConfigSchema = 'network.xyo.blockchain.ethereum.gas.etherchain.v2.witness.config';
2
+ //# sourceMappingURL=Schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,6CAA6C,GACxD,kEAAkE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { XyoModuleParams } from '@xyo-network/module';
2
+ import { XyoPayload } from '@xyo-network/payload';
3
+ import { TimestampWitness } from '@xyo-network/witness';
4
+ import { XyoEthereumGasEtherchainV2WitnessConfig } from './Config';
5
+ export declare class XyoEtherchainEthereumGasWitnessV2 extends TimestampWitness<XyoEthereumGasEtherchainV2WitnessConfig> {
6
+ static configSchema: "network.xyo.blockchain.ethereum.gas.etherchain.v2.witness.config";
7
+ static create(params?: XyoModuleParams<XyoEthereumGasEtherchainV2WitnessConfig>): Promise<XyoEtherchainEthereumGasWitnessV2>;
8
+ observe(): Promise<XyoPayload[]>;
9
+ }
10
+ //# sourceMappingURL=Witness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,uCAAuC,EAAE,MAAM,UAAU,CAAA;AAIlE,qBAAa,iCAAkC,SAAQ,gBAAgB,CAAC,uCAAuC,CAAC;IAC9G,OAAgB,YAAY,qEAAgD;WAEtD,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,uCAAuC,CAAC,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAI5H,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAQhD"}
@@ -0,0 +1,19 @@
1
+ import { XyoEthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-ethereum-gas-v2-payload-plugin';
2
+ import { TimestampWitness } from '@xyo-network/witness';
3
+ import { getV2GasFromEtherchain } from './lib';
4
+ import { XyoEthereumGasEtherchainV2WitnessConfigSchema } from './Schema';
5
+ export class XyoEtherchainEthereumGasWitnessV2 extends TimestampWitness {
6
+ static configSchema = XyoEthereumGasEtherchainV2WitnessConfigSchema;
7
+ static async create(params) {
8
+ return (await super.create(params));
9
+ }
10
+ async observe() {
11
+ const payload = {
12
+ ...(await getV2GasFromEtherchain()),
13
+ schema: XyoEthereumGasEtherchainV2Schema,
14
+ timestamp: Date.now(),
15
+ };
16
+ return super.observe([payload]);
17
+ }
18
+ }
19
+ //# sourceMappingURL=Witness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,gCAAgC,EAAE,MAAM,wDAAwD,CAAA;AAG5I,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,EAAE,6CAA6C,EAAE,MAAM,UAAU,CAAA;AAExE,MAAM,OAAO,iCAAkC,SAAQ,gBAAyD;IAC9G,MAAM,CAAU,YAAY,GAAG,6CAA6C,CAAA;IAE5E,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAiE;QAC5F,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAsC,CAAA;IAC1E,CAAC;IAEQ,KAAK,CAAC,OAAO;QACpB,MAAM,OAAO,GAAsC;YACjD,GAAG,CAAC,MAAM,sBAAsB,EAAE,CAAC;YACnC,MAAM,EAAE,gCAAgC;YACxC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAA;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IACjC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { XyoEthereumGasEtherchainV2Plugin } from './Plugin';
2
+ export * from './Config';
3
+ export * from './Schema';
4
+ export * from './Witness';
5
+ export { XyoEthereumGasEtherchainV2Plugin };
6
+ export default XyoEthereumGasEtherchainV2Plugin;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAA;AAE3D,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,gCAAgC,EAAE,CAAA;AAG3C,eAAe,gCAAgC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { XyoEthereumGasEtherchainV2Plugin } from './Plugin';
2
+ export * from './Config';
3
+ export * from './Schema';
4
+ export * from './Witness';
5
+ export { XyoEthereumGasEtherchainV2Plugin };
6
+ // eslint-disable-next-line import/no-default-export
7
+ export default XyoEthereumGasEtherchainV2Plugin;
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAA;AAE3D,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,gCAAgC,EAAE,CAAA;AAE3C,oDAAoD;AACpD,eAAe,gCAAgC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { EthereumGasEtherchainV2Response } from '@xyo-network/etherchain-ethereum-gas-v2-payload-plugin';
2
+ export declare const getV2GasFromEtherchain: () => Promise<EthereumGasEtherchainV2Response>;
3
+ //# sourceMappingURL=getV2GasFromEtherchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getV2GasFromEtherchain.d.ts","sourceRoot":"","sources":["../../../src/lib/getV2GasFromEtherchain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAA;AAKxG,eAAO,MAAM,sBAAsB,QAAa,QAAQ,+BAA+B,CAEtF,CAAA"}
@@ -0,0 +1,6 @@
1
+ import axios from 'axios';
2
+ const url = 'https://www.etherchain.org/api/gasnow';
3
+ export const getV2GasFromEtherchain = async () => {
4
+ return (await axios.get(url)).data;
5
+ };
6
+ //# sourceMappingURL=getV2GasFromEtherchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getV2GasFromEtherchain.js","sourceRoot":"","sources":["../../../src/lib/getV2GasFromEtherchain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,GAAG,GAAG,uCAAuC,CAAA;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,IAA8C,EAAE;IACzF,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAkC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AACrE,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './getV2GasFromEtherchain';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './getV2GasFromEtherchain';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@xyo-network/etherchain-ethereum-gas-v2-plugin",
3
+ "author": {
4
+ "email": "support@xyo.network",
5
+ "name": "XYO Development Team",
6
+ "url": "https://xyo.network"
7
+ },
8
+ "bugs": {
9
+ "email": "support@xyo.network",
10
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
+ },
12
+ "dependencies": {
13
+ "@xyo-network/etherchain-ethereum-gas-v2-payload-plugin": "^2.42.0",
14
+ "@xyo-network/module": "^2.42.0",
15
+ "@xyo-network/payload": "^2.42.0",
16
+ "@xyo-network/payloadset-plugin": "^2.42.0",
17
+ "@xyo-network/witness": "^2.42.0",
18
+ "axios": "~1.2.1",
19
+ "tslib": "^2.4.1"
20
+ },
21
+ "description": "Primary SDK for using XYO Protocol 2.0",
22
+ "browser": "dist/esm/index.js",
23
+ "docs": "dist/docs.json",
24
+ "exports": {
25
+ ".": {
26
+ "node": {
27
+ "import": "./dist/esm/index.js",
28
+ "require": "./dist/cjs/index.js"
29
+ },
30
+ "browser": {
31
+ "import": "./dist/esm/index.js",
32
+ "require": "./dist/cjs/index.js"
33
+ },
34
+ "default": "./dist/esm/index.js"
35
+ },
36
+ "./dist/docs.json": {
37
+ "default": "./dist/docs.json"
38
+ },
39
+ "./package.json": "./package.json"
40
+ },
41
+ "main": "dist/cjs/index.js",
42
+ "module": "dist/esm/index.js",
43
+ "homepage": "https://xyo.network",
44
+ "license": "LGPL-3.0-only",
45
+ "publishConfig": {
46
+ "access": "public"
47
+ },
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
51
+ },
52
+ "sideEffects": false,
53
+ "types": "dist/esm/index.d.ts",
54
+ "version": "2.42.0"
55
+ }
package/src/Config.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { XyoWitnessConfig } from '@xyo-network/witness'
2
+
3
+ import { XyoEthereumGasEtherchainV2WitnessConfigSchema } from './Schema'
4
+
5
+ export type XyoEthereumGasEtherchainV2WitnessConfig = XyoWitnessConfig<{
6
+ schema: XyoEthereumGasEtherchainV2WitnessConfigSchema
7
+ }>
@@ -0,0 +1,13 @@
1
+ import { XyoEthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-ethereum-gas-v2-payload-plugin'
2
+ import { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'
3
+
4
+ import { XyoEthereumGasEtherchainV2Plugin } from './Plugin'
5
+
6
+ describe('XyoEthereumGasEtherchainV2Plugin', () => {
7
+ test('Add to Resolver', () => {
8
+ const plugin = XyoEthereumGasEtherchainV2Plugin()
9
+ const resolver = new PayloadSetPluginResolver().register(plugin)
10
+ expect(resolver.resolve(plugin.set)).toBeObject()
11
+ expect(resolver.witness(XyoEthereumGasEtherchainV2Schema)).toBeObject()
12
+ })
13
+ })
package/src/Plugin.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { XyoEthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-ethereum-gas-v2-payload-plugin'
2
+ import { XyoModuleParams } from '@xyo-network/module'
3
+ import { PayloadSetSchema } from '@xyo-network/payload'
4
+ import { createPayloadSetPlugin, PayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'
5
+
6
+ import { XyoEthereumGasEtherchainV2WitnessConfig } from './Config'
7
+ import { XyoEtherchainEthereumGasWitnessV2 } from './Witness'
8
+
9
+ export const XyoEthereumGasEtherchainV2Plugin = () =>
10
+ createPayloadSetPlugin<PayloadSetWitnessPlugin<XyoModuleParams<XyoEthereumGasEtherchainV2WitnessConfig>>>(
11
+ { required: { [XyoEthereumGasEtherchainV2Schema]: 1 }, schema: PayloadSetSchema },
12
+ {
13
+ witness: async (params) => {
14
+ const result = await XyoEtherchainEthereumGasWitnessV2.create(params)
15
+ return result
16
+ },
17
+ },
18
+ )
package/src/Schema.ts ADDED
@@ -0,0 +1,3 @@
1
+ export type XyoEthereumGasEtherchainV2WitnessConfigSchema = 'network.xyo.blockchain.ethereum.gas.etherchain.v2.witness.config'
2
+ export const XyoEthereumGasEtherchainV2WitnessConfigSchema: XyoEthereumGasEtherchainV2WitnessConfigSchema =
3
+ 'network.xyo.blockchain.ethereum.gas.etherchain.v2.witness.config'
@@ -0,0 +1,34 @@
1
+ import { XyoEthereumGasEtherchainV2Payload, XyoEthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-ethereum-gas-v2-payload-plugin'
2
+ import { PayloadWrapper } from '@xyo-network/payload'
3
+
4
+ import { XyoEthereumGasEtherchainV2WitnessConfigSchema } from './Schema'
5
+ import { XyoEtherchainEthereumGasWitnessV2 } from './Witness'
6
+
7
+ describe('XyoEtherchainEthereumGasWitnessV2', () => {
8
+ test('returns observation', async () => {
9
+ const sut = await XyoEtherchainEthereumGasWitnessV2.create({
10
+ config: { schema: XyoEthereumGasEtherchainV2WitnessConfigSchema },
11
+ })
12
+ const [actual] = (await sut.observe()) as XyoEthereumGasEtherchainV2Payload[]
13
+ expect(actual).toBeObject()
14
+ expect(actual.code).toBeNumber()
15
+ expect(actual.data).toBeObject()
16
+ expect(actual.timestamp).toBeNumber()
17
+ expect(actual.schema).toBe(XyoEthereumGasEtherchainV2Schema)
18
+
19
+ const answerWrapper = new PayloadWrapper(actual)
20
+ expect(answerWrapper.valid).toBe(true)
21
+ })
22
+ test('returns observation [no config]', async () => {
23
+ const sut = await XyoEtherchainEthereumGasWitnessV2.create()
24
+ const [actual] = (await sut.observe()) as XyoEthereumGasEtherchainV2Payload[]
25
+ expect(actual).toBeObject()
26
+ expect(actual.code).toBeNumber()
27
+ expect(actual.data).toBeObject()
28
+ expect(actual.timestamp).toBeNumber()
29
+ expect(actual.schema).toBe(XyoEthereumGasEtherchainV2Schema)
30
+
31
+ const answerWrapper = new PayloadWrapper(actual)
32
+ expect(answerWrapper.valid).toBe(true)
33
+ })
34
+ })
package/src/Witness.ts ADDED
@@ -0,0 +1,25 @@
1
+ import { XyoEthereumGasEtherchainV2Payload, XyoEthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-ethereum-gas-v2-payload-plugin'
2
+ import { XyoModuleParams } from '@xyo-network/module'
3
+ import { XyoPayload } from '@xyo-network/payload'
4
+ import { TimestampWitness } from '@xyo-network/witness'
5
+
6
+ import { XyoEthereumGasEtherchainV2WitnessConfig } from './Config'
7
+ import { getV2GasFromEtherchain } from './lib'
8
+ import { XyoEthereumGasEtherchainV2WitnessConfigSchema } from './Schema'
9
+
10
+ export class XyoEtherchainEthereumGasWitnessV2 extends TimestampWitness<XyoEthereumGasEtherchainV2WitnessConfig> {
11
+ static override configSchema = XyoEthereumGasEtherchainV2WitnessConfigSchema
12
+
13
+ static override async create(params?: XyoModuleParams<XyoEthereumGasEtherchainV2WitnessConfig>): Promise<XyoEtherchainEthereumGasWitnessV2> {
14
+ return (await super.create(params)) as XyoEtherchainEthereumGasWitnessV2
15
+ }
16
+
17
+ override async observe(): Promise<XyoPayload[]> {
18
+ const payload: XyoEthereumGasEtherchainV2Payload = {
19
+ ...(await getV2GasFromEtherchain()),
20
+ schema: XyoEthereumGasEtherchainV2Schema,
21
+ timestamp: Date.now(),
22
+ }
23
+ return super.observe([payload])
24
+ }
25
+ }
package/src/index.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { XyoEthereumGasEtherchainV2Plugin } from './Plugin'
2
+
3
+ export * from './Config'
4
+ export * from './Schema'
5
+ export * from './Witness'
6
+
7
+ export { XyoEthereumGasEtherchainV2Plugin }
8
+
9
+ // eslint-disable-next-line import/no-default-export
10
+ export default XyoEthereumGasEtherchainV2Plugin
@@ -0,0 +1,16 @@
1
+ import { getV2GasFromEtherchain } from './getV2GasFromEtherchain'
2
+
3
+ describe('getV2GasFromEtherchain', () => {
4
+ test('returns prices', async () => {
5
+ const gas = await getV2GasFromEtherchain()
6
+ expect(gas).toBeObject()
7
+ expect(gas.code).toBeNumber()
8
+ expect(gas.data).toBeObject()
9
+ expect(gas.data.fast).toBeNumber()
10
+ expect(gas.data.priceUSD).toBeNumber()
11
+ expect(gas.data.rapid).toBeNumber()
12
+ expect(gas.data.slow).toBeNumber()
13
+ expect(gas.data.standard).toBeNumber()
14
+ expect(gas.data.timestamp).toBeNumber()
15
+ })
16
+ })
@@ -0,0 +1,8 @@
1
+ import { EthereumGasEtherchainV2Response } from '@xyo-network/etherchain-ethereum-gas-v2-payload-plugin'
2
+ import axios from 'axios'
3
+
4
+ const url = 'https://www.etherchain.org/api/gasnow'
5
+
6
+ export const getV2GasFromEtherchain = async (): Promise<EthereumGasEtherchainV2Response> => {
7
+ return (await axios.get<EthereumGasEtherchainV2Response>(url)).data
8
+ }
@@ -0,0 +1 @@
1
+ export * from './getV2GasFromEtherchain'