@xyo-network/gas-price-plugin 2.43.26 → 2.43.28
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/cjs/lib/divineGas.js +1 -2
- package/dist/cjs/lib/divineGas.js.map +1 -1
- package/dist/cjs/lib/identities/index.js +0 -1
- package/dist/cjs/lib/identities/index.js.map +1 -1
- package/dist/cjs/lib/transforms/index.js +0 -1
- package/dist/cjs/lib/transforms/index.js.map +1 -1
- package/dist/cjs/test/index.js +0 -1
- package/dist/cjs/test/index.js.map +1 -1
- package/dist/docs.json +20 -20
- package/dist/esm/lib/divineGas.js +3 -4
- package/dist/esm/lib/divineGas.js.map +1 -1
- package/dist/esm/lib/identities/index.js +0 -1
- package/dist/esm/lib/identities/index.js.map +1 -1
- package/dist/esm/lib/transforms/index.js +0 -1
- package/dist/esm/lib/transforms/index.js.map +1 -1
- package/dist/esm/test/index.js +0 -1
- package/dist/esm/test/index.js.map +1 -1
- package/dist/types/lib/divineGas.d.ts.map +1 -1
- package/dist/types/lib/identities/index.d.ts +0 -1
- package/dist/types/lib/identities/index.d.ts.map +1 -1
- package/dist/types/lib/transforms/index.d.ts +0 -1
- package/dist/types/lib/transforms/index.d.ts.map +1 -1
- package/dist/types/test/index.d.ts +0 -1
- package/dist/types/test/index.d.ts.map +1 -1
- package/package.json +18 -16
- package/src/Diviner.spec.ts +3 -28
- package/src/lib/average.spec.ts +4 -3
- package/src/lib/divineGas.spec.ts +3 -26
- package/src/lib/divineGas.ts +1 -4
- package/src/lib/identities/index.ts +0 -1
- package/src/lib/transforms/index.ts +0 -1
- package/src/test/index.ts +0 -1
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV1Payload.js +0 -9
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV1Payload.js.map +0 -1
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV1.js +0 -23
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV1.js.map +0 -1
- package/dist/cjs/test/sampleEtherchainGasV1.js +0 -15
- package/dist/cjs/test/sampleEtherchainGasV1.js.map +0 -1
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV1Payload.js +0 -5
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV1Payload.js.map +0 -1
- package/dist/esm/lib/transforms/transformGasFromEtherchainV1.js +0 -19
- package/dist/esm/lib/transforms/transformGasFromEtherchainV1.js.map +0 -1
- package/dist/esm/test/sampleEtherchainGasV1.js +0 -12
- package/dist/esm/test/sampleEtherchainGasV1.js.map +0 -1
- package/dist/types/lib/identities/isXyoEthereumGasEtherchainV1Payload.d.ts +0 -6
- package/dist/types/lib/identities/isXyoEthereumGasEtherchainV1Payload.d.ts.map +0 -1
- package/dist/types/lib/transforms/transformGasFromEtherchainV1.d.ts +0 -4
- package/dist/types/lib/transforms/transformGasFromEtherchainV1.d.ts.map +0 -1
- package/dist/types/test/sampleEtherchainGasV1.d.ts +0 -3
- package/dist/types/test/sampleEtherchainGasV1.d.ts.map +0 -1
- package/src/lib/identities/isXyoEthereumGasEtherchainV1Payload.spec.ts +0 -29
- package/src/lib/identities/isXyoEthereumGasEtherchainV1Payload.ts +0 -6
- package/src/lib/transforms/transformGasFromEtherchainV1.spec.ts +0 -34
- package/src/lib/transforms/transformGasFromEtherchainV1.ts +0 -23
- package/src/test/sampleEtherchainGasV1.ts +0 -12
|
@@ -8,12 +8,11 @@ const identities_1 = require("./identities");
|
|
|
8
8
|
const transforms_1 = require("./transforms");
|
|
9
9
|
const divineGas = (payloads) => {
|
|
10
10
|
const blocknative = payloads.filter(identities_1.isXyoEthereumGasBlocknativePayload).map(transforms_1.transformGasFromBlocknative);
|
|
11
|
-
const etherchainV1 = payloads.filter(identities_1.isXyoEthereumGasEtherchainV1Payload).map(transforms_1.transformGasFromEtherchainV1);
|
|
12
11
|
const etherchainV2 = payloads.filter(identities_1.isXyoEthereumGasEtherchainV2Payload).map(transforms_1.transformGasFromEtherchainV2);
|
|
13
12
|
const ethers = payloads.filter(identities_1.isXyoEthereumGasEthersPayload).map(transforms_1.transformGasFromEthers);
|
|
14
13
|
const etherscan = payloads.filter(identities_1.isXyoEthereumGasEtherscanPayload).map(transforms_1.transformGasFromEtherscan);
|
|
15
14
|
const ethgasstation = payloads.filter(identities_1.isXyoEthereumGasEthgasstationPayload).map(transforms_1.transformGasFromEthgasstation);
|
|
16
|
-
const transactionCosts = [...blocknative, ...
|
|
15
|
+
const transactionCosts = [...blocknative, ...etherchainV2, ...ethers, ...etherscan, ...ethgasstation];
|
|
17
16
|
const avg = (0, average_1.average)(transactionCosts);
|
|
18
17
|
const timestamp = Date.now();
|
|
19
18
|
const payload = new payload_builder_1.XyoPayloadBuilder({ schema: gas_price_payload_plugin_1.XyoEthereumGasSchema }).fields(Object.assign(Object.assign({}, avg), { timestamp })).build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"divineGas.js","sourceRoot":"","sources":["../../../src/lib/divineGas.ts"],"names":[],"mappings":";;;AAAA,oFAA4G;AAC5G,kEAAgE;AAGhE,uCAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"divineGas.js","sourceRoot":"","sources":["../../../src/lib/divineGas.ts"],"names":[],"mappings":";;;AAAA,oFAA4G;AAC5G,kEAAgE;AAGhE,uCAAmC;AACnC,6CAMqB;AACrB,6CAMqB;AAEd,MAAM,SAAS,GAAG,CAAC,QAAqB,EAAyB,EAAE;IACxE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,+CAAkC,CAAC,CAAC,GAAG,CAAC,wCAA2B,CAAC,CAAA;IACxG,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,gDAAmC,CAAC,CAAC,GAAG,CAAC,yCAA4B,CAAC,CAAA;IAC3G,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,0CAA6B,CAAC,CAAC,GAAG,CAAC,mCAAsB,CAAC,CAAA;IACzF,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,6CAAgC,CAAC,CAAC,GAAG,CAAC,sCAAyB,CAAC,CAAA;IAClG,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,iDAAoC,CAAC,CAAC,GAAG,CAAC,0CAA6B,CAAC,CAAA;IAC9G,MAAM,gBAAgB,GAAc,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,CAAC,CAAA;IAChH,MAAM,GAAG,GAAG,IAAA,iBAAO,EAAC,gBAAgB,CAAC,CAAA;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,mCAAiB,CAAwB,EAAE,MAAM,EAAE,+CAAoB,EAAE,CAAC,CAAC,MAAM,iCAAM,GAAG,KAAE,SAAS,IAAG,CAAC,KAAK,EAAE,CAAA;IACpI,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAXY,QAAA,SAAS,aAWrB"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./isXyoEthereumGasBlocknativePayload"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./isXyoEthereumGasEtherchainV1Payload"), exports);
|
|
6
5
|
tslib_1.__exportStar(require("./isXyoEthereumGasEtherchainV2Payload"), exports);
|
|
7
6
|
tslib_1.__exportStar(require("./isXyoEthereumGasEtherscanPayload"), exports);
|
|
8
7
|
tslib_1.__exportStar(require("./isXyoEthereumGasEthersPayload"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/identities/index.ts"],"names":[],"mappings":";;;AAAA,+EAAoD;AACpD,gFAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/identities/index.ts"],"names":[],"mappings":";;;AAAA,+EAAoD;AACpD,gFAAqD;AACrD,6EAAkD;AAClD,0EAA+C;AAC/C,iFAAsD"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./transformGasFromBlocknative"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./transformGasFromEtherchainV1"), exports);
|
|
6
5
|
tslib_1.__exportStar(require("./transformGasFromEtherchainV2"), exports);
|
|
7
6
|
tslib_1.__exportStar(require("./transformGasFromEthers"), exports);
|
|
8
7
|
tslib_1.__exportStar(require("./transformGasFromEtherscan"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/transforms/index.ts"],"names":[],"mappings":";;;AAAA,wEAA6C;AAC7C,yEAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/transforms/index.ts"],"names":[],"mappings":";;;AAAA,wEAA6C;AAC7C,yEAA8C;AAC9C,mEAAwC;AACxC,sEAA2C;AAC3C,0EAA+C"}
|
package/dist/cjs/test/index.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./sampleBlocknativeGas"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./sampleEtherchainGasV1"), exports);
|
|
6
5
|
tslib_1.__exportStar(require("./sampleEtherchainGasV2"), exports);
|
|
7
6
|
tslib_1.__exportStar(require("./sampleEtherscanGas"), exports);
|
|
8
7
|
tslib_1.__exportStar(require("./sampleEthersGas"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":";;;AAAA,iEAAsC;AACtC,kEAAuC;AACvC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":";;;AAAA,iEAAsC;AACtC,kEAAuC;AACvC,+DAAoC;AACpC,4DAAiC;AACjC,mEAAwC"}
|
package/dist/docs.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/index.ts",
|
|
18
18
|
"line": 9,
|
|
19
19
|
"character": 0,
|
|
20
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
20
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/index.ts#L9"
|
|
21
21
|
}
|
|
22
22
|
],
|
|
23
23
|
"target": 1
|
|
@@ -1196,7 +1196,7 @@
|
|
|
1196
1196
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
1197
1197
|
"line": 13,
|
|
1198
1198
|
"character": 18,
|
|
1199
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
1199
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L13"
|
|
1200
1200
|
}
|
|
1201
1201
|
],
|
|
1202
1202
|
"type": {
|
|
@@ -1247,7 +1247,7 @@
|
|
|
1247
1247
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
1248
1248
|
"line": 14,
|
|
1249
1249
|
"character": 18,
|
|
1250
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
1250
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L14"
|
|
1251
1251
|
}
|
|
1252
1252
|
],
|
|
1253
1253
|
"type": {
|
|
@@ -3518,7 +3518,7 @@
|
|
|
3518
3518
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
3519
3519
|
"line": 20,
|
|
3520
3520
|
"character": 18,
|
|
3521
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
3521
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L20"
|
|
3522
3522
|
}
|
|
3523
3523
|
],
|
|
3524
3524
|
"signatures": [
|
|
@@ -3749,7 +3749,7 @@
|
|
|
3749
3749
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
3750
3750
|
"line": 25,
|
|
3751
3751
|
"character": 11,
|
|
3752
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
3752
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L25"
|
|
3753
3753
|
}
|
|
3754
3754
|
],
|
|
3755
3755
|
"signatures": [
|
|
@@ -5711,7 +5711,7 @@
|
|
|
5711
5711
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
5712
5712
|
"line": 16,
|
|
5713
5713
|
"character": 24,
|
|
5714
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
5714
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L16"
|
|
5715
5715
|
}
|
|
5716
5716
|
],
|
|
5717
5717
|
"signatures": [
|
|
@@ -6078,7 +6078,7 @@
|
|
|
6078
6078
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
6079
6079
|
"line": 12,
|
|
6080
6080
|
"character": 13,
|
|
6081
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6081
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L12"
|
|
6082
6082
|
}
|
|
6083
6083
|
],
|
|
6084
6084
|
"extendedTypes": [
|
|
@@ -6099,7 +6099,7 @@
|
|
|
6099
6099
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
6100
6100
|
"line": 10,
|
|
6101
6101
|
"character": 12,
|
|
6102
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6102
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L10"
|
|
6103
6103
|
}
|
|
6104
6104
|
],
|
|
6105
6105
|
"type": {
|
|
@@ -6125,7 +6125,7 @@
|
|
|
6125
6125
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
6126
6126
|
"line": 10,
|
|
6127
6127
|
"character": 58,
|
|
6128
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6128
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L10"
|
|
6129
6129
|
}
|
|
6130
6130
|
],
|
|
6131
6131
|
"type": {
|
|
@@ -6148,7 +6148,7 @@
|
|
|
6148
6148
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts",
|
|
6149
6149
|
"line": 10,
|
|
6150
6150
|
"character": 56,
|
|
6151
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6151
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Diviner.ts#L10"
|
|
6152
6152
|
}
|
|
6153
6153
|
]
|
|
6154
6154
|
}
|
|
@@ -6168,13 +6168,13 @@
|
|
|
6168
6168
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts",
|
|
6169
6169
|
"line": 4,
|
|
6170
6170
|
"character": 12,
|
|
6171
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6171
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts#L4"
|
|
6172
6172
|
},
|
|
6173
6173
|
{
|
|
6174
6174
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts",
|
|
6175
6175
|
"line": 5,
|
|
6176
6176
|
"character": 13,
|
|
6177
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6177
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts#L5"
|
|
6178
6178
|
}
|
|
6179
6179
|
],
|
|
6180
6180
|
"type": {
|
|
@@ -6193,13 +6193,13 @@
|
|
|
6193
6193
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts",
|
|
6194
6194
|
"line": 1,
|
|
6195
6195
|
"character": 12,
|
|
6196
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6196
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts#L1"
|
|
6197
6197
|
},
|
|
6198
6198
|
{
|
|
6199
6199
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts",
|
|
6200
6200
|
"line": 2,
|
|
6201
6201
|
"character": 13,
|
|
6202
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6202
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts#L2"
|
|
6203
6203
|
}
|
|
6204
6204
|
],
|
|
6205
6205
|
"type": {
|
|
@@ -6218,13 +6218,13 @@
|
|
|
6218
6218
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts",
|
|
6219
6219
|
"line": 4,
|
|
6220
6220
|
"character": 12,
|
|
6221
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6221
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts#L4"
|
|
6222
6222
|
},
|
|
6223
6223
|
{
|
|
6224
6224
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts",
|
|
6225
6225
|
"line": 5,
|
|
6226
6226
|
"character": 13,
|
|
6227
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6227
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts#L5"
|
|
6228
6228
|
}
|
|
6229
6229
|
],
|
|
6230
6230
|
"type": {
|
|
@@ -6243,13 +6243,13 @@
|
|
|
6243
6243
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts",
|
|
6244
6244
|
"line": 1,
|
|
6245
6245
|
"character": 12,
|
|
6246
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6246
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts#L1"
|
|
6247
6247
|
},
|
|
6248
6248
|
{
|
|
6249
6249
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts",
|
|
6250
6250
|
"line": 2,
|
|
6251
6251
|
"character": 13,
|
|
6252
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6252
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Schema.ts#L2"
|
|
6253
6253
|
}
|
|
6254
6254
|
],
|
|
6255
6255
|
"type": {
|
|
@@ -6268,7 +6268,7 @@
|
|
|
6268
6268
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Plugin.ts",
|
|
6269
6269
|
"line": 8,
|
|
6270
6270
|
"character": 13,
|
|
6271
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6271
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/Plugin.ts#L8"
|
|
6272
6272
|
}
|
|
6273
6273
|
],
|
|
6274
6274
|
"signatures": [
|
|
@@ -6589,7 +6589,7 @@
|
|
|
6589
6589
|
"fileName": "plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/index.ts",
|
|
6590
6590
|
"line": 1,
|
|
6591
6591
|
"character": 0,
|
|
6592
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
6592
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/f438fb7de/packages/plugins/packages/payloadset/packages/blockchain/packages/ethereum/packages/gas/packages/gas/src/index.ts#L1"
|
|
6593
6593
|
}
|
|
6594
6594
|
]
|
|
6595
6595
|
}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { XyoEthereumGasSchema } from '@xyo-network/gas-price-payload-plugin';
|
|
2
2
|
import { XyoPayloadBuilder } from '@xyo-network/payload-builder';
|
|
3
3
|
import { average } from './average';
|
|
4
|
-
import { isXyoEthereumGasBlocknativePayload,
|
|
5
|
-
import { transformGasFromBlocknative,
|
|
4
|
+
import { isXyoEthereumGasBlocknativePayload, isXyoEthereumGasEtherchainV2Payload, isXyoEthereumGasEtherscanPayload, isXyoEthereumGasEthersPayload, isXyoEthereumGasEthgasstationPayload, } from './identities';
|
|
5
|
+
import { transformGasFromBlocknative, transformGasFromEtherchainV2, transformGasFromEthers, transformGasFromEtherscan, transformGasFromEthgasstation, } from './transforms';
|
|
6
6
|
export const divineGas = (payloads) => {
|
|
7
7
|
const blocknative = payloads.filter(isXyoEthereumGasBlocknativePayload).map(transformGasFromBlocknative);
|
|
8
|
-
const etherchainV1 = payloads.filter(isXyoEthereumGasEtherchainV1Payload).map(transformGasFromEtherchainV1);
|
|
9
8
|
const etherchainV2 = payloads.filter(isXyoEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2);
|
|
10
9
|
const ethers = payloads.filter(isXyoEthereumGasEthersPayload).map(transformGasFromEthers);
|
|
11
10
|
const etherscan = payloads.filter(isXyoEthereumGasEtherscanPayload).map(transformGasFromEtherscan);
|
|
12
11
|
const ethgasstation = payloads.filter(isXyoEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation);
|
|
13
|
-
const transactionCosts = [...blocknative, ...
|
|
12
|
+
const transactionCosts = [...blocknative, ...etherchainV2, ...ethers, ...etherscan, ...ethgasstation];
|
|
14
13
|
const avg = average(transactionCosts);
|
|
15
14
|
const timestamp = Date.now();
|
|
16
15
|
const payload = new XyoPayloadBuilder({ schema: XyoEthereumGasSchema }).fields({ ...avg, timestamp }).build();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"divineGas.js","sourceRoot":"","sources":["../../../src/lib/divineGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,
|
|
1
|
+
{"version":3,"file":"divineGas.js","sourceRoot":"","sources":["../../../src/lib/divineGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,gCAAgC,EAChC,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACtB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,cAAc,CAAA;AAErB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAqB,EAAyB,EAAE;IACxE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACxG,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IAC3G,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACzF,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IAClG,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;IAC9G,MAAM,gBAAgB,GAAc,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,CAAC,CAAA;IAChH,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAwB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IACpI,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './isXyoEthereumGasBlocknativePayload';
|
|
2
|
-
export * from './isXyoEthereumGasEtherchainV1Payload';
|
|
3
2
|
export * from './isXyoEthereumGasEtherchainV2Payload';
|
|
4
3
|
export * from './isXyoEthereumGasEtherscanPayload';
|
|
5
4
|
export * from './isXyoEthereumGasEthersPayload';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/identities/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/identities/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,oCAAoC,CAAA;AAClD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA"}
|
package/dist/esm/test/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"divineGas.d.ts","sourceRoot":"","sources":["../../../src/lib/divineGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,qBAAqB,EAAwB,MAAM,uCAAuC,CAAA;AAE5G,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"divineGas.d.ts","sourceRoot":"","sources":["../../../src/lib/divineGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,qBAAqB,EAAwB,MAAM,uCAAuC,CAAA;AAE5G,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAkBxD,eAAO,MAAM,SAAS;;OAA4B,qBAWjD,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './isXyoEthereumGasBlocknativePayload';
|
|
2
|
-
export * from './isXyoEthereumGasEtherchainV1Payload';
|
|
3
2
|
export * from './isXyoEthereumGasEtherchainV2Payload';
|
|
4
3
|
export * from './isXyoEthereumGasEtherscanPayload';
|
|
5
4
|
export * from './isXyoEthereumGasEthersPayload';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/identities/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/identities/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,oCAAoC,CAAA;AAClD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA"}
|
package/package.json
CHANGED
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/exists": "^2.
|
|
14
|
-
"@xyo-network/blocknative-ethereum-gas-payload-plugin": "^2.43.
|
|
15
|
-
"@xyo-network/diviner": "^2.43.
|
|
16
|
-
"@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins": "^2.43.
|
|
17
|
-
"@xyo-network/ethers-ethereum-gas-payload-plugin": "^2.43.
|
|
18
|
-
"@xyo-network/etherscan-ethereum-gas-payload-plugin": "^2.43.
|
|
19
|
-
"@xyo-network/ethgasstation-ethereum-gas-payload-plugin": "^2.43.
|
|
20
|
-
"@xyo-network/gas-price-payload-plugin": "^2.43.
|
|
21
|
-
"@xyo-network/module": "^2.43.
|
|
22
|
-
"@xyo-network/payload-builder": "^2.43.
|
|
23
|
-
"@xyo-network/payload-model": "^2.43.
|
|
24
|
-
"@xyo-network/payloadset-plugin": "^2.43.
|
|
25
|
-
"@xyo-network/promise": "^2.43.
|
|
13
|
+
"@xylabs/exists": "^2.7.1",
|
|
14
|
+
"@xyo-network/blocknative-ethereum-gas-payload-plugin": "^2.43.28",
|
|
15
|
+
"@xyo-network/diviner": "^2.43.28",
|
|
16
|
+
"@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins": "^2.43.28",
|
|
17
|
+
"@xyo-network/ethers-ethereum-gas-payload-plugin": "^2.43.28",
|
|
18
|
+
"@xyo-network/etherscan-ethereum-gas-payload-plugin": "^2.43.28",
|
|
19
|
+
"@xyo-network/ethgasstation-ethereum-gas-payload-plugin": "^2.43.28",
|
|
20
|
+
"@xyo-network/gas-price-payload-plugin": "^2.43.28",
|
|
21
|
+
"@xyo-network/module": "^2.43.28",
|
|
22
|
+
"@xyo-network/payload-builder": "^2.43.28",
|
|
23
|
+
"@xyo-network/payload-model": "^2.43.28",
|
|
24
|
+
"@xyo-network/payloadset-plugin": "^2.43.28",
|
|
25
|
+
"@xyo-network/promise": "^2.43.28",
|
|
26
26
|
"regression": "^2.0.1"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
@@ -35,7 +35,9 @@
|
|
|
35
35
|
"@uniswap/sdk": "^3.0.3",
|
|
36
36
|
"@uniswap/sdk-core": "^3.1.1",
|
|
37
37
|
"@uniswap/v3-sdk": "^3.9.0",
|
|
38
|
-
"@xylabs/ts-scripts-yarn3": "^2.
|
|
38
|
+
"@xylabs/ts-scripts-yarn3": "^2.13.11",
|
|
39
|
+
"@xylabs/tsconfig": "^2.13.11",
|
|
40
|
+
"typescript": "^4.9.5"
|
|
39
41
|
},
|
|
40
42
|
"peerDependencies": {
|
|
41
43
|
"@ethersproject/address": "^5.7.0",
|
|
@@ -70,7 +72,7 @@
|
|
|
70
72
|
"main": "dist/cjs/index.js",
|
|
71
73
|
"module": "dist/esm/index.js",
|
|
72
74
|
"homepage": "https://xyo.network",
|
|
73
|
-
"license": "LGPL-3.0
|
|
75
|
+
"license": "LGPL-3.0",
|
|
74
76
|
"publishConfig": {
|
|
75
77
|
"access": "public"
|
|
76
78
|
},
|
|
@@ -80,5 +82,5 @@
|
|
|
80
82
|
},
|
|
81
83
|
"sideEffects": false,
|
|
82
84
|
"types": "dist/types/index.d.ts",
|
|
83
|
-
"version": "2.43.
|
|
85
|
+
"version": "2.43.28"
|
|
84
86
|
}
|
package/src/Diviner.spec.ts
CHANGED
|
@@ -2,9 +2,7 @@ import { InfuraProvider } from '@ethersproject/providers'
|
|
|
2
2
|
import { XyoEthereumGasBlocknativeWitness, XyoEthereumGasBlocknativeWitnessConfigSchema } from '@xyo-network/blocknative-ethereum-gas-plugin'
|
|
3
3
|
import { DivinerWrapper } from '@xyo-network/diviner-wrapper'
|
|
4
4
|
import {
|
|
5
|
-
XyoEtherchainEthereumGasWitnessV1,
|
|
6
5
|
XyoEtherchainEthereumGasWitnessV2,
|
|
7
|
-
XyoEthereumGasEtherchainV1WitnessConfigSchema,
|
|
8
6
|
XyoEthereumGasEtherchainV2WitnessConfigSchema,
|
|
9
7
|
} from '@xyo-network/etherchain-gas-ethereum-blockchain-plugins'
|
|
10
8
|
import { XyoEthereumGasEthersWitness, XyoEthereumGasEthersWitnessConfigSchema } from '@xyo-network/ethers-ethereum-gas-plugin'
|
|
@@ -14,28 +12,14 @@ import { XyoEthereumGasPayload, XyoEthereumGasSchema } from '@xyo-network/gas-pr
|
|
|
14
12
|
import { XyoPayload } from '@xyo-network/payload-model'
|
|
15
13
|
|
|
16
14
|
import { XyoEthereumGasDiviner } from './Diviner'
|
|
17
|
-
import {
|
|
18
|
-
sampleBlocknativeGas,
|
|
19
|
-
sampleEtherchainGasV1,
|
|
20
|
-
sampleEtherchainGasV2,
|
|
21
|
-
sampleEtherscanGas,
|
|
22
|
-
sampleEthersGas,
|
|
23
|
-
sampleEthgasstationGas,
|
|
24
|
-
} from './test'
|
|
15
|
+
import { sampleBlocknativeGas, sampleEtherchainGasV2, sampleEtherscanGas, sampleEthersGas, sampleEthgasstationGas } from './test'
|
|
25
16
|
|
|
26
17
|
describe('Diviner', () => {
|
|
27
18
|
test('returns divined gas price', async () => {
|
|
28
19
|
const module = await XyoEthereumGasDiviner.create()
|
|
29
20
|
const wrapper = new DivinerWrapper(module)
|
|
30
21
|
|
|
31
|
-
const payloads = await wrapper.divine([
|
|
32
|
-
sampleBlocknativeGas,
|
|
33
|
-
sampleEtherchainGasV1,
|
|
34
|
-
sampleEtherchainGasV2,
|
|
35
|
-
sampleEtherscanGas,
|
|
36
|
-
sampleEthersGas,
|
|
37
|
-
sampleEthgasstationGas,
|
|
38
|
-
])
|
|
22
|
+
const payloads = await wrapper.divine([sampleBlocknativeGas, sampleEtherchainGasV2, sampleEtherscanGas, sampleEthersGas, sampleEthgasstationGas])
|
|
39
23
|
|
|
40
24
|
expect(payloads).toBeArray()
|
|
41
25
|
expect(payloads.length).toBe(1)
|
|
@@ -60,15 +44,6 @@ describe('Diviner', () => {
|
|
|
60
44
|
})
|
|
61
45
|
).observe()
|
|
62
46
|
)?.[0]
|
|
63
|
-
const etherchainGasV1 = (
|
|
64
|
-
await (
|
|
65
|
-
await XyoEtherchainEthereumGasWitnessV1.create({
|
|
66
|
-
config: {
|
|
67
|
-
schema: XyoEthereumGasEtherchainV1WitnessConfigSchema,
|
|
68
|
-
},
|
|
69
|
-
})
|
|
70
|
-
).observe()
|
|
71
|
-
)?.[0]
|
|
72
47
|
const etherchainGasV2 = (
|
|
73
48
|
await (
|
|
74
49
|
await XyoEtherchainEthereumGasWitnessV2.create({
|
|
@@ -110,7 +85,7 @@ describe('Diviner', () => {
|
|
|
110
85
|
})
|
|
111
86
|
).observe()
|
|
112
87
|
)?.[0]
|
|
113
|
-
const observations: XyoPayload[] = [blocknativeGas,
|
|
88
|
+
const observations: XyoPayload[] = [blocknativeGas, etherchainGasV2, etherscanGas, ethersGas, ethgasstationGas]
|
|
114
89
|
|
|
115
90
|
const module = await XyoEthereumGasDiviner.create()
|
|
116
91
|
const wrapper = new DivinerWrapper(module)
|
package/src/lib/average.spec.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { FeeData } from '@xyo-network/gas-price-payload-plugin'
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { sampleBlocknativeGas, sampleEtherchainGasV2, sampleEtherscanGas, sampleEthgasstationGas } from '../test'
|
|
4
4
|
import { average } from './average'
|
|
5
|
-
import {
|
|
5
|
+
import { transformGasFromBlocknative, transformGasFromEtherchainV2, transformGasFromEtherscan, transformGasFromEthgasstation } from './transforms'
|
|
6
6
|
|
|
7
7
|
const results: FeeData[] = [
|
|
8
|
-
|
|
8
|
+
transformGasFromBlocknative(sampleBlocknativeGas),
|
|
9
9
|
transformGasFromEtherchainV2(sampleEtherchainGasV2),
|
|
10
10
|
transformGasFromEtherscan(sampleEtherscanGas),
|
|
11
|
+
transformGasFromEthgasstation(sampleEthgasstationGas),
|
|
11
12
|
]
|
|
12
13
|
|
|
13
14
|
describe('average', () => {
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
sampleBlocknativeGas,
|
|
3
|
-
sampleEtherchainGasV1,
|
|
4
|
-
sampleEtherchainGasV2,
|
|
5
|
-
sampleEtherscanGas,
|
|
6
|
-
sampleEthersGas,
|
|
7
|
-
sampleEthgasstationGas,
|
|
8
|
-
} from '../test'
|
|
1
|
+
import { sampleBlocknativeGas, sampleEtherchainGasV2, sampleEtherscanGas, sampleEthersGas, sampleEthgasstationGas } from '../test'
|
|
9
2
|
import { divineGas } from './divineGas'
|
|
10
3
|
|
|
11
4
|
describe('divineGas', () => {
|
|
@@ -17,14 +10,7 @@ describe('divineGas', () => {
|
|
|
17
10
|
})
|
|
18
11
|
})
|
|
19
12
|
describe('with sparse payloads supplied', () => {
|
|
20
|
-
it.each([
|
|
21
|
-
[sampleEtherchainGasV1],
|
|
22
|
-
[sampleEtherchainGasV2],
|
|
23
|
-
[sampleEtherscanGas],
|
|
24
|
-
[sampleEtherchainGasV1, sampleEtherchainGasV2],
|
|
25
|
-
[sampleEtherchainGasV2, sampleEtherscanGas],
|
|
26
|
-
[sampleEtherchainGasV1, sampleEtherscanGas],
|
|
27
|
-
])('divines gas', (...payloads) => {
|
|
13
|
+
it.each([[sampleEtherscanGas], [sampleEtherchainGasV2], [sampleEtherchainGasV2, sampleEtherscanGas]])('divines gas', (...payloads) => {
|
|
28
14
|
const result = divineGas(payloads)
|
|
29
15
|
expect(result).toBeObject()
|
|
30
16
|
expect(result.timestamp).toBeNumber()
|
|
@@ -32,14 +18,7 @@ describe('divineGas', () => {
|
|
|
32
18
|
})
|
|
33
19
|
describe('with one of each supported payload supplied', () => {
|
|
34
20
|
it('divines gas', () => {
|
|
35
|
-
const result = divineGas([
|
|
36
|
-
sampleBlocknativeGas,
|
|
37
|
-
sampleEtherchainGasV1,
|
|
38
|
-
sampleEtherchainGasV2,
|
|
39
|
-
sampleEtherscanGas,
|
|
40
|
-
sampleEthersGas,
|
|
41
|
-
sampleEthgasstationGas,
|
|
42
|
-
])
|
|
21
|
+
const result = divineGas([sampleBlocknativeGas, sampleEtherchainGasV2, sampleEtherscanGas, sampleEthersGas, sampleEthgasstationGas])
|
|
43
22
|
expect(result).toBeObject()
|
|
44
23
|
expect(result.baseFee).toBeNumber()
|
|
45
24
|
expect(result.feePerGas).toBeObject()
|
|
@@ -60,8 +39,6 @@ describe('divineGas', () => {
|
|
|
60
39
|
const result = divineGas([
|
|
61
40
|
sampleBlocknativeGas,
|
|
62
41
|
sampleBlocknativeGas,
|
|
63
|
-
sampleEtherchainGasV1,
|
|
64
|
-
sampleEtherchainGasV1,
|
|
65
42
|
sampleEtherchainGasV2,
|
|
66
43
|
sampleEtherchainGasV2,
|
|
67
44
|
sampleEtherscanGas,
|
package/src/lib/divineGas.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { XyoPayloads } from '@xyo-network/payload-model'
|
|
|
5
5
|
import { average } from './average'
|
|
6
6
|
import {
|
|
7
7
|
isXyoEthereumGasBlocknativePayload,
|
|
8
|
-
isXyoEthereumGasEtherchainV1Payload,
|
|
9
8
|
isXyoEthereumGasEtherchainV2Payload,
|
|
10
9
|
isXyoEthereumGasEtherscanPayload,
|
|
11
10
|
isXyoEthereumGasEthersPayload,
|
|
@@ -13,7 +12,6 @@ import {
|
|
|
13
12
|
} from './identities'
|
|
14
13
|
import {
|
|
15
14
|
transformGasFromBlocknative,
|
|
16
|
-
transformGasFromEtherchainV1,
|
|
17
15
|
transformGasFromEtherchainV2,
|
|
18
16
|
transformGasFromEthers,
|
|
19
17
|
transformGasFromEtherscan,
|
|
@@ -22,12 +20,11 @@ import {
|
|
|
22
20
|
|
|
23
21
|
export const divineGas = (payloads: XyoPayloads): XyoEthereumGasPayload => {
|
|
24
22
|
const blocknative = payloads.filter(isXyoEthereumGasBlocknativePayload).map(transformGasFromBlocknative)
|
|
25
|
-
const etherchainV1 = payloads.filter(isXyoEthereumGasEtherchainV1Payload).map(transformGasFromEtherchainV1)
|
|
26
23
|
const etherchainV2 = payloads.filter(isXyoEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2)
|
|
27
24
|
const ethers = payloads.filter(isXyoEthereumGasEthersPayload).map(transformGasFromEthers)
|
|
28
25
|
const etherscan = payloads.filter(isXyoEthereumGasEtherscanPayload).map(transformGasFromEtherscan)
|
|
29
26
|
const ethgasstation = payloads.filter(isXyoEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation)
|
|
30
|
-
const transactionCosts: FeeData[] = [...blocknative, ...
|
|
27
|
+
const transactionCosts: FeeData[] = [...blocknative, ...etherchainV2, ...ethers, ...etherscan, ...ethgasstation]
|
|
31
28
|
const avg = average(transactionCosts)
|
|
32
29
|
const timestamp = Date.now()
|
|
33
30
|
const payload = new XyoPayloadBuilder<XyoEthereumGasPayload>({ schema: XyoEthereumGasSchema }).fields({ ...avg, timestamp }).build()
|
package/src/test/index.ts
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isXyoEthereumGasEtherchainV1Payload = void 0;
|
|
4
|
-
const etherchain_gas_ethereum_blockchain_payload_plugins_1 = require("@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins");
|
|
5
|
-
const isXyoEthereumGasEtherchainV1Payload = (payload) => {
|
|
6
|
-
return (payload === null || payload === void 0 ? void 0 : payload.schema) === etherchain_gas_ethereum_blockchain_payload_plugins_1.XyoEthereumGasEtherchainV1Schema;
|
|
7
|
-
};
|
|
8
|
-
exports.isXyoEthereumGasEtherchainV1Payload = isXyoEthereumGasEtherchainV1Payload;
|
|
9
|
-
//# sourceMappingURL=isXyoEthereumGasEtherchainV1Payload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isXyoEthereumGasEtherchainV1Payload.js","sourceRoot":"","sources":["../../../../src/lib/identities/isXyoEthereumGasEtherchainV1Payload.ts"],"names":[],"mappings":";;;AAAA,wIAAqJ;AAG9I,MAAM,mCAAmC,GAAG,CAAC,OAA2B,EAAgD,EAAE;IAC/H,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,MAAK,qFAAgC,CAAA;AAC7D,CAAC,CAAA;AAFY,QAAA,mCAAmC,uCAE/C"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformGasFromEtherchainV1 = void 0;
|
|
4
|
-
const getBaseFee = (payload) => {
|
|
5
|
-
const { currentBaseFee } = payload;
|
|
6
|
-
return currentBaseFee;
|
|
7
|
-
};
|
|
8
|
-
const getPriorityFeePerGas = (payload) => {
|
|
9
|
-
const { fast, fastest, safeLow, standard } = payload;
|
|
10
|
-
const low = safeLow;
|
|
11
|
-
const medium = standard;
|
|
12
|
-
const high = fast;
|
|
13
|
-
const veryHigh = fastest;
|
|
14
|
-
return { high, low, medium, veryHigh };
|
|
15
|
-
};
|
|
16
|
-
const transformGasFromEtherchainV1 = (payload) => {
|
|
17
|
-
const baseFee = getBaseFee(payload);
|
|
18
|
-
const feePerGas = {};
|
|
19
|
-
const priorityFeePerGas = getPriorityFeePerGas(payload);
|
|
20
|
-
return { baseFee, feePerGas, priorityFeePerGas };
|
|
21
|
-
};
|
|
22
|
-
exports.transformGasFromEtherchainV1 = transformGasFromEtherchainV1;
|
|
23
|
-
//# sourceMappingURL=transformGasFromEtherchainV1.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformGasFromEtherchainV1.js","sourceRoot":"","sources":["../../../../src/lib/transforms/transformGasFromEtherchainV1.ts"],"names":[],"mappings":";;;AAGA,MAAM,UAAU,GAAG,CAAC,OAA0C,EAAsB,EAAE;IACpF,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;IAClC,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,OAA0C,EAA8B,EAAE;IACtG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IACpD,MAAM,GAAG,GAAG,OAAO,CAAA;IACnB,MAAM,MAAM,GAAG,QAAQ,CAAA;IACvB,MAAM,IAAI,GAAG,IAAI,CAAA;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAA;IACxB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AACxC,CAAC,CAAA;AAEM,MAAM,4BAA4B,GAAG,CAAC,OAA0C,EAAW,EAAE;IAClG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAA;AAClD,CAAC,CAAA;AALY,QAAA,4BAA4B,gCAKxC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sampleEtherchainGasV1 = void 0;
|
|
4
|
-
const etherchain_gas_ethereum_blockchain_payload_plugins_1 = require("@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins");
|
|
5
|
-
exports.sampleEtherchainGasV1 = {
|
|
6
|
-
currentBaseFee: 19.5,
|
|
7
|
-
fast: 0.3,
|
|
8
|
-
fastest: 1.5,
|
|
9
|
-
recommendedBaseFee: 39.6,
|
|
10
|
-
safeLow: 0.1,
|
|
11
|
-
schema: etherchain_gas_ethereum_blockchain_payload_plugins_1.XyoEthereumGasEtherchainV1Schema,
|
|
12
|
-
standard: 0.2,
|
|
13
|
-
timestamp: 1668621360784,
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=sampleEtherchainGasV1.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sampleEtherchainGasV1.js","sourceRoot":"","sources":["../../../src/test/sampleEtherchainGasV1.ts"],"names":[],"mappings":";;;AAAA,wIAAqJ;AAExI,QAAA,qBAAqB,GAAsC;IACtE,cAAc,EAAE,IAAI;IACpB,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,qFAAgC;IACxC,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,aAAa;CACzB,CAAA"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { XyoEthereumGasEtherchainV1Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins';
|
|
2
|
-
export const isXyoEthereumGasEtherchainV1Payload = (payload) => {
|
|
3
|
-
return payload?.schema === XyoEthereumGasEtherchainV1Schema;
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=isXyoEthereumGasEtherchainV1Payload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isXyoEthereumGasEtherchainV1Payload.js","sourceRoot":"","sources":["../../../../src/lib/identities/isXyoEthereumGasEtherchainV1Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,gCAAgC,EAAE,MAAM,iEAAiE,CAAA;AAGrJ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,OAA2B,EAAgD,EAAE;IAC/H,OAAO,OAAO,EAAE,MAAM,KAAK,gCAAgC,CAAA;AAC7D,CAAC,CAAA"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const getBaseFee = (payload) => {
|
|
2
|
-
const { currentBaseFee } = payload;
|
|
3
|
-
return currentBaseFee;
|
|
4
|
-
};
|
|
5
|
-
const getPriorityFeePerGas = (payload) => {
|
|
6
|
-
const { fast, fastest, safeLow, standard } = payload;
|
|
7
|
-
const low = safeLow;
|
|
8
|
-
const medium = standard;
|
|
9
|
-
const high = fast;
|
|
10
|
-
const veryHigh = fastest;
|
|
11
|
-
return { high, low, medium, veryHigh };
|
|
12
|
-
};
|
|
13
|
-
export const transformGasFromEtherchainV1 = (payload) => {
|
|
14
|
-
const baseFee = getBaseFee(payload);
|
|
15
|
-
const feePerGas = {};
|
|
16
|
-
const priorityFeePerGas = getPriorityFeePerGas(payload);
|
|
17
|
-
return { baseFee, feePerGas, priorityFeePerGas };
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=transformGasFromEtherchainV1.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformGasFromEtherchainV1.js","sourceRoot":"","sources":["../../../../src/lib/transforms/transformGasFromEtherchainV1.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,GAAG,CAAC,OAA0C,EAAsB,EAAE;IACpF,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;IAClC,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,OAA0C,EAA8B,EAAE;IACtG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IACpD,MAAM,GAAG,GAAG,OAAO,CAAA;IACnB,MAAM,MAAM,GAAG,QAAQ,CAAA;IACvB,MAAM,IAAI,GAAG,IAAI,CAAA;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAA;IACxB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,OAA0C,EAAW,EAAE;IAClG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAA;AAClD,CAAC,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { XyoEthereumGasEtherchainV1Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins';
|
|
2
|
-
export const sampleEtherchainGasV1 = {
|
|
3
|
-
currentBaseFee: 19.5,
|
|
4
|
-
fast: 0.3,
|
|
5
|
-
fastest: 1.5,
|
|
6
|
-
recommendedBaseFee: 39.6,
|
|
7
|
-
safeLow: 0.1,
|
|
8
|
-
schema: XyoEthereumGasEtherchainV1Schema,
|
|
9
|
-
standard: 0.2,
|
|
10
|
-
timestamp: 1668621360784,
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=sampleEtherchainGasV1.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sampleEtherchainGasV1.js","sourceRoot":"","sources":["../../../src/test/sampleEtherchainGasV1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,gCAAgC,EAAE,MAAM,iEAAiE,CAAA;AAErJ,MAAM,CAAC,MAAM,qBAAqB,GAAsC;IACtE,cAAc,EAAE,IAAI;IACpB,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,gCAAgC;IACxC,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,aAAa;CACzB,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { XyoPayload } from '@xyo-network/payload-model';
|
|
2
|
-
export declare const isXyoEthereumGasEtherchainV1Payload: (payload?: XyoPayload | null) => payload is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins").EthereumGasEtherchainV1Response & {
|
|
3
|
-
schema: "network.xyo.blockchain.ethereum.gas.etherchain.v1";
|
|
4
|
-
timestamp: number;
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=isXyoEthereumGasEtherchainV1Payload.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isXyoEthereumGasEtherchainV1Payload.d.ts","sourceRoot":"","sources":["../../../../src/lib/identities/isXyoEthereumGasEtherchainV1Payload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,eAAO,MAAM,mCAAmC,aAAc,UAAU,GAAG,IAAI;;;CAE9E,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { XyoEthereumGasEtherchainV1Payload } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins';
|
|
2
|
-
import { FeeData } from '@xyo-network/gas-price-payload-plugin';
|
|
3
|
-
export declare const transformGasFromEtherchainV1: (payload: XyoEthereumGasEtherchainV1Payload) => FeeData;
|
|
4
|
-
//# sourceMappingURL=transformGasFromEtherchainV1.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformGasFromEtherchainV1.d.ts","sourceRoot":"","sources":["../../../../src/lib/transforms/transformGasFromEtherchainV1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,iEAAiE,CAAA;AACnH,OAAO,EAAE,OAAO,EAAqB,MAAM,uCAAuC,CAAA;AAgBlF,eAAO,MAAM,4BAA4B,YAAa,iCAAiC,KAAG,OAKzF,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sampleEtherchainGasV1.d.ts","sourceRoot":"","sources":["../../../src/test/sampleEtherchainGasV1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAoC,MAAM,iEAAiE,CAAA;AAErJ,eAAO,MAAM,qBAAqB,EAAE,iCASnC,CAAA"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { sampleEtherchainGasV1 } from '../../test'
|
|
2
|
-
import { isXyoEthereumGasEtherchainV1Payload } from './isXyoEthereumGasEtherchainV1Payload'
|
|
3
|
-
|
|
4
|
-
describe('isXyoEthereumGasEtherchainV1Payload', () => {
|
|
5
|
-
describe('returns true', () => {
|
|
6
|
-
it('when payload schema is XyoEthereumGasEtherchainV1Schema', () => {
|
|
7
|
-
const result = isXyoEthereumGasEtherchainV1Payload(sampleEtherchainGasV1)
|
|
8
|
-
expect(result).toBeTrue()
|
|
9
|
-
})
|
|
10
|
-
})
|
|
11
|
-
describe('returns false', () => {
|
|
12
|
-
it('when payload schema is not XyoEthereumGasEtherscanSchema', () => {
|
|
13
|
-
const result = isXyoEthereumGasEtherchainV1Payload({ schema: 'network.xyo.debug' })
|
|
14
|
-
expect(result).toBeFalse()
|
|
15
|
-
})
|
|
16
|
-
it('when payload is missing', () => {
|
|
17
|
-
const result = isXyoEthereumGasEtherchainV1Payload()
|
|
18
|
-
expect(result).toBeFalse()
|
|
19
|
-
})
|
|
20
|
-
it('when payload is undefined', () => {
|
|
21
|
-
const result = isXyoEthereumGasEtherchainV1Payload(undefined)
|
|
22
|
-
expect(result).toBeFalse()
|
|
23
|
-
})
|
|
24
|
-
it('when payload is null', () => {
|
|
25
|
-
const result = isXyoEthereumGasEtherchainV1Payload(null)
|
|
26
|
-
expect(result).toBeFalse()
|
|
27
|
-
})
|
|
28
|
-
})
|
|
29
|
-
})
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { XyoEthereumGasEtherchainV1Payload, XyoEthereumGasEtherchainV1Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'
|
|
2
|
-
import { XyoPayload } from '@xyo-network/payload-model'
|
|
3
|
-
|
|
4
|
-
export const isXyoEthereumGasEtherchainV1Payload = (payload?: XyoPayload | null): payload is XyoEthereumGasEtherchainV1Payload => {
|
|
5
|
-
return payload?.schema === XyoEthereumGasEtherchainV1Schema
|
|
6
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/* eslint-disable sort-keys-fix/sort-keys-fix */
|
|
2
|
-
import { sampleEtherchainGasV1 } from '../../test'
|
|
3
|
-
import { transformGasFromEtherchainV1 } from './transformGasFromEtherchainV1'
|
|
4
|
-
|
|
5
|
-
describe('transformGasFromEtherchainV1', () => {
|
|
6
|
-
it('returns values in the expected format', () => {
|
|
7
|
-
const result = transformGasFromEtherchainV1(sampleEtherchainGasV1)
|
|
8
|
-
expect(result).toBeObject()
|
|
9
|
-
expect(result.baseFee).toBeNumber()
|
|
10
|
-
expect(result.feePerGas).toBeObject()
|
|
11
|
-
expect(result.feePerGas.low).toBeUndefined()
|
|
12
|
-
expect(result.feePerGas.medium).toBeUndefined()
|
|
13
|
-
expect(result.feePerGas.high).toBeUndefined()
|
|
14
|
-
expect(result.feePerGas.veryHigh).toBeUndefined()
|
|
15
|
-
expect(result.priorityFeePerGas).toBeObject()
|
|
16
|
-
expect(result.priorityFeePerGas.low).toBeNumber()
|
|
17
|
-
expect(result.priorityFeePerGas.medium).toBeNumber()
|
|
18
|
-
expect(result.priorityFeePerGas.high).toBeNumber()
|
|
19
|
-
expect(result.priorityFeePerGas.veryHigh).toBeNumber()
|
|
20
|
-
})
|
|
21
|
-
it('matches expected output', () => {
|
|
22
|
-
const result = transformGasFromEtherchainV1(sampleEtherchainGasV1)
|
|
23
|
-
expect(result).toMatchObject({
|
|
24
|
-
baseFee: 19.5,
|
|
25
|
-
feePerGas: {},
|
|
26
|
-
priorityFeePerGas: {
|
|
27
|
-
low: 0.1,
|
|
28
|
-
medium: 0.2,
|
|
29
|
-
high: 0.3,
|
|
30
|
-
veryHigh: 1.5,
|
|
31
|
-
},
|
|
32
|
-
})
|
|
33
|
-
})
|
|
34
|
-
})
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { XyoEthereumGasEtherchainV1Payload } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'
|
|
2
|
-
import { FeeData, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'
|
|
3
|
-
|
|
4
|
-
const getBaseFee = (payload: XyoEthereumGasEtherchainV1Payload): number | undefined => {
|
|
5
|
-
const { currentBaseFee } = payload
|
|
6
|
-
return currentBaseFee
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const getPriorityFeePerGas = (payload: XyoEthereumGasEtherchainV1Payload): Partial<PriorityFeePerGas> => {
|
|
10
|
-
const { fast, fastest, safeLow, standard } = payload
|
|
11
|
-
const low = safeLow
|
|
12
|
-
const medium = standard
|
|
13
|
-
const high = fast
|
|
14
|
-
const veryHigh = fastest
|
|
15
|
-
return { high, low, medium, veryHigh }
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export const transformGasFromEtherchainV1 = (payload: XyoEthereumGasEtherchainV1Payload): FeeData => {
|
|
19
|
-
const baseFee = getBaseFee(payload)
|
|
20
|
-
const feePerGas = {}
|
|
21
|
-
const priorityFeePerGas = getPriorityFeePerGas(payload)
|
|
22
|
-
return { baseFee, feePerGas, priorityFeePerGas }
|
|
23
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { XyoEthereumGasEtherchainV1Payload, XyoEthereumGasEtherchainV1Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'
|
|
2
|
-
|
|
3
|
-
export const sampleEtherchainGasV1: XyoEthereumGasEtherchainV1Payload = {
|
|
4
|
-
currentBaseFee: 19.5,
|
|
5
|
-
fast: 0.3,
|
|
6
|
-
fastest: 1.5,
|
|
7
|
-
recommendedBaseFee: 39.6,
|
|
8
|
-
safeLow: 0.1,
|
|
9
|
-
schema: XyoEthereumGasEtherchainV1Schema,
|
|
10
|
-
standard: 0.2,
|
|
11
|
-
timestamp: 1668621360784,
|
|
12
|
-
}
|