@xyo-network/gas-price-plugin 2.99.4 → 2.99.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/Diviner.d.cts +1 -1
- package/dist/browser/Diviner.d.cts.map +1 -1
- package/dist/browser/Diviner.d.mts +1 -1
- package/dist/browser/Diviner.d.mts.map +1 -1
- package/dist/browser/Diviner.d.ts +1 -1
- package/dist/browser/Diviner.d.ts.map +1 -1
- package/dist/browser/Plugin.d.cts +2 -2
- package/dist/browser/Plugin.d.mts +2 -2
- package/dist/browser/Plugin.d.ts +2 -2
- package/dist/browser/index.cjs +216 -93
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +3 -3
- package/dist/browser/index.d.mts +3 -3
- package/dist/browser/index.d.ts +3 -3
- package/dist/browser/{index.js → index.mjs} +219 -94
- package/dist/browser/index.mjs.map +1 -0
- package/dist/browser/lib/identities/index.d.cts +5 -5
- package/dist/browser/lib/identities/index.d.mts +5 -5
- package/dist/browser/lib/identities/index.d.ts +5 -5
- package/dist/browser/lib/index.d.cts +1 -1
- package/dist/browser/lib/index.d.mts +1 -1
- package/dist/browser/lib/index.d.ts +1 -1
- package/dist/browser/lib/transforms/index.d.cts +5 -5
- package/dist/browser/lib/transforms/index.d.mts +5 -5
- package/dist/browser/lib/transforms/index.d.ts +5 -5
- package/dist/browser/lib/transforms/transformGasFromBlocknative.d.cts.map +1 -1
- package/dist/browser/lib/transforms/transformGasFromBlocknative.d.mts.map +1 -1
- package/dist/browser/lib/transforms/transformGasFromBlocknative.d.ts.map +1 -1
- package/dist/browser/lib/transforms/transformGasFromEthgasstation.d.cts.map +1 -1
- package/dist/browser/lib/transforms/transformGasFromEthgasstation.d.mts.map +1 -1
- package/dist/browser/lib/transforms/transformGasFromEthgasstation.d.ts.map +1 -1
- package/dist/browser/test/index.d.cts +5 -5
- package/dist/browser/test/index.d.mts +5 -5
- package/dist/browser/test/index.d.ts +5 -5
- package/dist/neutral/Diviner.d.cts +1 -1
- package/dist/neutral/Diviner.d.cts.map +1 -1
- package/dist/neutral/Diviner.d.mts +1 -1
- package/dist/neutral/Diviner.d.mts.map +1 -1
- package/dist/neutral/Diviner.d.ts +1 -1
- package/dist/neutral/Diviner.d.ts.map +1 -1
- package/dist/neutral/Plugin.d.cts +2 -2
- package/dist/neutral/Plugin.d.mts +2 -2
- package/dist/neutral/Plugin.d.ts +2 -2
- package/dist/neutral/index.cjs +216 -93
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.d.cts +3 -3
- package/dist/neutral/index.d.mts +3 -3
- package/dist/neutral/index.d.ts +3 -3
- package/dist/neutral/{index.js → index.mjs} +219 -94
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/neutral/lib/identities/index.d.cts +5 -5
- package/dist/neutral/lib/identities/index.d.mts +5 -5
- package/dist/neutral/lib/identities/index.d.ts +5 -5
- package/dist/neutral/lib/index.d.cts +1 -1
- package/dist/neutral/lib/index.d.mts +1 -1
- package/dist/neutral/lib/index.d.ts +1 -1
- package/dist/neutral/lib/transforms/index.d.cts +5 -5
- package/dist/neutral/lib/transforms/index.d.mts +5 -5
- package/dist/neutral/lib/transforms/index.d.ts +5 -5
- package/dist/neutral/lib/transforms/transformGasFromBlocknative.d.cts.map +1 -1
- package/dist/neutral/lib/transforms/transformGasFromBlocknative.d.mts.map +1 -1
- package/dist/neutral/lib/transforms/transformGasFromBlocknative.d.ts.map +1 -1
- package/dist/neutral/lib/transforms/transformGasFromEthgasstation.d.cts.map +1 -1
- package/dist/neutral/lib/transforms/transformGasFromEthgasstation.d.mts.map +1 -1
- package/dist/neutral/lib/transforms/transformGasFromEthgasstation.d.ts.map +1 -1
- package/dist/neutral/test/index.d.cts +5 -5
- package/dist/neutral/test/index.d.mts +5 -5
- package/dist/neutral/test/index.d.ts +5 -5
- package/dist/node/Diviner.d.cts +1 -1
- package/dist/node/Diviner.d.cts.map +1 -1
- package/dist/node/Diviner.d.mts +1 -1
- package/dist/node/Diviner.d.mts.map +1 -1
- package/dist/node/Diviner.d.ts +1 -1
- package/dist/node/Diviner.d.ts.map +1 -1
- package/dist/node/Plugin.d.cts +2 -2
- package/dist/node/Plugin.d.mts +2 -2
- package/dist/node/Plugin.d.ts +2 -2
- package/dist/node/index.cjs +223 -96
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +3 -3
- package/dist/node/index.d.mts +3 -3
- package/dist/node/index.d.ts +3 -3
- package/dist/node/{index.js → index.mjs} +226 -97
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/identities/index.d.cts +5 -5
- package/dist/node/lib/identities/index.d.mts +5 -5
- package/dist/node/lib/identities/index.d.ts +5 -5
- package/dist/node/lib/index.d.cts +1 -1
- package/dist/node/lib/index.d.mts +1 -1
- package/dist/node/lib/index.d.ts +1 -1
- package/dist/node/lib/transforms/index.d.cts +5 -5
- package/dist/node/lib/transforms/index.d.mts +5 -5
- package/dist/node/lib/transforms/index.d.ts +5 -5
- package/dist/node/lib/transforms/transformGasFromBlocknative.d.cts.map +1 -1
- package/dist/node/lib/transforms/transformGasFromBlocknative.d.mts.map +1 -1
- package/dist/node/lib/transforms/transformGasFromBlocknative.d.ts.map +1 -1
- package/dist/node/lib/transforms/transformGasFromEthgasstation.d.cts.map +1 -1
- package/dist/node/lib/transforms/transformGasFromEthgasstation.d.mts.map +1 -1
- package/dist/node/lib/transforms/transformGasFromEthgasstation.d.ts.map +1 -1
- package/dist/node/test/index.d.cts +5 -5
- package/dist/node/test/index.d.mts +5 -5
- package/dist/node/test/index.d.ts +5 -5
- package/package.json +25 -25
- package/src/Diviner.ts +3 -4
- package/src/Plugin.ts +1 -1
- package/src/index.ts +3 -3
- package/src/lib/average.ts +9 -9
- package/src/lib/divineGas.ts +3 -3
- package/src/lib/identities/index.ts +5 -5
- package/src/lib/index.ts +1 -1
- package/src/lib/transforms/index.ts +5 -5
- package/src/lib/transforms/transformGasFromBlocknative.ts +0 -1
- package/src/lib/transforms/transformGasFromEthgasstation.ts +0 -1
- package/src/test/index.ts +5 -5
- package/dist/browser/index.js.map +0 -1
- package/dist/neutral/index.js.map +0 -1
- package/dist/node/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/lib/divineGas.ts","../../src/lib/average.ts","../../src/lib/identities/isEthereumGasBlocknativePayload.ts","../../src/lib/identities/isEthereumGasEtherchainV2Payload.ts","../../src/lib/identities/isEthereumGasEtherscanPayload.ts","../../src/lib/identities/isEthereumGasEthersPayload.ts","../../src/lib/identities/isEthereumGasEthgasstationPayload.ts","../../src/lib/transforms/transformGasFromBlocknative.ts","../../src/lib/transforms/transformGasFromEtherchainV2.ts","../../src/lib/transforms/transformGasFromEthers.ts","../../src/lib/transforms/transformGasFromEtherscan.ts","../../src/lib/transforms/transformGasFromEthgasstation.ts","../../src/Schema.ts","../../src/Plugin.ts"],"sourcesContent":["export * from './Diviner.js'\n// eslint-disable-next-line import/no-default-export\nexport { EthereumGasPlugin as default, EthereumGasPlugin } from './Plugin.js'\nexport * from './Schema.js'\n","import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { EthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nimport { divineGas } from './lib/index.js'\nimport { EthereumGasDivinerConfigSchema } from './Schema.js'\n\nexport type EthereumGasDivinerConfig = DivinerConfig<{ schema: EthereumGasDivinerConfigSchema }>\nexport type EthereumGasDivinerParams = DivinerParams<AnyConfigSchema<EthereumGasDivinerConfig>>\n\nexport class EthereumGasDiviner<TParams extends EthereumGasDivinerParams = EthereumGasDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule\n{\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EthereumGasDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EthereumGasDivinerConfigSchema\n static override targetSchema: string = EthereumGasSchema\n\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const cost = await divineGas(payloads ?? [])\n return [cost]\n }\n}\n","import { EthereumGasPayload, EthereumGasSchema, FeeData } from '@xyo-network/gas-price-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { average } from './average.js'\nimport {\n isEthereumGasBlocknativePayload,\n isEthereumGasEtherchainV2Payload,\n isEthereumGasEtherscanPayload,\n isEthereumGasEthersPayload,\n isEthereumGasEthgasstationPayload,\n} from './identities/index.js'\nimport {\n transformGasFromBlocknative,\n transformGasFromEtherchainV2,\n transformGasFromEthers,\n transformGasFromEtherscan,\n transformGasFromEthgasstation,\n} from './transforms/index.js'\n\nexport const divineGas = async (payloads: Payload[]): Promise<EthereumGasPayload> => {\n const blocknative = payloads.filter(isEthereumGasBlocknativePayload).map(transformGasFromBlocknative)\n const etherchainV2 = payloads.filter(isEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2)\n const ethers = payloads.filter(isEthereumGasEthersPayload).map(transformGasFromEthers)\n const etherscan = payloads.filter(isEthereumGasEtherscanPayload).map(transformGasFromEtherscan)\n const ethgasstation = payloads.filter(isEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation)\n const transactionCosts: FeeData[] = [...blocknative, ...etherchainV2, ...ethers, ...etherscan, ...ethgasstation]\n const avg = average(transactionCosts)\n const timestamp = Date.now()\n const payload = await new PayloadBuilder<EthereumGasPayload>({ schema: EthereumGasSchema }).fields({ ...avg, timestamp }).build()\n return payload\n}\n","import { exists } from '@xylabs/exists'\nimport { FeeData } from '@xyo-network/gas-price-payload-plugin'\n\n/**\n * Averages an array of numbers\n * @param x Averages an array of numbers\n * @returns The average of the array of numbers or undefined if the\n * array is empty or undefined\n */\nconst listAverage = (x?: number[]) => (x?.length ? x.reduce((a, b) => a + b) / x.length : undefined)\n\n/**\n * Averages the property indicates by the supplied property\n * expression across the array of FeeData\n * @param data The array of data to average\n * @param propertyExpression The expression for the property to\n * average\n * @returns The average of the supplied property across the array\n */\nconst averageProperty = (data: FeeData[], propertyExpression: (x: FeeData) => number | undefined) => {\n return listAverage(data.map(propertyExpression).filter(exists))\n}\n\n/**\n * Averages the supplied FeeData\n * @param input An array of FeeData or undefined\n * @returns The average of the supplied FeeData\n */\nexport const average = (input?: (FeeData | undefined)[]): FeeData => {\n const data = input?.filter(exists) || []\n const averaged: FeeData = {\n baseFee: averageProperty(data, (x) => x.baseFee),\n feePerGas: {\n high: averageProperty(data, (x) => x.feePerGas.high),\n low: averageProperty(data, (x) => x.feePerGas.low),\n medium: averageProperty(data, (x) => x.feePerGas.medium),\n veryHigh: averageProperty(data, (x) => x.feePerGas.veryHigh),\n },\n priorityFeePerGas: {\n high: averageProperty(data, (x) => x.priorityFeePerGas.high),\n low: averageProperty(data, (x) => x.priorityFeePerGas.low),\n medium: averageProperty(data, (x) => x.priorityFeePerGas.medium),\n veryHigh: averageProperty(data, (x) => x.priorityFeePerGas.veryHigh),\n },\n }\n return averaged\n}\n","import { EthereumGasBlocknativePayload, EthereumGasBlocknativeSchema } from '@xyo-network/blocknative-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasBlocknativePayload = (payload?: Payload | null): payload is EthereumGasBlocknativePayload => {\n return payload?.schema === EthereumGasBlocknativeSchema\n}\n","import { EthereumGasEtherchainV2Payload, EthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEtherchainV2Payload = (payload?: Payload | null): payload is EthereumGasEtherchainV2Payload => {\n return payload?.schema === EthereumGasEtherchainV2Schema\n}\n","import { EthereumGasEtherscanPayload, EthereumGasEtherscanSchema } from '@xyo-network/etherscan-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEtherscanPayload = (payload?: Payload | null): payload is EthereumGasEtherscanPayload => {\n return payload?.schema === EthereumGasEtherscanSchema\n}\n","import { EthereumGasEthersPayload, EthereumGasEthersSchema } from '@xyo-network/ethers-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEthersPayload = (payload?: Payload | null): payload is EthereumGasEthersPayload => {\n return payload?.schema === EthereumGasEthersSchema\n}\n","import { EthereumGasEthgasstationPayload, EthereumGasEthgasstationSchema } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEthgasstationPayload = (payload?: Payload | null): payload is EthereumGasEthgasstationPayload => {\n return payload?.schema === EthereumGasEthgasstationSchema\n}\n","/* eslint-disable sort-keys-fix/sort-keys-fix */\nimport { EthereumGasBlocknativePayload } from '@xyo-network/blocknative-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasBlocknativePayload): number | undefined => {\n return payload?.blockPrices?.[0]?.baseFeePerGas\n}\n\nconst getFeePerGas = (payload: EthereumGasBlocknativePayload): Partial<FeePerGas> => {\n const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence)\n const trend = linear([\n [0, sorted?.[0].price],\n [1, sorted?.[1].price],\n [2, sorted?.[2].price],\n [3, sorted?.[3].price],\n [4, sorted?.[4].price],\n ])\n const feePerGas: FeePerGas = {\n low: trend.predict(0.5)[1],\n medium: trend.predict(1.5)[1],\n high: trend.predict(2.5)[1],\n veryHigh: trend.predict(3.5)[1],\n }\n return feePerGas\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasBlocknativePayload): Partial<PriorityFeePerGas> => {\n const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence)\n const trend = linear([\n [0, sorted?.[0].maxPriorityFeePerGas],\n [1, sorted?.[1].maxPriorityFeePerGas],\n [2, sorted?.[2].maxPriorityFeePerGas],\n [3, sorted?.[3].maxPriorityFeePerGas],\n [4, sorted?.[4].maxPriorityFeePerGas],\n ])\n const priorityFeePerGas: PriorityFeePerGas = {\n low: trend.predict(0.5)[1],\n medium: trend.predict(1.5)[1],\n high: trend.predict(2.5)[1],\n veryHigh: trend.predict(3.5)[1],\n }\n return priorityFeePerGas\n}\n\nexport const transformGasFromBlocknative = (payload: EthereumGasBlocknativePayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEtherchainV2Payload } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'\nimport { FeeData, FeePerGas } from '@xyo-network/gas-price-payload-plugin'\n\nconst getFeePerGas = (payload: EthereumGasEtherchainV2Payload): Partial<FeePerGas> => {\n const { slow, standard, fast, rapid } = payload.data\n const low = slow / 1_000_000_000\n const medium = standard / 1_000_000_000\n const high = fast / 1_000_000_000\n const veryHigh = rapid / 1_000_000_000\n return { high, low, medium, veryHigh }\n}\n\nexport const transformGasFromEtherchainV2 = (payload: EthereumGasEtherchainV2Payload): FeeData => {\n const baseFee = undefined\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = {}\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEthersPayload } from '@xyo-network/ethers-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\n\nconst getBaseFee = (payload: EthereumGasEthersPayload): number | undefined => {\n const { gasPrice } = payload\n return gasPrice ? gasPrice / 1_000_000_000 : undefined\n}\n\nconst getFeePerGas = (payload: EthereumGasEthersPayload): Partial<FeePerGas> => {\n const { maxFeePerGas } = payload\n const high = maxFeePerGas ? maxFeePerGas / 1_000_000_000 : undefined\n return { high }\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasEthersPayload): Partial<PriorityFeePerGas> => {\n const { maxPriorityFeePerGas } = payload\n const high = maxPriorityFeePerGas ? maxPriorityFeePerGas / 1_000_000_000 : undefined\n return { high }\n}\n\nexport const transformGasFromEthers = (payload: EthereumGasEthersPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEtherscanPayload } from '@xyo-network/etherscan-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasEtherscanPayload): number | undefined => {\n const { suggestBaseFee } = payload.result\n return Number.parseFloat(suggestBaseFee)\n}\n\nconst getFeePerGas = (payload: EthereumGasEtherscanPayload): Partial<FeePerGas> => {\n const { FastGasPrice, ProposeGasPrice, SafeGasPrice } = payload.result\n const low = Number.parseFloat(SafeGasPrice)\n const medium = Number.parseFloat(ProposeGasPrice)\n const high = Number.parseFloat(FastGasPrice)\n const veryHigh = linear([\n [0, low],\n [1, medium],\n [2, high],\n ]).predict(3)[1]\n return { high, low, medium, veryHigh }\n}\n\nexport const transformGasFromEtherscan = (payload: EthereumGasEtherscanPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = {}\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","/* eslint-disable sort-keys-fix/sort-keys-fix */\nimport { EthereumGasEthgasstationPayload } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasEthgasstationPayload): number | undefined => {\n const { baseFee } = payload\n return baseFee\n}\n\nconst getFeePerGas = (payload: EthereumGasEthgasstationPayload): Partial<FeePerGas> => {\n const { standard: medium, fast: high, instant: veryHigh } = payload.gasPrice\n const trend = linear([\n [1, medium],\n [2, high],\n [3, veryHigh],\n ])\n const low = trend.predict(0)[1]\n return { low, medium, high, veryHigh }\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasEthgasstationPayload): Partial<PriorityFeePerGas> => {\n const { standard: medium, fast: high, instant: veryHigh } = payload.priorityFee\n const trend = linear([\n [1, medium],\n [2, high],\n [3, veryHigh],\n ])\n const low = trend.predict(0)[1]\n return { low, medium, high, veryHigh }\n}\n\nexport const transformGasFromEthgasstation = (payload: EthereumGasEthgasstationPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","export type EthereumGasDivinerQuerySchema = 'network.xyo.blockchain.ethereum.gas.diviner.query'\nexport const EthereumGasDivinerQuerySchema: EthereumGasDivinerQuerySchema = 'network.xyo.blockchain.ethereum.gas.diviner.query'\n\nexport type EthereumGasDivinerConfigSchema = 'network.xyo.blockchain.ethereum.gas.diviner.config'\nexport const EthereumGasDivinerConfigSchema: EthereumGasDivinerConfigSchema = 'network.xyo.blockchain.ethereum.gas.diviner.config'\n","import { EthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { EthereumGasDiviner } from './Diviner.js'\n\nexport const EthereumGasPlugin = () =>\n createPayloadSetDivinerPlugin<EthereumGasDiviner>(\n { required: { [EthereumGasSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await EthereumGasDiviner.create(params)) as EthereumGasDiviner\n },\n },\n )\n"],"mappings":"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","names":["import_gas_price_payload_plugin","getFeePerGas","getBaseFee","getFeePerGas","getPriorityFeePerGas","import_regression","getBaseFee","getFeePerGas","import_regression","getBaseFee","getFeePerGas","getPriorityFeePerGas","import_gas_price_payload_plugin"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Diviner.ts","../../src/lib/divineGas.ts","../../src/lib/average.ts","../../src/lib/identities/isEthereumGasBlocknativePayload.ts","../../src/lib/identities/isEthereumGasEtherchainV2Payload.ts","../../src/lib/identities/isEthereumGasEtherscanPayload.ts","../../src/lib/identities/isEthereumGasEthersPayload.ts","../../src/lib/identities/isEthereumGasEthgasstationPayload.ts","../../src/lib/transforms/transformGasFromBlocknative.ts","../../src/lib/transforms/transformGasFromEtherchainV2.ts","../../src/lib/transforms/transformGasFromEthers.ts","../../src/lib/transforms/transformGasFromEtherscan.ts","../../src/lib/transforms/transformGasFromEthgasstation.ts","../../src/Schema.ts","../../src/Plugin.ts"],"sourcesContent":["export * from './Diviner.ts'\n// eslint-disable-next-line import/no-default-export\nexport { EthereumGasPlugin as default, EthereumGasPlugin } from './Plugin.ts'\nexport * from './Schema.ts'\n","import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner-model'\nimport { EthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\n\nimport { divineGas } from './lib/index.ts'\nimport { EthereumGasDivinerConfigSchema } from './Schema.ts'\n\nexport type EthereumGasDivinerConfig = DivinerConfig<{ schema: EthereumGasDivinerConfigSchema }>\nexport type EthereumGasDivinerParams = DivinerParams<AnyConfigSchema<EthereumGasDivinerConfig>>\n\nexport class EthereumGasDiviner<TParams extends EthereumGasDivinerParams = EthereumGasDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, EthereumGasDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = EthereumGasDivinerConfigSchema\n static override targetSchema: string = EthereumGasSchema\n\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const cost = await divineGas(payloads ?? [])\n return [cost]\n }\n}\n","import { EthereumGasPayload, EthereumGasSchema, FeeData } from '@xyo-network/gas-price-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { average } from './average.ts'\nimport {\n isEthereumGasBlocknativePayload,\n isEthereumGasEtherchainV2Payload,\n isEthereumGasEtherscanPayload,\n isEthereumGasEthersPayload,\n isEthereumGasEthgasstationPayload,\n} from './identities/index.ts'\nimport {\n transformGasFromBlocknative,\n transformGasFromEtherchainV2,\n transformGasFromEthers,\n transformGasFromEtherscan,\n transformGasFromEthgasstation,\n} from './transforms/index.ts'\n\nexport const divineGas = async (payloads: Payload[]): Promise<EthereumGasPayload> => {\n const blocknative = payloads.filter(isEthereumGasBlocknativePayload).map(transformGasFromBlocknative)\n const etherchainV2 = payloads.filter(isEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2)\n const ethers = payloads.filter(isEthereumGasEthersPayload).map(transformGasFromEthers)\n const etherscan = payloads.filter(isEthereumGasEtherscanPayload).map(transformGasFromEtherscan)\n const ethgasstation = payloads.filter(isEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation)\n const transactionCosts: FeeData[] = [...blocknative, ...etherchainV2, ...ethers, ...etherscan, ...ethgasstation]\n const avg = average(transactionCosts)\n const timestamp = Date.now()\n const payload = await new PayloadBuilder<EthereumGasPayload>({ schema: EthereumGasSchema }).fields({ ...avg, timestamp }).build()\n return payload\n}\n","import { exists } from '@xylabs/exists'\nimport { FeeData } from '@xyo-network/gas-price-payload-plugin'\n\n/**\n * Averages an array of numbers\n * @param x Averages an array of numbers\n * @returns The average of the array of numbers or undefined if the\n * array is empty or undefined\n */\nconst listAverage = (x?: number[]) => (x?.length ? x.reduce((a, b) => a + b) / x.length : undefined)\n\n/**\n * Averages the property indicates by the supplied property\n * expression across the array of FeeData\n * @param data The array of data to average\n * @param propertyExpression The expression for the property to\n * average\n * @returns The average of the supplied property across the array\n */\nconst averageProperty = (data: FeeData[], propertyExpression: (x: FeeData) => number | undefined) => {\n return listAverage(data.map(propertyExpression).filter(exists))\n}\n\n/**\n * Averages the supplied FeeData\n * @param input An array of FeeData or undefined\n * @returns The average of the supplied FeeData\n */\nexport const average = (input?: (FeeData | undefined)[]): FeeData => {\n const data = input?.filter(exists) || []\n const averaged: FeeData = {\n baseFee: averageProperty(data, x => x.baseFee),\n feePerGas: {\n high: averageProperty(data, x => x.feePerGas.high),\n low: averageProperty(data, x => x.feePerGas.low),\n medium: averageProperty(data, x => x.feePerGas.medium),\n veryHigh: averageProperty(data, x => x.feePerGas.veryHigh),\n },\n priorityFeePerGas: {\n high: averageProperty(data, x => x.priorityFeePerGas.high),\n low: averageProperty(data, x => x.priorityFeePerGas.low),\n medium: averageProperty(data, x => x.priorityFeePerGas.medium),\n veryHigh: averageProperty(data, x => x.priorityFeePerGas.veryHigh),\n },\n }\n return averaged\n}\n","import { EthereumGasBlocknativePayload, EthereumGasBlocknativeSchema } from '@xyo-network/blocknative-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasBlocknativePayload = (payload?: Payload | null): payload is EthereumGasBlocknativePayload => {\n return payload?.schema === EthereumGasBlocknativeSchema\n}\n","import { EthereumGasEtherchainV2Payload, EthereumGasEtherchainV2Schema } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEtherchainV2Payload = (payload?: Payload | null): payload is EthereumGasEtherchainV2Payload => {\n return payload?.schema === EthereumGasEtherchainV2Schema\n}\n","import { EthereumGasEtherscanPayload, EthereumGasEtherscanSchema } from '@xyo-network/etherscan-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEtherscanPayload = (payload?: Payload | null): payload is EthereumGasEtherscanPayload => {\n return payload?.schema === EthereumGasEtherscanSchema\n}\n","import { EthereumGasEthersPayload, EthereumGasEthersSchema } from '@xyo-network/ethers-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEthersPayload = (payload?: Payload | null): payload is EthereumGasEthersPayload => {\n return payload?.schema === EthereumGasEthersSchema\n}\n","import { EthereumGasEthgasstationPayload, EthereumGasEthgasstationSchema } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const isEthereumGasEthgasstationPayload = (payload?: Payload | null): payload is EthereumGasEthgasstationPayload => {\n return payload?.schema === EthereumGasEthgasstationSchema\n}\n","import { EthereumGasBlocknativePayload } from '@xyo-network/blocknative-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasBlocknativePayload): number | undefined => {\n return payload?.blockPrices?.[0]?.baseFeePerGas\n}\n\nconst getFeePerGas = (payload: EthereumGasBlocknativePayload): Partial<FeePerGas> => {\n const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence)\n const trend = linear([\n [0, sorted?.[0].price],\n [1, sorted?.[1].price],\n [2, sorted?.[2].price],\n [3, sorted?.[3].price],\n [4, sorted?.[4].price],\n ])\n const feePerGas: FeePerGas = {\n low: trend.predict(0.5)[1],\n medium: trend.predict(1.5)[1],\n high: trend.predict(2.5)[1],\n veryHigh: trend.predict(3.5)[1],\n }\n return feePerGas\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasBlocknativePayload): Partial<PriorityFeePerGas> => {\n const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence)\n const trend = linear([\n [0, sorted?.[0].maxPriorityFeePerGas],\n [1, sorted?.[1].maxPriorityFeePerGas],\n [2, sorted?.[2].maxPriorityFeePerGas],\n [3, sorted?.[3].maxPriorityFeePerGas],\n [4, sorted?.[4].maxPriorityFeePerGas],\n ])\n const priorityFeePerGas: PriorityFeePerGas = {\n low: trend.predict(0.5)[1],\n medium: trend.predict(1.5)[1],\n high: trend.predict(2.5)[1],\n veryHigh: trend.predict(3.5)[1],\n }\n return priorityFeePerGas\n}\n\nexport const transformGasFromBlocknative = (payload: EthereumGasBlocknativePayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEtherchainV2Payload } from '@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins'\nimport { FeeData, FeePerGas } from '@xyo-network/gas-price-payload-plugin'\n\nconst getFeePerGas = (payload: EthereumGasEtherchainV2Payload): Partial<FeePerGas> => {\n const { slow, standard, fast, rapid } = payload.data\n const low = slow / 1_000_000_000\n const medium = standard / 1_000_000_000\n const high = fast / 1_000_000_000\n const veryHigh = rapid / 1_000_000_000\n return { high, low, medium, veryHigh }\n}\n\nexport const transformGasFromEtherchainV2 = (payload: EthereumGasEtherchainV2Payload): FeeData => {\n const baseFee = undefined\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = {}\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEthersPayload } from '@xyo-network/ethers-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\n\nconst getBaseFee = (payload: EthereumGasEthersPayload): number | undefined => {\n const { gasPrice } = payload\n return gasPrice ? gasPrice / 1_000_000_000 : undefined\n}\n\nconst getFeePerGas = (payload: EthereumGasEthersPayload): Partial<FeePerGas> => {\n const { maxFeePerGas } = payload\n const high = maxFeePerGas ? maxFeePerGas / 1_000_000_000 : undefined\n return { high }\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasEthersPayload): Partial<PriorityFeePerGas> => {\n const { maxPriorityFeePerGas } = payload\n const high = maxPriorityFeePerGas ? maxPriorityFeePerGas / 1_000_000_000 : undefined\n return { high }\n}\n\nexport const transformGasFromEthers = (payload: EthereumGasEthersPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEtherscanPayload } from '@xyo-network/etherscan-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasEtherscanPayload): number | undefined => {\n const { suggestBaseFee } = payload.result\n return Number.parseFloat(suggestBaseFee)\n}\n\nconst getFeePerGas = (payload: EthereumGasEtherscanPayload): Partial<FeePerGas> => {\n const { FastGasPrice, ProposeGasPrice, SafeGasPrice } = payload.result\n const low = Number.parseFloat(SafeGasPrice)\n const medium = Number.parseFloat(ProposeGasPrice)\n const high = Number.parseFloat(FastGasPrice)\n const veryHigh = linear([\n [0, low],\n [1, medium],\n [2, high],\n ]).predict(3)[1]\n return { high, low, medium, veryHigh }\n}\n\nexport const transformGasFromEtherscan = (payload: EthereumGasEtherscanPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = {}\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","import { EthereumGasEthgasstationPayload } from '@xyo-network/ethgasstation-ethereum-gas-payload-plugin'\nimport { FeeData, FeePerGas, PriorityFeePerGas } from '@xyo-network/gas-price-payload-plugin'\nimport { linear } from 'regression'\n\nconst getBaseFee = (payload: EthereumGasEthgasstationPayload): number | undefined => {\n const { baseFee } = payload\n return baseFee\n}\n\nconst getFeePerGas = (payload: EthereumGasEthgasstationPayload): Partial<FeePerGas> => {\n const { standard: medium, fast: high, instant: veryHigh } = payload.gasPrice\n const trend = linear([\n [1, medium],\n [2, high],\n [3, veryHigh],\n ])\n const low = trend.predict(0)[1]\n return { low, medium, high, veryHigh }\n}\n\nconst getPriorityFeePerGas = (payload: EthereumGasEthgasstationPayload): Partial<PriorityFeePerGas> => {\n const { standard: medium, fast: high, instant: veryHigh } = payload.priorityFee\n const trend = linear([\n [1, medium],\n [2, high],\n [3, veryHigh],\n ])\n const low = trend.predict(0)[1]\n return { low, medium, high, veryHigh }\n}\n\nexport const transformGasFromEthgasstation = (payload: EthereumGasEthgasstationPayload): FeeData => {\n const baseFee = getBaseFee(payload)\n const feePerGas = getFeePerGas(payload)\n const priorityFeePerGas = getPriorityFeePerGas(payload)\n return { baseFee, feePerGas, priorityFeePerGas }\n}\n","export type EthereumGasDivinerQuerySchema = 'network.xyo.blockchain.ethereum.gas.diviner.query'\nexport const EthereumGasDivinerQuerySchema: EthereumGasDivinerQuerySchema = 'network.xyo.blockchain.ethereum.gas.diviner.query'\n\nexport type EthereumGasDivinerConfigSchema = 'network.xyo.blockchain.ethereum.gas.diviner.config'\nexport const EthereumGasDivinerConfigSchema: EthereumGasDivinerConfigSchema = 'network.xyo.blockchain.ethereum.gas.diviner.config'\n","import { EthereumGasSchema } from '@xyo-network/gas-price-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { EthereumGasDiviner } from './Diviner.ts'\n\nexport const EthereumGasPlugin = () =>\n createPayloadSetDivinerPlugin<EthereumGasDiviner>(\n { required: { [EthereumGasSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await EthereumGasDiviner.create(params)) as EthereumGasDiviner\n },\n },\n )\n"],"mappings":"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","names":["import_gas_price_payload_plugin","listAverage","x","length","reduce","a","b","undefined","averageProperty","data","propertyExpression","map","filter","exists","average","input","averaged","baseFee","feePerGas","high","low","medium","veryHigh","priorityFeePerGas","isEthereumGasBlocknativePayload","payload","schema","EthereumGasBlocknativeSchema","isEthereumGasEtherchainV2Payload","payload","schema","EthereumGasEtherchainV2Schema","isEthereumGasEtherscanPayload","payload","schema","EthereumGasEtherscanSchema","isEthereumGasEthersPayload","payload","schema","EthereumGasEthersSchema","isEthereumGasEthgasstationPayload","payload","schema","EthereumGasEthgasstationSchema","getBaseFee","payload","blockPrices","baseFeePerGas","getFeePerGas","sorted","estimatedPrices","sort","a","b","confidence","trend","linear","price","feePerGas","low","predict","medium","high","veryHigh","getPriorityFeePerGas","maxPriorityFeePerGas","priorityFeePerGas","transformGasFromBlocknative","baseFee","getFeePerGas","payload","slow","standard","fast","rapid","data","low","medium","high","veryHigh","transformGasFromEtherchainV2","baseFee","undefined","feePerGas","priorityFeePerGas","getBaseFee","payload","gasPrice","undefined","getFeePerGas","maxFeePerGas","high","getPriorityFeePerGas","maxPriorityFeePerGas","transformGasFromEthers","baseFee","feePerGas","priorityFeePerGas","import_regression","getBaseFee","payload","suggestBaseFee","result","Number","parseFloat","getFeePerGas","FastGasPrice","ProposeGasPrice","SafeGasPrice","low","medium","high","veryHigh","linear","predict","transformGasFromEtherscan","baseFee","feePerGas","priorityFeePerGas","import_regression","getBaseFee","payload","baseFee","getFeePerGas","standard","medium","fast","high","instant","veryHigh","gasPrice","trend","linear","low","predict","getPriorityFeePerGas","priorityFee","transformGasFromEthgasstation","feePerGas","priorityFeePerGas","divineGas","payloads","blocknative","filter","isEthereumGasBlocknativePayload","map","transformGasFromBlocknative","etherchainV2","isEthereumGasEtherchainV2Payload","transformGasFromEtherchainV2","ethers","isEthereumGasEthersPayload","transformGasFromEthers","etherscan","isEthereumGasEtherscanPayload","transformGasFromEtherscan","ethgasstation","isEthereumGasEthgasstationPayload","transformGasFromEthgasstation","transactionCosts","avg","average","timestamp","Date","now","payload","PayloadBuilder","schema","EthereumGasSchema","fields","build","EthereumGasDivinerQuerySchema","EthereumGasDivinerConfigSchema","EthereumGasDiviner","AbstractDiviner","configSchemas","EthereumGasDivinerConfigSchema","defaultConfigSchema","targetSchema","EthereumGasSchema","divineHandler","payloads","cost","divineGas","import_gas_price_payload_plugin","EthereumGasPlugin","createPayloadSetDivinerPlugin","required","EthereumGasSchema","schema","PayloadSetSchema","diviner","params","EthereumGasDiviner","create"]}
|
package/dist/browser/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Diviner.
|
|
2
|
-
export { EthereumGasPlugin as default, EthereumGasPlugin } from './Plugin.
|
|
3
|
-
export * from './Schema.
|
|
1
|
+
export * from './Diviner.ts';
|
|
2
|
+
export { EthereumGasPlugin as default, EthereumGasPlugin } from './Plugin.ts';
|
|
3
|
+
export * from './Schema.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/browser/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Diviner.
|
|
2
|
-
export { EthereumGasPlugin as default, EthereumGasPlugin } from './Plugin.
|
|
3
|
-
export * from './Schema.
|
|
1
|
+
export * from './Diviner.ts';
|
|
2
|
+
export { EthereumGasPlugin as default, EthereumGasPlugin } from './Plugin.ts';
|
|
3
|
+
export * from './Schema.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Diviner.
|
|
2
|
-
export { EthereumGasPlugin as default, EthereumGasPlugin } from './Plugin.
|
|
3
|
-
export * from './Schema.
|
|
1
|
+
export * from './Diviner.ts';
|
|
2
|
+
export { EthereumGasPlugin as default, EthereumGasPlugin } from './Plugin.ts';
|
|
3
|
+
export * from './Schema.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
1
4
|
// src/Diviner.ts
|
|
2
5
|
import { AbstractDiviner } from "@xyo-network/diviner-abstract";
|
|
3
6
|
import { EthereumGasSchema as EthereumGasSchema2 } from "@xyo-network/gas-price-payload-plugin";
|
|
@@ -8,11 +11,11 @@ import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
|
8
11
|
|
|
9
12
|
// src/lib/average.ts
|
|
10
13
|
import { exists } from "@xylabs/exists";
|
|
11
|
-
var listAverage = (x) => x?.length ? x.reduce((a, b) => a + b) / x.length : void 0;
|
|
12
|
-
var averageProperty = (data, propertyExpression) => {
|
|
14
|
+
var listAverage = /* @__PURE__ */ __name((x) => x?.length ? x.reduce((a, b) => a + b) / x.length : void 0, "listAverage");
|
|
15
|
+
var averageProperty = /* @__PURE__ */ __name((data, propertyExpression) => {
|
|
13
16
|
return listAverage(data.map(propertyExpression).filter(exists));
|
|
14
|
-
};
|
|
15
|
-
var average = (input) => {
|
|
17
|
+
}, "averageProperty");
|
|
18
|
+
var average = /* @__PURE__ */ __name((input) => {
|
|
16
19
|
const data = input?.filter(exists) || [];
|
|
17
20
|
const averaged = {
|
|
18
21
|
baseFee: averageProperty(data, (x) => x.baseFee),
|
|
@@ -30,51 +33,66 @@ var average = (input) => {
|
|
|
30
33
|
}
|
|
31
34
|
};
|
|
32
35
|
return averaged;
|
|
33
|
-
};
|
|
36
|
+
}, "average");
|
|
34
37
|
|
|
35
38
|
// src/lib/identities/isEthereumGasBlocknativePayload.ts
|
|
36
39
|
import { EthereumGasBlocknativeSchema } from "@xyo-network/blocknative-ethereum-gas-payload-plugin";
|
|
37
|
-
var isEthereumGasBlocknativePayload = (payload) => {
|
|
40
|
+
var isEthereumGasBlocknativePayload = /* @__PURE__ */ __name((payload) => {
|
|
38
41
|
return payload?.schema === EthereumGasBlocknativeSchema;
|
|
39
|
-
};
|
|
42
|
+
}, "isEthereumGasBlocknativePayload");
|
|
40
43
|
|
|
41
44
|
// src/lib/identities/isEthereumGasEtherchainV2Payload.ts
|
|
42
45
|
import { EthereumGasEtherchainV2Schema } from "@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins";
|
|
43
|
-
var isEthereumGasEtherchainV2Payload = (payload) => {
|
|
46
|
+
var isEthereumGasEtherchainV2Payload = /* @__PURE__ */ __name((payload) => {
|
|
44
47
|
return payload?.schema === EthereumGasEtherchainV2Schema;
|
|
45
|
-
};
|
|
48
|
+
}, "isEthereumGasEtherchainV2Payload");
|
|
46
49
|
|
|
47
50
|
// src/lib/identities/isEthereumGasEtherscanPayload.ts
|
|
48
51
|
import { EthereumGasEtherscanSchema } from "@xyo-network/etherscan-ethereum-gas-payload-plugin";
|
|
49
|
-
var isEthereumGasEtherscanPayload = (payload) => {
|
|
52
|
+
var isEthereumGasEtherscanPayload = /* @__PURE__ */ __name((payload) => {
|
|
50
53
|
return payload?.schema === EthereumGasEtherscanSchema;
|
|
51
|
-
};
|
|
54
|
+
}, "isEthereumGasEtherscanPayload");
|
|
52
55
|
|
|
53
56
|
// src/lib/identities/isEthereumGasEthersPayload.ts
|
|
54
57
|
import { EthereumGasEthersSchema } from "@xyo-network/ethers-ethereum-gas-payload-plugin";
|
|
55
|
-
var isEthereumGasEthersPayload = (payload) => {
|
|
58
|
+
var isEthereumGasEthersPayload = /* @__PURE__ */ __name((payload) => {
|
|
56
59
|
return payload?.schema === EthereumGasEthersSchema;
|
|
57
|
-
};
|
|
60
|
+
}, "isEthereumGasEthersPayload");
|
|
58
61
|
|
|
59
62
|
// src/lib/identities/isEthereumGasEthgasstationPayload.ts
|
|
60
63
|
import { EthereumGasEthgasstationSchema } from "@xyo-network/ethgasstation-ethereum-gas-payload-plugin";
|
|
61
|
-
var isEthereumGasEthgasstationPayload = (payload) => {
|
|
64
|
+
var isEthereumGasEthgasstationPayload = /* @__PURE__ */ __name((payload) => {
|
|
62
65
|
return payload?.schema === EthereumGasEthgasstationSchema;
|
|
63
|
-
};
|
|
66
|
+
}, "isEthereumGasEthgasstationPayload");
|
|
64
67
|
|
|
65
68
|
// src/lib/transforms/transformGasFromBlocknative.ts
|
|
66
69
|
import { linear } from "regression";
|
|
67
|
-
var getBaseFee = (payload) => {
|
|
70
|
+
var getBaseFee = /* @__PURE__ */ __name((payload) => {
|
|
68
71
|
return payload?.blockPrices?.[0]?.baseFeePerGas;
|
|
69
|
-
};
|
|
70
|
-
var getFeePerGas = (payload) => {
|
|
72
|
+
}, "getBaseFee");
|
|
73
|
+
var getFeePerGas = /* @__PURE__ */ __name((payload) => {
|
|
71
74
|
const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence);
|
|
72
75
|
const trend = linear([
|
|
73
|
-
[
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
[
|
|
76
|
+
[
|
|
77
|
+
0,
|
|
78
|
+
sorted?.[0].price
|
|
79
|
+
],
|
|
80
|
+
[
|
|
81
|
+
1,
|
|
82
|
+
sorted?.[1].price
|
|
83
|
+
],
|
|
84
|
+
[
|
|
85
|
+
2,
|
|
86
|
+
sorted?.[2].price
|
|
87
|
+
],
|
|
88
|
+
[
|
|
89
|
+
3,
|
|
90
|
+
sorted?.[3].price
|
|
91
|
+
],
|
|
92
|
+
[
|
|
93
|
+
4,
|
|
94
|
+
sorted?.[4].price
|
|
95
|
+
]
|
|
78
96
|
]);
|
|
79
97
|
const feePerGas = {
|
|
80
98
|
low: trend.predict(0.5)[1],
|
|
@@ -83,15 +101,30 @@ var getFeePerGas = (payload) => {
|
|
|
83
101
|
veryHigh: trend.predict(3.5)[1]
|
|
84
102
|
};
|
|
85
103
|
return feePerGas;
|
|
86
|
-
};
|
|
87
|
-
var getPriorityFeePerGas = (payload) => {
|
|
104
|
+
}, "getFeePerGas");
|
|
105
|
+
var getPriorityFeePerGas = /* @__PURE__ */ __name((payload) => {
|
|
88
106
|
const sorted = payload.blockPrices?.[0].estimatedPrices?.sort((a, b) => a.confidence - b.confidence);
|
|
89
107
|
const trend = linear([
|
|
90
|
-
[
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
[
|
|
108
|
+
[
|
|
109
|
+
0,
|
|
110
|
+
sorted?.[0].maxPriorityFeePerGas
|
|
111
|
+
],
|
|
112
|
+
[
|
|
113
|
+
1,
|
|
114
|
+
sorted?.[1].maxPriorityFeePerGas
|
|
115
|
+
],
|
|
116
|
+
[
|
|
117
|
+
2,
|
|
118
|
+
sorted?.[2].maxPriorityFeePerGas
|
|
119
|
+
],
|
|
120
|
+
[
|
|
121
|
+
3,
|
|
122
|
+
sorted?.[3].maxPriorityFeePerGas
|
|
123
|
+
],
|
|
124
|
+
[
|
|
125
|
+
4,
|
|
126
|
+
sorted?.[4].maxPriorityFeePerGas
|
|
127
|
+
]
|
|
95
128
|
]);
|
|
96
129
|
const priorityFeePerGas = {
|
|
97
130
|
low: trend.predict(0.5)[1],
|
|
@@ -100,123 +133,205 @@ var getPriorityFeePerGas = (payload) => {
|
|
|
100
133
|
veryHigh: trend.predict(3.5)[1]
|
|
101
134
|
};
|
|
102
135
|
return priorityFeePerGas;
|
|
103
|
-
};
|
|
104
|
-
var transformGasFromBlocknative = (payload) => {
|
|
136
|
+
}, "getPriorityFeePerGas");
|
|
137
|
+
var transformGasFromBlocknative = /* @__PURE__ */ __name((payload) => {
|
|
105
138
|
const baseFee = getBaseFee(payload);
|
|
106
139
|
const feePerGas = getFeePerGas(payload);
|
|
107
140
|
const priorityFeePerGas = getPriorityFeePerGas(payload);
|
|
108
|
-
return {
|
|
109
|
-
|
|
141
|
+
return {
|
|
142
|
+
baseFee,
|
|
143
|
+
feePerGas,
|
|
144
|
+
priorityFeePerGas
|
|
145
|
+
};
|
|
146
|
+
}, "transformGasFromBlocknative");
|
|
110
147
|
|
|
111
148
|
// src/lib/transforms/transformGasFromEtherchainV2.ts
|
|
112
|
-
var getFeePerGas2 = (payload) => {
|
|
149
|
+
var getFeePerGas2 = /* @__PURE__ */ __name((payload) => {
|
|
113
150
|
const { slow, standard, fast, rapid } = payload.data;
|
|
114
151
|
const low = slow / 1e9;
|
|
115
152
|
const medium = standard / 1e9;
|
|
116
153
|
const high = fast / 1e9;
|
|
117
154
|
const veryHigh = rapid / 1e9;
|
|
118
|
-
return {
|
|
119
|
-
|
|
120
|
-
|
|
155
|
+
return {
|
|
156
|
+
high,
|
|
157
|
+
low,
|
|
158
|
+
medium,
|
|
159
|
+
veryHigh
|
|
160
|
+
};
|
|
161
|
+
}, "getFeePerGas");
|
|
162
|
+
var transformGasFromEtherchainV2 = /* @__PURE__ */ __name((payload) => {
|
|
121
163
|
const baseFee = void 0;
|
|
122
164
|
const feePerGas = getFeePerGas2(payload);
|
|
123
165
|
const priorityFeePerGas = {};
|
|
124
|
-
return {
|
|
125
|
-
|
|
166
|
+
return {
|
|
167
|
+
baseFee,
|
|
168
|
+
feePerGas,
|
|
169
|
+
priorityFeePerGas
|
|
170
|
+
};
|
|
171
|
+
}, "transformGasFromEtherchainV2");
|
|
126
172
|
|
|
127
173
|
// src/lib/transforms/transformGasFromEthers.ts
|
|
128
|
-
var getBaseFee2 = (payload) => {
|
|
174
|
+
var getBaseFee2 = /* @__PURE__ */ __name((payload) => {
|
|
129
175
|
const { gasPrice } = payload;
|
|
130
176
|
return gasPrice ? gasPrice / 1e9 : void 0;
|
|
131
|
-
};
|
|
132
|
-
var getFeePerGas3 = (payload) => {
|
|
177
|
+
}, "getBaseFee");
|
|
178
|
+
var getFeePerGas3 = /* @__PURE__ */ __name((payload) => {
|
|
133
179
|
const { maxFeePerGas } = payload;
|
|
134
180
|
const high = maxFeePerGas ? maxFeePerGas / 1e9 : void 0;
|
|
135
|
-
return {
|
|
136
|
-
|
|
137
|
-
|
|
181
|
+
return {
|
|
182
|
+
high
|
|
183
|
+
};
|
|
184
|
+
}, "getFeePerGas");
|
|
185
|
+
var getPriorityFeePerGas2 = /* @__PURE__ */ __name((payload) => {
|
|
138
186
|
const { maxPriorityFeePerGas } = payload;
|
|
139
187
|
const high = maxPriorityFeePerGas ? maxPriorityFeePerGas / 1e9 : void 0;
|
|
140
|
-
return {
|
|
141
|
-
|
|
142
|
-
|
|
188
|
+
return {
|
|
189
|
+
high
|
|
190
|
+
};
|
|
191
|
+
}, "getPriorityFeePerGas");
|
|
192
|
+
var transformGasFromEthers = /* @__PURE__ */ __name((payload) => {
|
|
143
193
|
const baseFee = getBaseFee2(payload);
|
|
144
194
|
const feePerGas = getFeePerGas3(payload);
|
|
145
195
|
const priorityFeePerGas = getPriorityFeePerGas2(payload);
|
|
146
|
-
return {
|
|
147
|
-
|
|
196
|
+
return {
|
|
197
|
+
baseFee,
|
|
198
|
+
feePerGas,
|
|
199
|
+
priorityFeePerGas
|
|
200
|
+
};
|
|
201
|
+
}, "transformGasFromEthers");
|
|
148
202
|
|
|
149
203
|
// src/lib/transforms/transformGasFromEtherscan.ts
|
|
150
204
|
import { linear as linear2 } from "regression";
|
|
151
|
-
var getBaseFee3 = (payload) => {
|
|
205
|
+
var getBaseFee3 = /* @__PURE__ */ __name((payload) => {
|
|
152
206
|
const { suggestBaseFee } = payload.result;
|
|
153
207
|
return Number.parseFloat(suggestBaseFee);
|
|
154
|
-
};
|
|
155
|
-
var getFeePerGas4 = (payload) => {
|
|
208
|
+
}, "getBaseFee");
|
|
209
|
+
var getFeePerGas4 = /* @__PURE__ */ __name((payload) => {
|
|
156
210
|
const { FastGasPrice, ProposeGasPrice, SafeGasPrice } = payload.result;
|
|
157
211
|
const low = Number.parseFloat(SafeGasPrice);
|
|
158
212
|
const medium = Number.parseFloat(ProposeGasPrice);
|
|
159
213
|
const high = Number.parseFloat(FastGasPrice);
|
|
160
214
|
const veryHigh = linear2([
|
|
161
|
-
[
|
|
162
|
-
|
|
163
|
-
|
|
215
|
+
[
|
|
216
|
+
0,
|
|
217
|
+
low
|
|
218
|
+
],
|
|
219
|
+
[
|
|
220
|
+
1,
|
|
221
|
+
medium
|
|
222
|
+
],
|
|
223
|
+
[
|
|
224
|
+
2,
|
|
225
|
+
high
|
|
226
|
+
]
|
|
164
227
|
]).predict(3)[1];
|
|
165
|
-
return {
|
|
166
|
-
|
|
167
|
-
|
|
228
|
+
return {
|
|
229
|
+
high,
|
|
230
|
+
low,
|
|
231
|
+
medium,
|
|
232
|
+
veryHigh
|
|
233
|
+
};
|
|
234
|
+
}, "getFeePerGas");
|
|
235
|
+
var transformGasFromEtherscan = /* @__PURE__ */ __name((payload) => {
|
|
168
236
|
const baseFee = getBaseFee3(payload);
|
|
169
237
|
const feePerGas = getFeePerGas4(payload);
|
|
170
238
|
const priorityFeePerGas = {};
|
|
171
|
-
return {
|
|
172
|
-
|
|
239
|
+
return {
|
|
240
|
+
baseFee,
|
|
241
|
+
feePerGas,
|
|
242
|
+
priorityFeePerGas
|
|
243
|
+
};
|
|
244
|
+
}, "transformGasFromEtherscan");
|
|
173
245
|
|
|
174
246
|
// src/lib/transforms/transformGasFromEthgasstation.ts
|
|
175
247
|
import { linear as linear3 } from "regression";
|
|
176
|
-
var getBaseFee4 = (payload) => {
|
|
248
|
+
var getBaseFee4 = /* @__PURE__ */ __name((payload) => {
|
|
177
249
|
const { baseFee } = payload;
|
|
178
250
|
return baseFee;
|
|
179
|
-
};
|
|
180
|
-
var getFeePerGas5 = (payload) => {
|
|
251
|
+
}, "getBaseFee");
|
|
252
|
+
var getFeePerGas5 = /* @__PURE__ */ __name((payload) => {
|
|
181
253
|
const { standard: medium, fast: high, instant: veryHigh } = payload.gasPrice;
|
|
182
254
|
const trend = linear3([
|
|
183
|
-
[
|
|
184
|
-
|
|
185
|
-
|
|
255
|
+
[
|
|
256
|
+
1,
|
|
257
|
+
medium
|
|
258
|
+
],
|
|
259
|
+
[
|
|
260
|
+
2,
|
|
261
|
+
high
|
|
262
|
+
],
|
|
263
|
+
[
|
|
264
|
+
3,
|
|
265
|
+
veryHigh
|
|
266
|
+
]
|
|
186
267
|
]);
|
|
187
268
|
const low = trend.predict(0)[1];
|
|
188
|
-
return {
|
|
189
|
-
|
|
190
|
-
|
|
269
|
+
return {
|
|
270
|
+
low,
|
|
271
|
+
medium,
|
|
272
|
+
high,
|
|
273
|
+
veryHigh
|
|
274
|
+
};
|
|
275
|
+
}, "getFeePerGas");
|
|
276
|
+
var getPriorityFeePerGas3 = /* @__PURE__ */ __name((payload) => {
|
|
191
277
|
const { standard: medium, fast: high, instant: veryHigh } = payload.priorityFee;
|
|
192
278
|
const trend = linear3([
|
|
193
|
-
[
|
|
194
|
-
|
|
195
|
-
|
|
279
|
+
[
|
|
280
|
+
1,
|
|
281
|
+
medium
|
|
282
|
+
],
|
|
283
|
+
[
|
|
284
|
+
2,
|
|
285
|
+
high
|
|
286
|
+
],
|
|
287
|
+
[
|
|
288
|
+
3,
|
|
289
|
+
veryHigh
|
|
290
|
+
]
|
|
196
291
|
]);
|
|
197
292
|
const low = trend.predict(0)[1];
|
|
198
|
-
return {
|
|
199
|
-
|
|
200
|
-
|
|
293
|
+
return {
|
|
294
|
+
low,
|
|
295
|
+
medium,
|
|
296
|
+
high,
|
|
297
|
+
veryHigh
|
|
298
|
+
};
|
|
299
|
+
}, "getPriorityFeePerGas");
|
|
300
|
+
var transformGasFromEthgasstation = /* @__PURE__ */ __name((payload) => {
|
|
201
301
|
const baseFee = getBaseFee4(payload);
|
|
202
302
|
const feePerGas = getFeePerGas5(payload);
|
|
203
303
|
const priorityFeePerGas = getPriorityFeePerGas3(payload);
|
|
204
|
-
return {
|
|
205
|
-
|
|
304
|
+
return {
|
|
305
|
+
baseFee,
|
|
306
|
+
feePerGas,
|
|
307
|
+
priorityFeePerGas
|
|
308
|
+
};
|
|
309
|
+
}, "transformGasFromEthgasstation");
|
|
206
310
|
|
|
207
311
|
// src/lib/divineGas.ts
|
|
208
|
-
var divineGas = async (payloads) => {
|
|
312
|
+
var divineGas = /* @__PURE__ */ __name(async (payloads) => {
|
|
209
313
|
const blocknative = payloads.filter(isEthereumGasBlocknativePayload).map(transformGasFromBlocknative);
|
|
210
314
|
const etherchainV2 = payloads.filter(isEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2);
|
|
211
315
|
const ethers = payloads.filter(isEthereumGasEthersPayload).map(transformGasFromEthers);
|
|
212
316
|
const etherscan = payloads.filter(isEthereumGasEtherscanPayload).map(transformGasFromEtherscan);
|
|
213
317
|
const ethgasstation = payloads.filter(isEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation);
|
|
214
|
-
const transactionCosts = [
|
|
318
|
+
const transactionCosts = [
|
|
319
|
+
...blocknative,
|
|
320
|
+
...etherchainV2,
|
|
321
|
+
...ethers,
|
|
322
|
+
...etherscan,
|
|
323
|
+
...ethgasstation
|
|
324
|
+
];
|
|
215
325
|
const avg = average(transactionCosts);
|
|
216
326
|
const timestamp = Date.now();
|
|
217
|
-
const payload = await new PayloadBuilder({
|
|
327
|
+
const payload = await new PayloadBuilder({
|
|
328
|
+
schema: EthereumGasSchema
|
|
329
|
+
}).fields({
|
|
330
|
+
...avg,
|
|
331
|
+
timestamp
|
|
332
|
+
}).build();
|
|
218
333
|
return payload;
|
|
219
|
-
};
|
|
334
|
+
}, "divineGas");
|
|
220
335
|
|
|
221
336
|
// src/Schema.ts
|
|
222
337
|
var EthereumGasDivinerQuerySchema = "network.xyo.blockchain.ethereum.gas.diviner.query";
|
|
@@ -224,12 +339,20 @@ var EthereumGasDivinerConfigSchema = "network.xyo.blockchain.ethereum.gas.divine
|
|
|
224
339
|
|
|
225
340
|
// src/Diviner.ts
|
|
226
341
|
var EthereumGasDiviner = class extends AbstractDiviner {
|
|
227
|
-
static
|
|
342
|
+
static {
|
|
343
|
+
__name(this, "EthereumGasDiviner");
|
|
344
|
+
}
|
|
345
|
+
static configSchemas = [
|
|
346
|
+
...super.configSchemas,
|
|
347
|
+
EthereumGasDivinerConfigSchema
|
|
348
|
+
];
|
|
228
349
|
static defaultConfigSchema = EthereumGasDivinerConfigSchema;
|
|
229
350
|
static targetSchema = EthereumGasSchema2;
|
|
230
351
|
async divineHandler(payloads) {
|
|
231
352
|
const cost = await divineGas(payloads ?? []);
|
|
232
|
-
return [
|
|
353
|
+
return [
|
|
354
|
+
cost
|
|
355
|
+
];
|
|
233
356
|
}
|
|
234
357
|
};
|
|
235
358
|
|
|
@@ -237,14 +360,16 @@ var EthereumGasDiviner = class extends AbstractDiviner {
|
|
|
237
360
|
import { EthereumGasSchema as EthereumGasSchema3 } from "@xyo-network/gas-price-payload-plugin";
|
|
238
361
|
import { PayloadSetSchema } from "@xyo-network/payload-model";
|
|
239
362
|
import { createPayloadSetDivinerPlugin } from "@xyo-network/payloadset-plugin";
|
|
240
|
-
var EthereumGasPlugin = () => createPayloadSetDivinerPlugin(
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
);
|
|
363
|
+
var EthereumGasPlugin = /* @__PURE__ */ __name(() => createPayloadSetDivinerPlugin({
|
|
364
|
+
required: {
|
|
365
|
+
[EthereumGasSchema3]: 1
|
|
366
|
+
},
|
|
367
|
+
schema: PayloadSetSchema
|
|
368
|
+
}, {
|
|
369
|
+
diviner: /* @__PURE__ */ __name(async (params) => {
|
|
370
|
+
return await EthereumGasDiviner.create(params);
|
|
371
|
+
}, "diviner")
|
|
372
|
+
}), "EthereumGasPlugin");
|
|
248
373
|
export {
|
|
249
374
|
EthereumGasDiviner,
|
|
250
375
|
EthereumGasDivinerConfigSchema,
|
|
@@ -252,4 +377,4 @@ export {
|
|
|
252
377
|
EthereumGasPlugin,
|
|
253
378
|
EthereumGasPlugin as default
|
|
254
379
|
};
|
|
255
|
-
//# sourceMappingURL=index.
|
|
380
|
+
//# sourceMappingURL=index.mjs.map
|