@xyo-network/gas-price-plugin 2.99.3 → 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 -26
- 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
package/dist/node/index.cjs.map
CHANGED
|
@@ -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","divineHandler","payloads","cost","divineGas","configSchemas","EthereumGasDivinerConfigSchema","defaultConfigSchema","targetSchema","EthereumGasSchema","import_gas_price_payload_plugin","EthereumGasPlugin","createPayloadSetDivinerPlugin","required","EthereumGasSchema","schema","PayloadSetSchema","diviner","params","EthereumGasDiviner","create"]}
|
package/dist/node/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/node/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/node/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,11 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
+
var __reflectGet = Reflect.get;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
|
+
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
8
|
+
|
|
1
9
|
// src/Diviner.ts
|
|
2
10
|
import { AbstractDiviner } from "@xyo-network/diviner-abstract";
|
|
3
11
|
import { EthereumGasSchema as EthereumGasSchema2 } from "@xyo-network/gas-price-payload-plugin";
|
|
@@ -8,11 +16,11 @@ import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
|
8
16
|
|
|
9
17
|
// src/lib/average.ts
|
|
10
18
|
import { exists } from "@xylabs/exists";
|
|
11
|
-
var listAverage = (x) => (x == null ? void 0 : x.length) ? x.reduce((a, b) => a + b) / x.length : void 0;
|
|
12
|
-
var averageProperty = (data, propertyExpression) => {
|
|
19
|
+
var listAverage = /* @__PURE__ */ __name((x) => (x == null ? void 0 : x.length) ? x.reduce((a, b) => a + b) / x.length : void 0, "listAverage");
|
|
20
|
+
var averageProperty = /* @__PURE__ */ __name((data, propertyExpression) => {
|
|
13
21
|
return listAverage(data.map(propertyExpression).filter(exists));
|
|
14
|
-
};
|
|
15
|
-
var average = (input) => {
|
|
22
|
+
}, "averageProperty");
|
|
23
|
+
var average = /* @__PURE__ */ __name((input) => {
|
|
16
24
|
const data = (input == null ? void 0 : input.filter(exists)) || [];
|
|
17
25
|
const averaged = {
|
|
18
26
|
baseFee: averageProperty(data, (x) => x.baseFee),
|
|
@@ -30,53 +38,68 @@ var average = (input) => {
|
|
|
30
38
|
}
|
|
31
39
|
};
|
|
32
40
|
return averaged;
|
|
33
|
-
};
|
|
41
|
+
}, "average");
|
|
34
42
|
|
|
35
43
|
// src/lib/identities/isEthereumGasBlocknativePayload.ts
|
|
36
44
|
import { EthereumGasBlocknativeSchema } from "@xyo-network/blocknative-ethereum-gas-payload-plugin";
|
|
37
|
-
var isEthereumGasBlocknativePayload = (payload) => {
|
|
45
|
+
var isEthereumGasBlocknativePayload = /* @__PURE__ */ __name((payload) => {
|
|
38
46
|
return (payload == null ? void 0 : payload.schema) === EthereumGasBlocknativeSchema;
|
|
39
|
-
};
|
|
47
|
+
}, "isEthereumGasBlocknativePayload");
|
|
40
48
|
|
|
41
49
|
// src/lib/identities/isEthereumGasEtherchainV2Payload.ts
|
|
42
50
|
import { EthereumGasEtherchainV2Schema } from "@xyo-network/etherchain-gas-ethereum-blockchain-payload-plugins";
|
|
43
|
-
var isEthereumGasEtherchainV2Payload = (payload) => {
|
|
51
|
+
var isEthereumGasEtherchainV2Payload = /* @__PURE__ */ __name((payload) => {
|
|
44
52
|
return (payload == null ? void 0 : payload.schema) === EthereumGasEtherchainV2Schema;
|
|
45
|
-
};
|
|
53
|
+
}, "isEthereumGasEtherchainV2Payload");
|
|
46
54
|
|
|
47
55
|
// src/lib/identities/isEthereumGasEtherscanPayload.ts
|
|
48
56
|
import { EthereumGasEtherscanSchema } from "@xyo-network/etherscan-ethereum-gas-payload-plugin";
|
|
49
|
-
var isEthereumGasEtherscanPayload = (payload) => {
|
|
57
|
+
var isEthereumGasEtherscanPayload = /* @__PURE__ */ __name((payload) => {
|
|
50
58
|
return (payload == null ? void 0 : payload.schema) === EthereumGasEtherscanSchema;
|
|
51
|
-
};
|
|
59
|
+
}, "isEthereumGasEtherscanPayload");
|
|
52
60
|
|
|
53
61
|
// src/lib/identities/isEthereumGasEthersPayload.ts
|
|
54
62
|
import { EthereumGasEthersSchema } from "@xyo-network/ethers-ethereum-gas-payload-plugin";
|
|
55
|
-
var isEthereumGasEthersPayload = (payload) => {
|
|
63
|
+
var isEthereumGasEthersPayload = /* @__PURE__ */ __name((payload) => {
|
|
56
64
|
return (payload == null ? void 0 : payload.schema) === EthereumGasEthersSchema;
|
|
57
|
-
};
|
|
65
|
+
}, "isEthereumGasEthersPayload");
|
|
58
66
|
|
|
59
67
|
// src/lib/identities/isEthereumGasEthgasstationPayload.ts
|
|
60
68
|
import { EthereumGasEthgasstationSchema } from "@xyo-network/ethgasstation-ethereum-gas-payload-plugin";
|
|
61
|
-
var isEthereumGasEthgasstationPayload = (payload) => {
|
|
69
|
+
var isEthereumGasEthgasstationPayload = /* @__PURE__ */ __name((payload) => {
|
|
62
70
|
return (payload == null ? void 0 : payload.schema) === EthereumGasEthgasstationSchema;
|
|
63
|
-
};
|
|
71
|
+
}, "isEthereumGasEthgasstationPayload");
|
|
64
72
|
|
|
65
73
|
// src/lib/transforms/transformGasFromBlocknative.ts
|
|
66
74
|
import { linear } from "regression";
|
|
67
|
-
var getBaseFee = (payload) => {
|
|
75
|
+
var getBaseFee = /* @__PURE__ */ __name((payload) => {
|
|
68
76
|
var _a, _b;
|
|
69
77
|
return (_b = (_a = payload == null ? void 0 : payload.blockPrices) == null ? void 0 : _a[0]) == null ? void 0 : _b.baseFeePerGas;
|
|
70
|
-
};
|
|
71
|
-
var getFeePerGas = (payload) => {
|
|
78
|
+
}, "getBaseFee");
|
|
79
|
+
var getFeePerGas = /* @__PURE__ */ __name((payload) => {
|
|
72
80
|
var _a, _b;
|
|
73
81
|
const sorted = (_b = (_a = payload.blockPrices) == null ? void 0 : _a[0].estimatedPrices) == null ? void 0 : _b.sort((a, b) => a.confidence - b.confidence);
|
|
74
82
|
const trend = linear([
|
|
75
|
-
[
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
[
|
|
83
|
+
[
|
|
84
|
+
0,
|
|
85
|
+
sorted == null ? void 0 : sorted[0].price
|
|
86
|
+
],
|
|
87
|
+
[
|
|
88
|
+
1,
|
|
89
|
+
sorted == null ? void 0 : sorted[1].price
|
|
90
|
+
],
|
|
91
|
+
[
|
|
92
|
+
2,
|
|
93
|
+
sorted == null ? void 0 : sorted[2].price
|
|
94
|
+
],
|
|
95
|
+
[
|
|
96
|
+
3,
|
|
97
|
+
sorted == null ? void 0 : sorted[3].price
|
|
98
|
+
],
|
|
99
|
+
[
|
|
100
|
+
4,
|
|
101
|
+
sorted == null ? void 0 : sorted[4].price
|
|
102
|
+
]
|
|
80
103
|
]);
|
|
81
104
|
const feePerGas = {
|
|
82
105
|
low: trend.predict(0.5)[1],
|
|
@@ -85,16 +108,31 @@ var getFeePerGas = (payload) => {
|
|
|
85
108
|
veryHigh: trend.predict(3.5)[1]
|
|
86
109
|
};
|
|
87
110
|
return feePerGas;
|
|
88
|
-
};
|
|
89
|
-
var getPriorityFeePerGas = (payload) => {
|
|
111
|
+
}, "getFeePerGas");
|
|
112
|
+
var getPriorityFeePerGas = /* @__PURE__ */ __name((payload) => {
|
|
90
113
|
var _a, _b;
|
|
91
114
|
const sorted = (_b = (_a = payload.blockPrices) == null ? void 0 : _a[0].estimatedPrices) == null ? void 0 : _b.sort((a, b) => a.confidence - b.confidence);
|
|
92
115
|
const trend = linear([
|
|
93
|
-
[
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
[
|
|
116
|
+
[
|
|
117
|
+
0,
|
|
118
|
+
sorted == null ? void 0 : sorted[0].maxPriorityFeePerGas
|
|
119
|
+
],
|
|
120
|
+
[
|
|
121
|
+
1,
|
|
122
|
+
sorted == null ? void 0 : sorted[1].maxPriorityFeePerGas
|
|
123
|
+
],
|
|
124
|
+
[
|
|
125
|
+
2,
|
|
126
|
+
sorted == null ? void 0 : sorted[2].maxPriorityFeePerGas
|
|
127
|
+
],
|
|
128
|
+
[
|
|
129
|
+
3,
|
|
130
|
+
sorted == null ? void 0 : sorted[3].maxPriorityFeePerGas
|
|
131
|
+
],
|
|
132
|
+
[
|
|
133
|
+
4,
|
|
134
|
+
sorted == null ? void 0 : sorted[4].maxPriorityFeePerGas
|
|
135
|
+
]
|
|
98
136
|
]);
|
|
99
137
|
const priorityFeePerGas = {
|
|
100
138
|
low: trend.predict(0.5)[1],
|
|
@@ -103,151 +141,242 @@ var getPriorityFeePerGas = (payload) => {
|
|
|
103
141
|
veryHigh: trend.predict(3.5)[1]
|
|
104
142
|
};
|
|
105
143
|
return priorityFeePerGas;
|
|
106
|
-
};
|
|
107
|
-
var transformGasFromBlocknative = (payload) => {
|
|
144
|
+
}, "getPriorityFeePerGas");
|
|
145
|
+
var transformGasFromBlocknative = /* @__PURE__ */ __name((payload) => {
|
|
108
146
|
const baseFee = getBaseFee(payload);
|
|
109
147
|
const feePerGas = getFeePerGas(payload);
|
|
110
148
|
const priorityFeePerGas = getPriorityFeePerGas(payload);
|
|
111
|
-
return {
|
|
112
|
-
|
|
149
|
+
return {
|
|
150
|
+
baseFee,
|
|
151
|
+
feePerGas,
|
|
152
|
+
priorityFeePerGas
|
|
153
|
+
};
|
|
154
|
+
}, "transformGasFromBlocknative");
|
|
113
155
|
|
|
114
156
|
// src/lib/transforms/transformGasFromEtherchainV2.ts
|
|
115
|
-
var getFeePerGas2 = (payload) => {
|
|
157
|
+
var getFeePerGas2 = /* @__PURE__ */ __name((payload) => {
|
|
116
158
|
const { slow, standard, fast, rapid } = payload.data;
|
|
117
159
|
const low = slow / 1e9;
|
|
118
160
|
const medium = standard / 1e9;
|
|
119
161
|
const high = fast / 1e9;
|
|
120
162
|
const veryHigh = rapid / 1e9;
|
|
121
|
-
return {
|
|
122
|
-
|
|
123
|
-
|
|
163
|
+
return {
|
|
164
|
+
high,
|
|
165
|
+
low,
|
|
166
|
+
medium,
|
|
167
|
+
veryHigh
|
|
168
|
+
};
|
|
169
|
+
}, "getFeePerGas");
|
|
170
|
+
var transformGasFromEtherchainV2 = /* @__PURE__ */ __name((payload) => {
|
|
124
171
|
const baseFee = void 0;
|
|
125
172
|
const feePerGas = getFeePerGas2(payload);
|
|
126
173
|
const priorityFeePerGas = {};
|
|
127
|
-
return {
|
|
128
|
-
|
|
174
|
+
return {
|
|
175
|
+
baseFee,
|
|
176
|
+
feePerGas,
|
|
177
|
+
priorityFeePerGas
|
|
178
|
+
};
|
|
179
|
+
}, "transformGasFromEtherchainV2");
|
|
129
180
|
|
|
130
181
|
// src/lib/transforms/transformGasFromEthers.ts
|
|
131
|
-
var getBaseFee2 = (payload) => {
|
|
182
|
+
var getBaseFee2 = /* @__PURE__ */ __name((payload) => {
|
|
132
183
|
const { gasPrice } = payload;
|
|
133
184
|
return gasPrice ? gasPrice / 1e9 : void 0;
|
|
134
|
-
};
|
|
135
|
-
var getFeePerGas3 = (payload) => {
|
|
185
|
+
}, "getBaseFee");
|
|
186
|
+
var getFeePerGas3 = /* @__PURE__ */ __name((payload) => {
|
|
136
187
|
const { maxFeePerGas } = payload;
|
|
137
188
|
const high = maxFeePerGas ? maxFeePerGas / 1e9 : void 0;
|
|
138
|
-
return {
|
|
139
|
-
|
|
140
|
-
|
|
189
|
+
return {
|
|
190
|
+
high
|
|
191
|
+
};
|
|
192
|
+
}, "getFeePerGas");
|
|
193
|
+
var getPriorityFeePerGas2 = /* @__PURE__ */ __name((payload) => {
|
|
141
194
|
const { maxPriorityFeePerGas } = payload;
|
|
142
195
|
const high = maxPriorityFeePerGas ? maxPriorityFeePerGas / 1e9 : void 0;
|
|
143
|
-
return {
|
|
144
|
-
|
|
145
|
-
|
|
196
|
+
return {
|
|
197
|
+
high
|
|
198
|
+
};
|
|
199
|
+
}, "getPriorityFeePerGas");
|
|
200
|
+
var transformGasFromEthers = /* @__PURE__ */ __name((payload) => {
|
|
146
201
|
const baseFee = getBaseFee2(payload);
|
|
147
202
|
const feePerGas = getFeePerGas3(payload);
|
|
148
203
|
const priorityFeePerGas = getPriorityFeePerGas2(payload);
|
|
149
|
-
return {
|
|
150
|
-
|
|
204
|
+
return {
|
|
205
|
+
baseFee,
|
|
206
|
+
feePerGas,
|
|
207
|
+
priorityFeePerGas
|
|
208
|
+
};
|
|
209
|
+
}, "transformGasFromEthers");
|
|
151
210
|
|
|
152
211
|
// src/lib/transforms/transformGasFromEtherscan.ts
|
|
153
212
|
import { linear as linear2 } from "regression";
|
|
154
|
-
var getBaseFee3 = (payload) => {
|
|
213
|
+
var getBaseFee3 = /* @__PURE__ */ __name((payload) => {
|
|
155
214
|
const { suggestBaseFee } = payload.result;
|
|
156
215
|
return Number.parseFloat(suggestBaseFee);
|
|
157
|
-
};
|
|
158
|
-
var getFeePerGas4 = (payload) => {
|
|
216
|
+
}, "getBaseFee");
|
|
217
|
+
var getFeePerGas4 = /* @__PURE__ */ __name((payload) => {
|
|
159
218
|
const { FastGasPrice, ProposeGasPrice, SafeGasPrice } = payload.result;
|
|
160
219
|
const low = Number.parseFloat(SafeGasPrice);
|
|
161
220
|
const medium = Number.parseFloat(ProposeGasPrice);
|
|
162
221
|
const high = Number.parseFloat(FastGasPrice);
|
|
163
222
|
const veryHigh = linear2([
|
|
164
|
-
[
|
|
165
|
-
|
|
166
|
-
|
|
223
|
+
[
|
|
224
|
+
0,
|
|
225
|
+
low
|
|
226
|
+
],
|
|
227
|
+
[
|
|
228
|
+
1,
|
|
229
|
+
medium
|
|
230
|
+
],
|
|
231
|
+
[
|
|
232
|
+
2,
|
|
233
|
+
high
|
|
234
|
+
]
|
|
167
235
|
]).predict(3)[1];
|
|
168
|
-
return {
|
|
169
|
-
|
|
170
|
-
|
|
236
|
+
return {
|
|
237
|
+
high,
|
|
238
|
+
low,
|
|
239
|
+
medium,
|
|
240
|
+
veryHigh
|
|
241
|
+
};
|
|
242
|
+
}, "getFeePerGas");
|
|
243
|
+
var transformGasFromEtherscan = /* @__PURE__ */ __name((payload) => {
|
|
171
244
|
const baseFee = getBaseFee3(payload);
|
|
172
245
|
const feePerGas = getFeePerGas4(payload);
|
|
173
246
|
const priorityFeePerGas = {};
|
|
174
|
-
return {
|
|
175
|
-
|
|
247
|
+
return {
|
|
248
|
+
baseFee,
|
|
249
|
+
feePerGas,
|
|
250
|
+
priorityFeePerGas
|
|
251
|
+
};
|
|
252
|
+
}, "transformGasFromEtherscan");
|
|
176
253
|
|
|
177
254
|
// src/lib/transforms/transformGasFromEthgasstation.ts
|
|
178
255
|
import { linear as linear3 } from "regression";
|
|
179
|
-
var getBaseFee4 = (payload) => {
|
|
256
|
+
var getBaseFee4 = /* @__PURE__ */ __name((payload) => {
|
|
180
257
|
const { baseFee } = payload;
|
|
181
258
|
return baseFee;
|
|
182
|
-
};
|
|
183
|
-
var getFeePerGas5 = (payload) => {
|
|
259
|
+
}, "getBaseFee");
|
|
260
|
+
var getFeePerGas5 = /* @__PURE__ */ __name((payload) => {
|
|
184
261
|
const { standard: medium, fast: high, instant: veryHigh } = payload.gasPrice;
|
|
185
262
|
const trend = linear3([
|
|
186
|
-
[
|
|
187
|
-
|
|
188
|
-
|
|
263
|
+
[
|
|
264
|
+
1,
|
|
265
|
+
medium
|
|
266
|
+
],
|
|
267
|
+
[
|
|
268
|
+
2,
|
|
269
|
+
high
|
|
270
|
+
],
|
|
271
|
+
[
|
|
272
|
+
3,
|
|
273
|
+
veryHigh
|
|
274
|
+
]
|
|
189
275
|
]);
|
|
190
276
|
const low = trend.predict(0)[1];
|
|
191
|
-
return {
|
|
192
|
-
|
|
193
|
-
|
|
277
|
+
return {
|
|
278
|
+
low,
|
|
279
|
+
medium,
|
|
280
|
+
high,
|
|
281
|
+
veryHigh
|
|
282
|
+
};
|
|
283
|
+
}, "getFeePerGas");
|
|
284
|
+
var getPriorityFeePerGas3 = /* @__PURE__ */ __name((payload) => {
|
|
194
285
|
const { standard: medium, fast: high, instant: veryHigh } = payload.priorityFee;
|
|
195
286
|
const trend = linear3([
|
|
196
|
-
[
|
|
197
|
-
|
|
198
|
-
|
|
287
|
+
[
|
|
288
|
+
1,
|
|
289
|
+
medium
|
|
290
|
+
],
|
|
291
|
+
[
|
|
292
|
+
2,
|
|
293
|
+
high
|
|
294
|
+
],
|
|
295
|
+
[
|
|
296
|
+
3,
|
|
297
|
+
veryHigh
|
|
298
|
+
]
|
|
199
299
|
]);
|
|
200
300
|
const low = trend.predict(0)[1];
|
|
201
|
-
return {
|
|
202
|
-
|
|
203
|
-
|
|
301
|
+
return {
|
|
302
|
+
low,
|
|
303
|
+
medium,
|
|
304
|
+
high,
|
|
305
|
+
veryHigh
|
|
306
|
+
};
|
|
307
|
+
}, "getPriorityFeePerGas");
|
|
308
|
+
var transformGasFromEthgasstation = /* @__PURE__ */ __name((payload) => {
|
|
204
309
|
const baseFee = getBaseFee4(payload);
|
|
205
310
|
const feePerGas = getFeePerGas5(payload);
|
|
206
311
|
const priorityFeePerGas = getPriorityFeePerGas3(payload);
|
|
207
|
-
return {
|
|
208
|
-
|
|
312
|
+
return {
|
|
313
|
+
baseFee,
|
|
314
|
+
feePerGas,
|
|
315
|
+
priorityFeePerGas
|
|
316
|
+
};
|
|
317
|
+
}, "transformGasFromEthgasstation");
|
|
209
318
|
|
|
210
319
|
// src/lib/divineGas.ts
|
|
211
|
-
var divineGas = async (payloads) => {
|
|
320
|
+
var divineGas = /* @__PURE__ */ __name(async (payloads) => {
|
|
212
321
|
const blocknative = payloads.filter(isEthereumGasBlocknativePayload).map(transformGasFromBlocknative);
|
|
213
322
|
const etherchainV2 = payloads.filter(isEthereumGasEtherchainV2Payload).map(transformGasFromEtherchainV2);
|
|
214
323
|
const ethers = payloads.filter(isEthereumGasEthersPayload).map(transformGasFromEthers);
|
|
215
324
|
const etherscan = payloads.filter(isEthereumGasEtherscanPayload).map(transformGasFromEtherscan);
|
|
216
325
|
const ethgasstation = payloads.filter(isEthereumGasEthgasstationPayload).map(transformGasFromEthgasstation);
|
|
217
|
-
const transactionCosts = [
|
|
326
|
+
const transactionCosts = [
|
|
327
|
+
...blocknative,
|
|
328
|
+
...etherchainV2,
|
|
329
|
+
...ethers,
|
|
330
|
+
...etherscan,
|
|
331
|
+
...ethgasstation
|
|
332
|
+
];
|
|
218
333
|
const avg = average(transactionCosts);
|
|
219
334
|
const timestamp = Date.now();
|
|
220
|
-
const payload = await new PayloadBuilder({
|
|
335
|
+
const payload = await new PayloadBuilder({
|
|
336
|
+
schema: EthereumGasSchema
|
|
337
|
+
}).fields({
|
|
338
|
+
...avg,
|
|
339
|
+
timestamp
|
|
340
|
+
}).build();
|
|
221
341
|
return payload;
|
|
222
|
-
};
|
|
342
|
+
}, "divineGas");
|
|
223
343
|
|
|
224
344
|
// src/Schema.ts
|
|
225
345
|
var EthereumGasDivinerQuerySchema = "network.xyo.blockchain.ethereum.gas.diviner.query";
|
|
226
346
|
var EthereumGasDivinerConfigSchema = "network.xyo.blockchain.ethereum.gas.diviner.config";
|
|
227
347
|
|
|
228
348
|
// src/Diviner.ts
|
|
229
|
-
var
|
|
230
|
-
static configSchemas = [...super.configSchemas, EthereumGasDivinerConfigSchema];
|
|
231
|
-
static defaultConfigSchema = EthereumGasDivinerConfigSchema;
|
|
232
|
-
static targetSchema = EthereumGasSchema2;
|
|
349
|
+
var _EthereumGasDiviner = class _EthereumGasDiviner extends AbstractDiviner {
|
|
233
350
|
async divineHandler(payloads) {
|
|
234
351
|
const cost = await divineGas(payloads ?? []);
|
|
235
|
-
return [
|
|
352
|
+
return [
|
|
353
|
+
cost
|
|
354
|
+
];
|
|
236
355
|
}
|
|
237
356
|
};
|
|
357
|
+
__name(_EthereumGasDiviner, "EthereumGasDiviner");
|
|
358
|
+
__publicField(_EthereumGasDiviner, "configSchemas", [
|
|
359
|
+
...__superGet(_EthereumGasDiviner, _EthereumGasDiviner, "configSchemas"),
|
|
360
|
+
EthereumGasDivinerConfigSchema
|
|
361
|
+
]);
|
|
362
|
+
__publicField(_EthereumGasDiviner, "defaultConfigSchema", EthereumGasDivinerConfigSchema);
|
|
363
|
+
__publicField(_EthereumGasDiviner, "targetSchema", EthereumGasSchema2);
|
|
364
|
+
var EthereumGasDiviner = _EthereumGasDiviner;
|
|
238
365
|
|
|
239
366
|
// src/Plugin.ts
|
|
240
367
|
import { EthereumGasSchema as EthereumGasSchema3 } from "@xyo-network/gas-price-payload-plugin";
|
|
241
368
|
import { PayloadSetSchema } from "@xyo-network/payload-model";
|
|
242
369
|
import { createPayloadSetDivinerPlugin } from "@xyo-network/payloadset-plugin";
|
|
243
|
-
var EthereumGasPlugin = () => createPayloadSetDivinerPlugin(
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
);
|
|
370
|
+
var EthereumGasPlugin = /* @__PURE__ */ __name(() => createPayloadSetDivinerPlugin({
|
|
371
|
+
required: {
|
|
372
|
+
[EthereumGasSchema3]: 1
|
|
373
|
+
},
|
|
374
|
+
schema: PayloadSetSchema
|
|
375
|
+
}, {
|
|
376
|
+
diviner: /* @__PURE__ */ __name(async (params) => {
|
|
377
|
+
return await EthereumGasDiviner.create(params);
|
|
378
|
+
}, "diviner")
|
|
379
|
+
}), "EthereumGasPlugin");
|
|
251
380
|
export {
|
|
252
381
|
EthereumGasDiviner,
|
|
253
382
|
EthereumGasDivinerConfigSchema,
|
|
@@ -255,4 +384,4 @@ export {
|
|
|
255
384
|
EthereumGasPlugin,
|
|
256
385
|
EthereumGasPlugin as default
|
|
257
386
|
};
|
|
258
|
-
//# sourceMappingURL=index.
|
|
387
|
+
//# sourceMappingURL=index.mjs.map
|