@xyo-network/gas-price-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.
- package/LICENSE +165 -0
- package/README.md +81 -0
- package/dist/cjs/Diviner.d.ts +16 -0
- package/dist/cjs/Diviner.d.ts.map +1 -0
- package/dist/cjs/Diviner.js +29 -0
- package/dist/cjs/Diviner.js.map +1 -0
- package/dist/cjs/Plugin.d.ts +13 -0
- package/dist/cjs/Plugin.d.ts.map +1 -0
- package/dist/cjs/Plugin.js +15 -0
- package/dist/cjs/Plugin.js.map +1 -0
- package/dist/cjs/Schema.d.ts +5 -0
- package/dist/cjs/Schema.d.ts.map +1 -0
- package/dist/cjs/Schema.js +6 -0
- package/dist/cjs/Schema.js.map +1 -0
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +11 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/average.d.ts +8 -0
- package/dist/cjs/lib/average.d.ts.map +1 -0
- package/dist/cjs/lib/average.js +48 -0
- package/dist/cjs/lib/average.js.map +1 -0
- package/dist/cjs/lib/divineGas.d.ts +6 -0
- package/dist/cjs/lib/divineGas.d.ts.map +1 -0
- package/dist/cjs/lib/divineGas.js +23 -0
- package/dist/cjs/lib/divineGas.js.map +1 -0
- package/dist/cjs/lib/identities/index.d.ts +7 -0
- package/dist/cjs/lib/identities/index.d.ts.map +1 -0
- package/dist/cjs/lib/identities/index.js +10 -0
- package/dist/cjs/lib/identities/index.js.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasBlocknativePayload.d.ts +6 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasBlocknativePayload.d.ts.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasBlocknativePayload.js +9 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasBlocknativePayload.js.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV1Payload.d.ts +6 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV1Payload.d.ts.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV1Payload.js +9 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV1Payload.js.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV2Payload.d.ts +6 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV2Payload.d.ts.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV2Payload.js +9 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherchainV2Payload.js.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEthersPayload.d.ts +6 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEthersPayload.d.ts.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEthersPayload.js +9 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEthersPayload.js.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherscanPayload.d.ts +6 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherscanPayload.d.ts.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherscanPayload.js +9 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEtherscanPayload.js.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEthgasstationPayload.d.ts +6 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEthgasstationPayload.d.ts.map +1 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEthgasstationPayload.js +9 -0
- package/dist/cjs/lib/identities/isXyoEthereumGasEthgasstationPayload.js.map +1 -0
- package/dist/cjs/lib/index.d.ts +2 -0
- package/dist/cjs/lib/index.d.ts.map +1 -0
- package/dist/cjs/lib/index.js +5 -0
- package/dist/cjs/lib/index.js.map +1 -0
- package/dist/cjs/lib/transforms/index.d.ts +7 -0
- package/dist/cjs/lib/transforms/index.d.ts.map +1 -0
- package/dist/cjs/lib/transforms/index.js +10 -0
- package/dist/cjs/lib/transforms/index.js.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromBlocknative.d.ts +4 -0
- package/dist/cjs/lib/transforms/transformGasFromBlocknative.d.ts.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromBlocknative.js +52 -0
- package/dist/cjs/lib/transforms/transformGasFromBlocknative.js.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV1.d.ts +4 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV1.d.ts.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV1.js +23 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV1.js.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV2.d.ts +4 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV2.d.ts.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV2.js +19 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherchainV2.js.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEthers.d.ts +4 -0
- package/dist/cjs/lib/transforms/transformGasFromEthers.d.ts.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEthers.js +25 -0
- package/dist/cjs/lib/transforms/transformGasFromEthers.js.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherscan.d.ts +4 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherscan.d.ts.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherscan.js +28 -0
- package/dist/cjs/lib/transforms/transformGasFromEtherscan.js.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEthgasstation.d.ts +4 -0
- package/dist/cjs/lib/transforms/transformGasFromEthgasstation.d.ts.map +1 -0
- package/dist/cjs/lib/transforms/transformGasFromEthgasstation.js +36 -0
- package/dist/cjs/lib/transforms/transformGasFromEthgasstation.js.map +1 -0
- package/dist/cjs/test/index.d.ts +7 -0
- package/dist/cjs/test/index.d.ts.map +1 -0
- package/dist/cjs/test/index.js +10 -0
- package/dist/cjs/test/index.js.map +1 -0
- package/dist/cjs/test/sampleBlocknativeGas.d.ts +3 -0
- package/dist/cjs/test/sampleBlocknativeGas.d.ts.map +1 -0
- package/dist/cjs/test/sampleBlocknativeGas.js +96 -0
- package/dist/cjs/test/sampleBlocknativeGas.js.map +1 -0
- package/dist/cjs/test/sampleEtherchainGasV1.d.ts +3 -0
- package/dist/cjs/test/sampleEtherchainGasV1.d.ts.map +1 -0
- package/dist/cjs/test/sampleEtherchainGasV1.js +15 -0
- package/dist/cjs/test/sampleEtherchainGasV1.js.map +1 -0
- package/dist/cjs/test/sampleEtherchainGasV2.d.ts +3 -0
- package/dist/cjs/test/sampleEtherchainGasV2.d.ts.map +1 -0
- package/dist/cjs/test/sampleEtherchainGasV2.js +18 -0
- package/dist/cjs/test/sampleEtherchainGasV2.js.map +1 -0
- package/dist/cjs/test/sampleEthersGas.d.ts +3 -0
- package/dist/cjs/test/sampleEthersGas.d.ts.map +1 -0
- package/dist/cjs/test/sampleEthersGas.js +13 -0
- package/dist/cjs/test/sampleEthersGas.js.map +1 -0
- package/dist/cjs/test/sampleEtherscanGas.d.ts +3 -0
- package/dist/cjs/test/sampleEtherscanGas.d.ts.map +1 -0
- package/dist/cjs/test/sampleEtherscanGas.js +19 -0
- package/dist/cjs/test/sampleEtherscanGas.js.map +1 -0
- package/dist/cjs/test/sampleEthgasstationGas.d.ts +3 -0
- package/dist/cjs/test/sampleEthgasstationGas.d.ts.map +1 -0
- package/dist/cjs/test/sampleEthgasstationGas.js +23 -0
- package/dist/cjs/test/sampleEthgasstationGas.js.map +1 -0
- package/dist/docs.json +4534 -0
- package/dist/esm/Diviner.d.ts +16 -0
- package/dist/esm/Diviner.d.ts.map +1 -0
- package/dist/esm/Diviner.js +19 -0
- package/dist/esm/Diviner.js.map +1 -0
- package/dist/esm/Plugin.d.ts +13 -0
- package/dist/esm/Plugin.d.ts.map +1 -0
- package/dist/esm/Plugin.js +10 -0
- package/dist/esm/Plugin.js.map +1 -0
- package/dist/esm/Schema.d.ts +5 -0
- package/dist/esm/Schema.d.ts.map +1 -0
- package/dist/esm/Schema.js +3 -0
- package/dist/esm/Schema.js.map +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/average.d.ts +8 -0
- package/dist/esm/lib/average.d.ts.map +1 -0
- package/dist/esm/lib/average.js +44 -0
- package/dist/esm/lib/average.js.map +1 -0
- package/dist/esm/lib/divineGas.d.ts +6 -0
- package/dist/esm/lib/divineGas.d.ts.map +1 -0
- package/dist/esm/lib/divineGas.js +19 -0
- package/dist/esm/lib/divineGas.js.map +1 -0
- package/dist/esm/lib/identities/index.d.ts +7 -0
- package/dist/esm/lib/identities/index.d.ts.map +1 -0
- package/dist/esm/lib/identities/index.js +7 -0
- package/dist/esm/lib/identities/index.js.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasBlocknativePayload.d.ts +6 -0
- package/dist/esm/lib/identities/isXyoEthereumGasBlocknativePayload.d.ts.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasBlocknativePayload.js +5 -0
- package/dist/esm/lib/identities/isXyoEthereumGasBlocknativePayload.js.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV1Payload.d.ts +6 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV1Payload.d.ts.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV1Payload.js +5 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV1Payload.js.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV2Payload.d.ts +6 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV2Payload.d.ts.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV2Payload.js +5 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherchainV2Payload.js.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEthersPayload.d.ts +6 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEthersPayload.d.ts.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEthersPayload.js +5 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEthersPayload.js.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherscanPayload.d.ts +6 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherscanPayload.d.ts.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherscanPayload.js +5 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEtherscanPayload.js.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEthgasstationPayload.d.ts +6 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEthgasstationPayload.d.ts.map +1 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEthgasstationPayload.js +5 -0
- package/dist/esm/lib/identities/isXyoEthereumGasEthgasstationPayload.js.map +1 -0
- package/dist/esm/lib/index.d.ts +2 -0
- package/dist/esm/lib/index.d.ts.map +1 -0
- package/dist/esm/lib/index.js +2 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/transforms/index.d.ts +7 -0
- package/dist/esm/lib/transforms/index.d.ts.map +1 -0
- package/dist/esm/lib/transforms/index.js +7 -0
- package/dist/esm/lib/transforms/index.js.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromBlocknative.d.ts +4 -0
- package/dist/esm/lib/transforms/transformGasFromBlocknative.d.ts.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromBlocknative.js +45 -0
- package/dist/esm/lib/transforms/transformGasFromBlocknative.js.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEtherchainV1.d.ts +4 -0
- package/dist/esm/lib/transforms/transformGasFromEtherchainV1.d.ts.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEtherchainV1.js +19 -0
- package/dist/esm/lib/transforms/transformGasFromEtherchainV1.js.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEtherchainV2.d.ts +4 -0
- package/dist/esm/lib/transforms/transformGasFromEtherchainV2.d.ts.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEtherchainV2.js +15 -0
- package/dist/esm/lib/transforms/transformGasFromEtherchainV2.js.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEthers.d.ts +4 -0
- package/dist/esm/lib/transforms/transformGasFromEthers.d.ts.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEthers.js +21 -0
- package/dist/esm/lib/transforms/transformGasFromEthers.js.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEtherscan.d.ts +4 -0
- package/dist/esm/lib/transforms/transformGasFromEtherscan.d.ts.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEtherscan.js +24 -0
- package/dist/esm/lib/transforms/transformGasFromEtherscan.js.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEthgasstation.d.ts +4 -0
- package/dist/esm/lib/transforms/transformGasFromEthgasstation.d.ts.map +1 -0
- package/dist/esm/lib/transforms/transformGasFromEthgasstation.js +32 -0
- package/dist/esm/lib/transforms/transformGasFromEthgasstation.js.map +1 -0
- package/dist/esm/test/index.d.ts +7 -0
- package/dist/esm/test/index.d.ts.map +1 -0
- package/dist/esm/test/index.js +7 -0
- package/dist/esm/test/index.js.map +1 -0
- package/dist/esm/test/sampleBlocknativeGas.d.ts +3 -0
- package/dist/esm/test/sampleBlocknativeGas.d.ts.map +1 -0
- package/dist/esm/test/sampleBlocknativeGas.js +93 -0
- package/dist/esm/test/sampleBlocknativeGas.js.map +1 -0
- package/dist/esm/test/sampleEtherchainGasV1.d.ts +3 -0
- package/dist/esm/test/sampleEtherchainGasV1.d.ts.map +1 -0
- package/dist/esm/test/sampleEtherchainGasV1.js +12 -0
- package/dist/esm/test/sampleEtherchainGasV1.js.map +1 -0
- package/dist/esm/test/sampleEtherchainGasV2.d.ts +3 -0
- package/dist/esm/test/sampleEtherchainGasV2.d.ts.map +1 -0
- package/dist/esm/test/sampleEtherchainGasV2.js +15 -0
- package/dist/esm/test/sampleEtherchainGasV2.js.map +1 -0
- package/dist/esm/test/sampleEthersGas.d.ts +3 -0
- package/dist/esm/test/sampleEthersGas.d.ts.map +1 -0
- package/dist/esm/test/sampleEthersGas.js +10 -0
- package/dist/esm/test/sampleEthersGas.js.map +1 -0
- package/dist/esm/test/sampleEtherscanGas.d.ts +3 -0
- package/dist/esm/test/sampleEtherscanGas.d.ts.map +1 -0
- package/dist/esm/test/sampleEtherscanGas.js +16 -0
- package/dist/esm/test/sampleEtherscanGas.js.map +1 -0
- package/dist/esm/test/sampleEthgasstationGas.d.ts +3 -0
- package/dist/esm/test/sampleEthgasstationGas.d.ts.map +1 -0
- package/dist/esm/test/sampleEthgasstationGas.js +20 -0
- package/dist/esm/test/sampleEthgasstationGas.js.map +1 -0
- package/package.json +87 -0
- package/src/Diviner.spec.ts +131 -0
- package/src/Diviner.ts +28 -0
- package/src/Plugin.spec.ts +11 -0
- package/src/Plugin.ts +16 -0
- package/src/Schema.ts +5 -0
- package/src/index.ts +9 -0
- package/src/lib/average.spec.ts +50 -0
- package/src/lib/average.ts +47 -0
- package/src/lib/divineGas.spec.ts +78 -0
- package/src/lib/divineGas.ts +34 -0
- package/src/lib/identities/index.ts +6 -0
- package/src/lib/identities/isXyoEthereumGasBlocknativePayload.spec.ts +29 -0
- package/src/lib/identities/isXyoEthereumGasBlocknativePayload.ts +6 -0
- package/src/lib/identities/isXyoEthereumGasEtherchainV1Payload.spec.ts +29 -0
- package/src/lib/identities/isXyoEthereumGasEtherchainV1Payload.ts +6 -0
- package/src/lib/identities/isXyoEthereumGasEtherchainV2Payload.spec.ts +29 -0
- package/src/lib/identities/isXyoEthereumGasEtherchainV2Payload.ts +6 -0
- package/src/lib/identities/isXyoEthereumGasEthersPayload.spec.ts +29 -0
- package/src/lib/identities/isXyoEthereumGasEthersPayload.ts +6 -0
- package/src/lib/identities/isXyoEthereumGasEtherscanPayload.spec.ts +29 -0
- package/src/lib/identities/isXyoEthereumGasEtherscanPayload.ts +6 -0
- package/src/lib/identities/isXyoEthereumGasEthgasstationPayload.spec.ts +29 -0
- package/src/lib/identities/isXyoEthereumGasEthgasstationPayload.ts +6 -0
- package/src/lib/index.ts +1 -0
- package/src/lib/transforms/index.ts +6 -0
- package/src/lib/transforms/transformGasFromBlocknative.spec.ts +39 -0
- package/src/lib/transforms/transformGasFromBlocknative.ts +51 -0
- package/src/lib/transforms/transformGasFromEtherchainV1.spec.ts +34 -0
- package/src/lib/transforms/transformGasFromEtherchainV1.ts +23 -0
- package/src/lib/transforms/transformGasFromEtherchainV2.spec.ts +34 -0
- package/src/lib/transforms/transformGasFromEtherchainV2.ts +18 -0
- package/src/lib/transforms/transformGasFromEthers.spec.ts +33 -0
- package/src/lib/transforms/transformGasFromEthers.ts +26 -0
- package/src/lib/transforms/transformGasFromEtherscan.spec.ts +34 -0
- package/src/lib/transforms/transformGasFromEtherscan.ts +28 -0
- package/src/lib/transforms/transformGasFromEthgasstation.spec.ts +39 -0
- package/src/lib/transforms/transformGasFromEthgasstation.ts +38 -0
- package/src/test/index.ts +6 -0
- package/src/test/sampleBlocknativeGas.ts +97 -0
- package/src/test/sampleEtherchainGasV1.ts +12 -0
- package/src/test/sampleEtherchainGasV2.ts +15 -0
- package/src/test/sampleEthersGas.ts +10 -0
- package/src/test/sampleEtherscanGas.ts +16 -0
- package/src/test/sampleEthgasstationGas.ts +20 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const getBaseFee = (payload) => {
|
|
2
|
+
const { lastBaseFeePerGas } = payload;
|
|
3
|
+
return lastBaseFeePerGas ? lastBaseFeePerGas / 1000000000 : undefined;
|
|
4
|
+
};
|
|
5
|
+
const getFeePerGas = (payload) => {
|
|
6
|
+
const { maxFeePerGas } = payload;
|
|
7
|
+
const high = maxFeePerGas ? maxFeePerGas / 1000000000 : undefined;
|
|
8
|
+
return { high };
|
|
9
|
+
};
|
|
10
|
+
const getPriorityFeePerGas = (payload) => {
|
|
11
|
+
const { maxPriorityFeePerGas } = payload;
|
|
12
|
+
const high = maxPriorityFeePerGas ? maxPriorityFeePerGas / 1000000000 : undefined;
|
|
13
|
+
return { high };
|
|
14
|
+
};
|
|
15
|
+
export const transformGasFromEthers = (payload) => {
|
|
16
|
+
const baseFee = getBaseFee(payload);
|
|
17
|
+
const feePerGas = getFeePerGas(payload);
|
|
18
|
+
const priorityFeePerGas = getPriorityFeePerGas(payload);
|
|
19
|
+
return { baseFee, feePerGas, priorityFeePerGas };
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=transformGasFromEthers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformGasFromEthers.js","sourceRoot":"","sources":["../../../../src/lib/transforms/transformGasFromEthers.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,GAAG,CAAC,OAAoC,EAAsB,EAAE;IAC9E,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;IACrC,OAAO,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,GAAG,UAAa,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1E,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAAoC,EAAsB,EAAE;IAChF,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;IAChC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,GAAG,UAAa,CAAC,CAAC,CAAC,SAAS,CAAA;IACpE,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,OAAoC,EAA8B,EAAE;IAChG,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAA;IACxC,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,GAAG,UAAa,CAAC,CAAC,CAAC,SAAS,CAAA;IACpF,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAoC,EAAW,EAAE;IACtF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAA;AAClD,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { XyoEthereumGasEtherscanPayload } from '@xyo-network/etherscan-ethereum-gas-payload-plugin';
|
|
2
|
+
import { FeeData } from '@xyo-network/gas-price-payload-plugin';
|
|
3
|
+
export declare const transformGasFromEtherscan: (payload: XyoEthereumGasEtherscanPayload) => FeeData;
|
|
4
|
+
//# sourceMappingURL=transformGasFromEtherscan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformGasFromEtherscan.d.ts","sourceRoot":"","sources":["../../../../src/lib/transforms/transformGasFromEtherscan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAA;AACnG,OAAO,EAAE,OAAO,EAAa,MAAM,uCAAuC,CAAA;AAqB1E,eAAO,MAAM,yBAAyB,YAAa,8BAA8B,KAAG,OAKnF,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { linear } from 'regression';
|
|
2
|
+
const getBaseFee = (payload) => {
|
|
3
|
+
const { suggestBaseFee } = payload.result;
|
|
4
|
+
return parseFloat(suggestBaseFee);
|
|
5
|
+
};
|
|
6
|
+
const getFeePerGas = (payload) => {
|
|
7
|
+
const { FastGasPrice, ProposeGasPrice, SafeGasPrice } = payload.result;
|
|
8
|
+
const low = parseFloat(SafeGasPrice);
|
|
9
|
+
const medium = parseFloat(ProposeGasPrice);
|
|
10
|
+
const high = parseFloat(FastGasPrice);
|
|
11
|
+
const veryHigh = linear([
|
|
12
|
+
[0, low],
|
|
13
|
+
[1, medium],
|
|
14
|
+
[2, high],
|
|
15
|
+
]).predict(3)[1];
|
|
16
|
+
return { high, low, medium, veryHigh };
|
|
17
|
+
};
|
|
18
|
+
export const transformGasFromEtherscan = (payload) => {
|
|
19
|
+
const baseFee = getBaseFee(payload);
|
|
20
|
+
const feePerGas = getFeePerGas(payload);
|
|
21
|
+
const priorityFeePerGas = {};
|
|
22
|
+
return { baseFee, feePerGas, priorityFeePerGas };
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=transformGasFromEtherscan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformGasFromEtherscan.js","sourceRoot":"","sources":["../../../../src/lib/transforms/transformGasFromEtherscan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,MAAM,UAAU,GAAG,CAAC,OAAuC,EAAsB,EAAE;IACjF,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IACzC,OAAO,UAAU,CAAC,cAAc,CAAC,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAAuC,EAAsB,EAAE;IACnF,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IACtE,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,MAAM,CAAC;QACtB,CAAC,CAAC,EAAE,GAAG,CAAC;QACR,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,IAAI,CAAC;KACV,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,OAAuC,EAAW,EAAE;IAC5F,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,iBAAiB,GAAG,EAAE,CAAA;IAC5B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAA;AAClD,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { XyoEthereumGasEthgasstationPayload } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin';
|
|
2
|
+
import { FeeData } from '@xyo-network/gas-price-payload-plugin';
|
|
3
|
+
export declare const transformGasFromEthgasstation: (payload: XyoEthereumGasEthgasstationPayload) => FeeData;
|
|
4
|
+
//# sourceMappingURL=transformGasFromEthgasstation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformGasFromEthgasstation.d.ts","sourceRoot":"","sources":["../../../../src/lib/transforms/transformGasFromEthgasstation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kCAAkC,EAAE,MAAM,wDAAwD,CAAA;AAC3G,OAAO,EAAE,OAAO,EAAgC,MAAM,uCAAuC,CAAA;AA8B7F,eAAO,MAAM,6BAA6B,YAAa,kCAAkC,KAAG,OAK3F,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { linear } from 'regression';
|
|
2
|
+
const getBaseFee = (payload) => {
|
|
3
|
+
const { baseFee } = payload;
|
|
4
|
+
return baseFee;
|
|
5
|
+
};
|
|
6
|
+
const getFeePerGas = (payload) => {
|
|
7
|
+
const { standard: medium, fast: high, instant: veryHigh } = payload.gasPrice;
|
|
8
|
+
const trend = linear([
|
|
9
|
+
[1, medium],
|
|
10
|
+
[2, high],
|
|
11
|
+
[3, veryHigh],
|
|
12
|
+
]);
|
|
13
|
+
const low = trend.predict(0)[1];
|
|
14
|
+
return { low, medium, high, veryHigh };
|
|
15
|
+
};
|
|
16
|
+
const getPriorityFeePerGas = (payload) => {
|
|
17
|
+
const { standard: medium, fast: high, instant: veryHigh } = payload.priorityFee;
|
|
18
|
+
const trend = linear([
|
|
19
|
+
[1, medium],
|
|
20
|
+
[2, high],
|
|
21
|
+
[3, veryHigh],
|
|
22
|
+
]);
|
|
23
|
+
const low = trend.predict(0)[1];
|
|
24
|
+
return { low, medium, high, veryHigh };
|
|
25
|
+
};
|
|
26
|
+
export const transformGasFromEthgasstation = (payload) => {
|
|
27
|
+
const baseFee = getBaseFee(payload);
|
|
28
|
+
const feePerGas = getFeePerGas(payload);
|
|
29
|
+
const priorityFeePerGas = getPriorityFeePerGas(payload);
|
|
30
|
+
return { baseFee, feePerGas, priorityFeePerGas };
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=transformGasFromEthgasstation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformGasFromEthgasstation.js","sourceRoot":"","sources":["../../../../src/lib/transforms/transformGasFromEthgasstation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,MAAM,UAAU,GAAG,CAAC,OAA2C,EAAsB,EAAE;IACrF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAA2C,EAAsB,EAAE;IACvF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAA;IAC5E,MAAM,KAAK,GAAG,MAAM,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,QAAQ,CAAC;KACd,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,OAA2C,EAA8B,EAAE;IACvG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,WAAW,CAAA;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,IAAI,CAAC;QACT,CAAC,CAAC,EAAE,QAAQ,CAAC;KACd,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,OAA2C,EAAW,EAAE;IACpG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACvD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAA;AAClD,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './sampleBlocknativeGas';
|
|
2
|
+
export * from './sampleEtherchainGasV1';
|
|
3
|
+
export * from './sampleEtherchainGasV2';
|
|
4
|
+
export * from './sampleEtherscanGas';
|
|
5
|
+
export * from './sampleEthersGas';
|
|
6
|
+
export * from './sampleEthgasstationGas';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './sampleBlocknativeGas';
|
|
2
|
+
export * from './sampleEtherchainGasV1';
|
|
3
|
+
export * from './sampleEtherchainGasV2';
|
|
4
|
+
export * from './sampleEtherscanGas';
|
|
5
|
+
export * from './sampleEthersGas';
|
|
6
|
+
export * from './sampleEthgasstationGas';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleBlocknativeGas.d.ts","sourceRoot":"","sources":["../../../src/test/sampleBlocknativeGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gCAAgC,EAEjC,MAAM,sDAAsD,CAAA;AAE7D,eAAO,MAAM,oBAAoB,EAAE,gCA0FlC,CAAA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { XyoEthereumGasBlocknativeSchema, } from '@xyo-network/blocknative-ethereum-gas-payload-plugin';
|
|
2
|
+
export const sampleBlocknativeGas = {
|
|
3
|
+
blockPrices: [
|
|
4
|
+
{
|
|
5
|
+
baseFeePerGas: 13.691764456,
|
|
6
|
+
blockNumber: 16028191,
|
|
7
|
+
estimatedPrices: [
|
|
8
|
+
{
|
|
9
|
+
confidence: 99,
|
|
10
|
+
maxFeePerGas: 22.04,
|
|
11
|
+
maxPriorityFeePerGas: 1.09,
|
|
12
|
+
price: 14,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
confidence: 95,
|
|
16
|
+
maxFeePerGas: 21.58,
|
|
17
|
+
maxPriorityFeePerGas: 0.63,
|
|
18
|
+
price: 14,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
confidence: 90,
|
|
22
|
+
maxFeePerGas: 21.25,
|
|
23
|
+
maxPriorityFeePerGas: 0.3,
|
|
24
|
+
price: 13,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
confidence: 80,
|
|
28
|
+
maxFeePerGas: 21.16,
|
|
29
|
+
maxPriorityFeePerGas: 0.21,
|
|
30
|
+
price: 13,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
confidence: 70,
|
|
34
|
+
maxFeePerGas: 21.12,
|
|
35
|
+
maxPriorityFeePerGas: 0.17,
|
|
36
|
+
price: 13,
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
estimatedTransactionCount: 69,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
currentBlockNumber: 16028190,
|
|
43
|
+
estimatedBaseFees: [
|
|
44
|
+
{
|
|
45
|
+
'pending+1': [
|
|
46
|
+
{
|
|
47
|
+
baseFee: 15.41,
|
|
48
|
+
confidence: 99,
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
'pending+2': [
|
|
54
|
+
{
|
|
55
|
+
baseFee: 17.32,
|
|
56
|
+
confidence: 99,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
'pending+3': [
|
|
62
|
+
{
|
|
63
|
+
baseFee: 19.17,
|
|
64
|
+
confidence: 99,
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
'pending+4': [
|
|
70
|
+
{
|
|
71
|
+
baseFee: 20.12,
|
|
72
|
+
confidence: 99,
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
'pending+5': [
|
|
78
|
+
{
|
|
79
|
+
baseFee: 20.95,
|
|
80
|
+
confidence: 99,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
maxPrice: 36,
|
|
86
|
+
msSinceLastBlock: 3643,
|
|
87
|
+
network: 'main',
|
|
88
|
+
schema: XyoEthereumGasBlocknativeSchema,
|
|
89
|
+
system: 'ethereum',
|
|
90
|
+
timestamp: 1668697958837,
|
|
91
|
+
unit: 'gwei',
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=sampleBlocknativeGas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleBlocknativeGas.js","sourceRoot":"","sources":["../../../src/test/sampleBlocknativeGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,+BAA+B,GAChC,MAAM,sDAAsD,CAAA;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAqC;IACpE,WAAW,EAAE;QACX;YACE,aAAa,EAAE,YAAY;YAC3B,WAAW,EAAE,QAAQ;YACrB,eAAe,EAAE;gBACf;oBACE,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,KAAK;oBACnB,oBAAoB,EAAE,IAAI;oBAC1B,KAAK,EAAE,EAAE;iBACV;gBACD;oBACE,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,KAAK;oBACnB,oBAAoB,EAAE,IAAI;oBAC1B,KAAK,EAAE,EAAE;iBACV;gBACD;oBACE,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,KAAK;oBACnB,oBAAoB,EAAE,GAAG;oBACzB,KAAK,EAAE,EAAE;iBACV;gBACD;oBACE,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,KAAK;oBACnB,oBAAoB,EAAE,IAAI;oBAC1B,KAAK,EAAE,EAAE;iBACV;gBACD;oBACE,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,KAAK;oBACnB,oBAAoB,EAAE,IAAI;oBAC1B,KAAK,EAAE,EAAE;iBACV;aACF;YACD,yBAAyB,EAAE,EAAE;SAC9B;KACF;IACD,kBAAkB,EAAE,QAAQ;IAC5B,iBAAiB,EAAE;QACjB;YACE,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF;QACD;YACE,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF;QACD;YACE,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF;QACD;YACE,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF;QACD;YACE,WAAW,EAAE;gBACX;oBACE,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF;KAC+B;IAClC,QAAQ,EAAE,EAAE;IACZ,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,+BAA+B;IACvC,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,aAAa;IACxB,IAAI,EAAE,MAAM;CACb,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleEtherchainGasV2.d.ts","sourceRoot":"","sources":["../../../src/test/sampleEtherchainGasV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAoC,MAAM,iEAAiE,CAAA;AAErJ,eAAO,MAAM,qBAAqB,EAAE,iCAYnC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { XyoEthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins';
|
|
2
|
+
export const sampleEtherchainGasV2 = {
|
|
3
|
+
code: 200,
|
|
4
|
+
data: {
|
|
5
|
+
fast: 19803047330,
|
|
6
|
+
priceUSD: 1195.77,
|
|
7
|
+
rapid: 29714286170,
|
|
8
|
+
slow: 11200000000,
|
|
9
|
+
standard: 12000000000,
|
|
10
|
+
timestamp: 1668621234096,
|
|
11
|
+
},
|
|
12
|
+
schema: XyoEthereumGasEtherchainV2Schema,
|
|
13
|
+
timestamp: 1668621240790,
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=sampleEtherchainGasV2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleEtherchainGasV2.js","sourceRoot":"","sources":["../../../src/test/sampleEtherchainGasV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,gCAAgC,EAAE,MAAM,iEAAiE,CAAA;AAErJ,MAAM,CAAC,MAAM,qBAAqB,GAAsC;IACtE,IAAI,EAAE,GAAG;IACT,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,aAAa;KACzB;IACD,MAAM,EAAE,gCAAgC;IACxC,SAAS,EAAE,aAAa;CACzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleEthersGas.d.ts","sourceRoot":"","sources":["../../../src/test/sampleEthersGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAA8B,MAAM,iDAAiD,CAAA;AAEzH,eAAO,MAAM,eAAe,EAAE,2BAO7B,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { XyoEthereumGasEthersSchema } from '@xyo-network/ethers-ethereum-gas-payload-plugin';
|
|
2
|
+
export const sampleEthersGas = {
|
|
3
|
+
gasPrice: 13547863640,
|
|
4
|
+
lastBaseFeePerGas: 13447862081,
|
|
5
|
+
maxFeePerGas: 28395724162,
|
|
6
|
+
maxPriorityFeePerGas: 1500000000,
|
|
7
|
+
schema: XyoEthereumGasEthersSchema,
|
|
8
|
+
timestamp: 1668697958837,
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=sampleEthersGas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleEthersGas.js","sourceRoot":"","sources":["../../../src/test/sampleEthersGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,0BAA0B,EAAE,MAAM,iDAAiD,CAAA;AAEzH,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,QAAQ,EAAE,WAAW;IACrB,iBAAiB,EAAE,WAAW;IAC9B,YAAY,EAAE,WAAW;IACzB,oBAAoB,EAAE,UAAU;IAChC,MAAM,EAAE,0BAA0B;IAClC,SAAS,EAAE,aAAa;CACzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleEtherscanGas.d.ts","sourceRoot":"","sources":["../../../src/test/sampleEtherscanGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAiC,MAAM,oDAAoD,CAAA;AAElI,eAAO,MAAM,kBAAkB,EAAE,8BAahC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { XyoEthereumGasEtherscanSchema } from '@xyo-network/etherscan-ethereum-gas-payload-plugin';
|
|
2
|
+
export const sampleEtherscanGas = {
|
|
3
|
+
message: 'OK',
|
|
4
|
+
result: {
|
|
5
|
+
FastGasPrice: '30',
|
|
6
|
+
LastBlock: '15990556',
|
|
7
|
+
ProposeGasPrice: '29',
|
|
8
|
+
SafeGasPrice: '28',
|
|
9
|
+
gasUsedRatio: '0.416266666666667,0.5672862,0.540979033333333,0.342410966666667,0.389071233333333',
|
|
10
|
+
suggestBaseFee: '27.616709247',
|
|
11
|
+
},
|
|
12
|
+
schema: XyoEthereumGasEtherscanSchema,
|
|
13
|
+
status: '1',
|
|
14
|
+
timestamp: 1668697958837,
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=sampleEtherscanGas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleEtherscanGas.js","sourceRoot":"","sources":["../../../src/test/sampleEtherscanGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,6BAA6B,EAAE,MAAM,oDAAoD,CAAA;AAElI,MAAM,CAAC,MAAM,kBAAkB,GAAmC;IAChE,OAAO,EAAE,IAAI;IACb,MAAM,EAAE;QACN,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,UAAU;QACrB,eAAe,EAAE,IAAI;QACrB,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,mFAAmF;QACjG,cAAc,EAAE,cAAc;KAC/B;IACD,MAAM,EAAE,6BAA6B;IACrC,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,aAAa;CACzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleEthgasstationGas.d.ts","sourceRoot":"","sources":["../../../src/test/sampleEthgasstationGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAqC,MAAM,wDAAwD,CAAA;AAE9I,eAAO,MAAM,sBAAsB,EAAE,kCAiBpC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { XyoEthereumGasEthgasstationSchema } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin';
|
|
2
|
+
export const sampleEthgasstationGas = {
|
|
3
|
+
baseFee: 10,
|
|
4
|
+
blockNumber: 16028883,
|
|
5
|
+
blockTime: 11.88,
|
|
6
|
+
gasPrice: {
|
|
7
|
+
fast: 12,
|
|
8
|
+
instant: 13,
|
|
9
|
+
standard: 12,
|
|
10
|
+
},
|
|
11
|
+
nextBaseFee: 10,
|
|
12
|
+
priorityFee: {
|
|
13
|
+
fast: 2,
|
|
14
|
+
instant: 2,
|
|
15
|
+
standard: 2,
|
|
16
|
+
},
|
|
17
|
+
schema: XyoEthereumGasEthgasstationSchema,
|
|
18
|
+
timestamp: 1668697958837,
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=sampleEthgasstationGas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleEthgasstationGas.js","sourceRoot":"","sources":["../../../src/test/sampleEthgasstationGas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,iCAAiC,EAAE,MAAM,wDAAwD,CAAA;AAE9I,MAAM,CAAC,MAAM,sBAAsB,GAAuC;IACxE,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE,EAAE;IACf,WAAW,EAAE;QACX,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;KACZ;IACD,MAAM,EAAE,iCAAiC;IACzC,SAAS,EAAE,aAAa;CACzB,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xyo-network/gas-price-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
|
+
"@xylabs/exists": "^2.6.9",
|
|
14
|
+
"@xyo-network/blocknative-ethereum-gas-payload-plugin": "^2.42.0",
|
|
15
|
+
"@xyo-network/diviner": "^2.42.0",
|
|
16
|
+
"@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins": "^2.42.0",
|
|
17
|
+
"@xyo-network/ethers-ethereum-gas-payload-plugin": "^2.42.0",
|
|
18
|
+
"@xyo-network/etherscan-ethereum-gas-payload-plugin": "^2.42.0",
|
|
19
|
+
"@xyo-network/ethgasstation-ethereum-gas-payload-plugin": "^2.42.0",
|
|
20
|
+
"@xyo-network/gas-price-payload-plugin": "^2.42.0",
|
|
21
|
+
"@xyo-network/module": "^2.42.0",
|
|
22
|
+
"@xyo-network/payload": "^2.42.0",
|
|
23
|
+
"@xyo-network/payloadset-plugin": "^2.42.0",
|
|
24
|
+
"@xyo-network/promise": "^2.42.0",
|
|
25
|
+
"regression": "^2.0.1",
|
|
26
|
+
"tslib": "^2.4.1"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@ethersproject/address": "^5.7.0",
|
|
30
|
+
"@ethersproject/contracts": "^5.7.0",
|
|
31
|
+
"@ethersproject/networks": "^5.7.1",
|
|
32
|
+
"@ethersproject/providers": "^5.7.2",
|
|
33
|
+
"@ethersproject/solidity": "^5.7.0",
|
|
34
|
+
"@types/regression": "^2.0.2",
|
|
35
|
+
"@uniswap/sdk": "^3.0.3",
|
|
36
|
+
"@uniswap/sdk-core": "^3.1.0",
|
|
37
|
+
"@uniswap/v3-sdk": "^3.9.0",
|
|
38
|
+
"@xyo-network/typechain": "^2.0.4",
|
|
39
|
+
"@xyo-network/uniswap-typechain": "^2.0.4"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"@ethersproject/address": "^5.7.0",
|
|
43
|
+
"@ethersproject/contracts": "^5.7.0",
|
|
44
|
+
"@ethersproject/networks": "^5.7.0",
|
|
45
|
+
"@ethersproject/providers": "^5.7.0",
|
|
46
|
+
"@ethersproject/solidity": "^5.7.0",
|
|
47
|
+
"@uniswap/sdk": "^3.0.3",
|
|
48
|
+
"@uniswap/sdk-core": "^3.1.0",
|
|
49
|
+
"@uniswap/v3-sdk": "^3.9.0",
|
|
50
|
+
"@xyo-network/typechain": "^2.0.3",
|
|
51
|
+
"@xyo-network/uniswap-typechain": "^2.0.3"
|
|
52
|
+
},
|
|
53
|
+
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
54
|
+
"browser": "dist/esm/index.js",
|
|
55
|
+
"docs": "dist/docs.json",
|
|
56
|
+
"exports": {
|
|
57
|
+
".": {
|
|
58
|
+
"node": {
|
|
59
|
+
"import": "./dist/esm/index.js",
|
|
60
|
+
"require": "./dist/cjs/index.js"
|
|
61
|
+
},
|
|
62
|
+
"browser": {
|
|
63
|
+
"import": "./dist/esm/index.js",
|
|
64
|
+
"require": "./dist/cjs/index.js"
|
|
65
|
+
},
|
|
66
|
+
"default": "./dist/esm/index.js"
|
|
67
|
+
},
|
|
68
|
+
"./dist/docs.json": {
|
|
69
|
+
"default": "./dist/docs.json"
|
|
70
|
+
},
|
|
71
|
+
"./package.json": "./package.json"
|
|
72
|
+
},
|
|
73
|
+
"main": "dist/cjs/index.js",
|
|
74
|
+
"module": "dist/esm/index.js",
|
|
75
|
+
"homepage": "https://xyo.network",
|
|
76
|
+
"license": "LGPL-3.0-only",
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"access": "public"
|
|
79
|
+
},
|
|
80
|
+
"repository": {
|
|
81
|
+
"type": "git",
|
|
82
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
83
|
+
},
|
|
84
|
+
"sideEffects": false,
|
|
85
|
+
"types": "dist/esm/index.d.ts",
|
|
86
|
+
"version": "2.42.0"
|
|
87
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { InfuraProvider } from '@ethersproject/providers'
|
|
2
|
+
import { XyoEthereumGasBlocknativeWitness, XyoEthereumGasBlocknativeWitnessConfigSchema } from '@xyo-network/blocknative-ethereum-gas-plugin'
|
|
3
|
+
import { DivinerWrapper } from '@xyo-network/diviner'
|
|
4
|
+
import {
|
|
5
|
+
XyoEtherchainEthereumGasWitnessV1,
|
|
6
|
+
XyoEtherchainEthereumGasWitnessV2,
|
|
7
|
+
XyoEthereumGasEtherchainV1WitnessConfigSchema,
|
|
8
|
+
XyoEthereumGasEtherchainV2WitnessConfigSchema,
|
|
9
|
+
} from '@xyo-network/etherchain-gas-ethereum-blockchain-plugins'
|
|
10
|
+
import { XyoEthereumGasEthersWitness, XyoEthereumGasEthersWitnessConfigSchema } from '@xyo-network/ethers-ethereum-gas-plugin'
|
|
11
|
+
import { XyoEthereumGasEtherscanWitness, XyoEthereumGasEtherscanWitnessConfigSchema } from '@xyo-network/etherscan-ethereum-gas-plugin'
|
|
12
|
+
import { XyoEthereumGasEthgasstationWitness, XyoEthereumGasEthgasstationWitnessConfigSchema } from '@xyo-network/ethgasstation-ethereum-gas-plugin'
|
|
13
|
+
import { XyoEthereumGasPayload, XyoEthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'
|
|
14
|
+
import { XyoPayload } from '@xyo-network/payload'
|
|
15
|
+
|
|
16
|
+
import { XyoEthereumGasDiviner } from './Diviner'
|
|
17
|
+
import {
|
|
18
|
+
sampleBlocknativeGas,
|
|
19
|
+
sampleEtherchainGasV1,
|
|
20
|
+
sampleEtherchainGasV2,
|
|
21
|
+
sampleEtherscanGas,
|
|
22
|
+
sampleEthersGas,
|
|
23
|
+
sampleEthgasstationGas,
|
|
24
|
+
} from './test'
|
|
25
|
+
|
|
26
|
+
describe('Diviner', () => {
|
|
27
|
+
test('returns divined gas price', async () => {
|
|
28
|
+
const module = await XyoEthereumGasDiviner.create()
|
|
29
|
+
const wrapper = new DivinerWrapper(module)
|
|
30
|
+
|
|
31
|
+
const payloads = await wrapper.divine([
|
|
32
|
+
sampleBlocknativeGas,
|
|
33
|
+
sampleEtherchainGasV1,
|
|
34
|
+
sampleEtherchainGasV2,
|
|
35
|
+
sampleEtherscanGas,
|
|
36
|
+
sampleEthersGas,
|
|
37
|
+
sampleEthgasstationGas,
|
|
38
|
+
])
|
|
39
|
+
|
|
40
|
+
expect(payloads).toBeArray()
|
|
41
|
+
expect(payloads.length).toBe(1)
|
|
42
|
+
payloads.map((payload) => {
|
|
43
|
+
if (payload?.schema === XyoEthereumGasSchema) {
|
|
44
|
+
const gasPayload = payload as XyoEthereumGasPayload
|
|
45
|
+
expect(gasPayload).toBeObject()
|
|
46
|
+
expect(gasPayload.schema).toBe(XyoEthereumGasSchema)
|
|
47
|
+
expect(gasPayload.timestamp).toBeNumber()
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
test.skip('diviner calibration', async () => {
|
|
52
|
+
// NOTE: This test is for obtaining concurrent witnessed
|
|
53
|
+
// results for diviner weighting/calibration
|
|
54
|
+
const blocknativeGas = (
|
|
55
|
+
await (
|
|
56
|
+
await XyoEthereumGasBlocknativeWitness.create({
|
|
57
|
+
config: {
|
|
58
|
+
schema: XyoEthereumGasBlocknativeWitnessConfigSchema,
|
|
59
|
+
},
|
|
60
|
+
})
|
|
61
|
+
).observe()
|
|
62
|
+
)?.[0]
|
|
63
|
+
const etherchainGasV1 = (
|
|
64
|
+
await (
|
|
65
|
+
await XyoEtherchainEthereumGasWitnessV1.create({
|
|
66
|
+
config: {
|
|
67
|
+
schema: XyoEthereumGasEtherchainV1WitnessConfigSchema,
|
|
68
|
+
},
|
|
69
|
+
})
|
|
70
|
+
).observe()
|
|
71
|
+
)?.[0]
|
|
72
|
+
const etherchainGasV2 = (
|
|
73
|
+
await (
|
|
74
|
+
await XyoEtherchainEthereumGasWitnessV2.create({
|
|
75
|
+
config: {
|
|
76
|
+
schema: XyoEthereumGasEtherchainV2WitnessConfigSchema,
|
|
77
|
+
},
|
|
78
|
+
})
|
|
79
|
+
).observe()
|
|
80
|
+
)?.[0]
|
|
81
|
+
const etherscanGas = (
|
|
82
|
+
await (
|
|
83
|
+
await XyoEthereumGasEtherscanWitness.create({
|
|
84
|
+
config: {
|
|
85
|
+
apiKey: process.env.ETHERSCAN_API_KEY || '',
|
|
86
|
+
schema: XyoEthereumGasEtherscanWitnessConfigSchema,
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
).observe()
|
|
90
|
+
)?.[0]
|
|
91
|
+
const ethersGas = (
|
|
92
|
+
await (
|
|
93
|
+
await XyoEthereumGasEthersWitness.create({
|
|
94
|
+
config: {
|
|
95
|
+
schema: XyoEthereumGasEthersWitnessConfigSchema,
|
|
96
|
+
},
|
|
97
|
+
provider: new InfuraProvider('homestead', {
|
|
98
|
+
projectId: process.env.INFURA_PROJECT_ID,
|
|
99
|
+
projectSecret: process.env.INFURA_PROJECT_SECRET,
|
|
100
|
+
}),
|
|
101
|
+
})
|
|
102
|
+
).observe()
|
|
103
|
+
)?.[0]
|
|
104
|
+
const ethgasstationGas = (
|
|
105
|
+
await (
|
|
106
|
+
await XyoEthereumGasEthgasstationWitness.create({
|
|
107
|
+
config: {
|
|
108
|
+
schema: XyoEthereumGasEthgasstationWitnessConfigSchema,
|
|
109
|
+
},
|
|
110
|
+
})
|
|
111
|
+
).observe()
|
|
112
|
+
)?.[0]
|
|
113
|
+
const observations: XyoPayload[] = [blocknativeGas, etherchainGasV1, etherchainGasV2, etherscanGas, ethersGas, ethgasstationGas]
|
|
114
|
+
|
|
115
|
+
const module = await XyoEthereumGasDiviner.create()
|
|
116
|
+
const wrapper = new DivinerWrapper(module)
|
|
117
|
+
|
|
118
|
+
const payloads = await wrapper.divine(observations)
|
|
119
|
+
|
|
120
|
+
expect(payloads).toBeArray()
|
|
121
|
+
expect(payloads.length).toBe(1)
|
|
122
|
+
payloads.map((payload) => {
|
|
123
|
+
if (payload?.schema === XyoEthereumGasSchema) {
|
|
124
|
+
const gasPayload = payload as XyoEthereumGasPayload
|
|
125
|
+
expect(gasPayload).toBeObject()
|
|
126
|
+
expect(gasPayload.schema).toBe(XyoEthereumGasSchema)
|
|
127
|
+
expect(gasPayload.timestamp).toBeNumber()
|
|
128
|
+
}
|
|
129
|
+
})
|
|
130
|
+
})
|
|
131
|
+
})
|
package/src/Diviner.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractDiviner, DivinerConfig, XyoDivinerDivineQuerySchema } from '@xyo-network/diviner'
|
|
2
|
+
import { XyoEthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'
|
|
3
|
+
import { XyoModuleParams } from '@xyo-network/module'
|
|
4
|
+
import { XyoPayloads } from '@xyo-network/payload'
|
|
5
|
+
import { Promisable } from '@xyo-network/promise'
|
|
6
|
+
|
|
7
|
+
import { divineGas } from './lib'
|
|
8
|
+
import { XyoEthereumGasDivinerConfigSchema } from './Schema'
|
|
9
|
+
|
|
10
|
+
export type XyoEthereumGasDivinerConfig = DivinerConfig<{ schema: XyoEthereumGasDivinerConfigSchema }>
|
|
11
|
+
|
|
12
|
+
export class XyoEthereumGasDiviner extends AbstractDiviner {
|
|
13
|
+
static override configSchema = XyoEthereumGasDivinerConfigSchema
|
|
14
|
+
static override targetSchema = XyoEthereumGasSchema
|
|
15
|
+
|
|
16
|
+
static override async create(params?: XyoModuleParams<XyoEthereumGasDivinerConfig>) {
|
|
17
|
+
return (await super.create(params)) as XyoEthereumGasDiviner
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public override divine(payloads: XyoPayloads): Promisable<XyoPayloads> {
|
|
21
|
+
const cost = divineGas(payloads)
|
|
22
|
+
return [cost]
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
override queries() {
|
|
26
|
+
return [XyoDivinerDivineQuerySchema, ...super.queries()]
|
|
27
|
+
}
|
|
28
|
+
}
|