@xyo-network/crypto-asset-plugin 6.0.0 → 6.0.1
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.
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import type { AnyConfigSchema, Module } from '@xyo-network/module-model';
|
|
4
|
-
import type { Payload, Schema } from '@xyo-network/payload-model';
|
|
1
|
+
import type { AnyConfigSchema, DivinerConfig, DivinerModule, DivinerParams, Payload, QueryableModule, Schema } from '@xyo-network/sdk-js';
|
|
2
|
+
import { AbstractDiviner } from '@xyo-network/sdk-js';
|
|
5
3
|
import { CryptoMarketAssetDivinerConfigSchema } from './Schema.ts';
|
|
6
4
|
export type CryptoMarketAssetDivinerConfig = DivinerConfig<{
|
|
7
5
|
schema: CryptoMarketAssetDivinerConfigSchema;
|
|
8
6
|
}>;
|
|
9
7
|
export type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>;
|
|
10
|
-
export declare class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams> extends AbstractDiviner<TParams> implements DivinerModule,
|
|
8
|
+
export declare class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams> extends AbstractDiviner<TParams> implements DivinerModule, QueryableModule {
|
|
11
9
|
static readonly configSchemas: Schema[];
|
|
12
10
|
static readonly defaultConfigSchema: Schema;
|
|
13
11
|
static readonly targetSchema: "network.xyo.crypto.asset" & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAC/F,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAKrD,OAAO,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC;IAAE,MAAM,EAAE,oCAAoC,CAAA;CAAE,CAAC,CAAA;AAC5G,MAAM,MAAM,8BAA8B,GAAG,aAAa,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC,CAAA;AAE3G,qBAAa,wBAAwB,CAAC,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CACnH,SAAQ,eAAe,CAAC,OAAO,CAC/B,YAAW,aAAa,EAAE,eAAe;IACzC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAiE;IACjH,gBAAyB,mBAAmB,EAAE,MAAM,CAAuC;IAC3F,gBAAyB,YAAY;;MAA0B;cAE5C,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;CAMlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAEvD,eAAO,MAAM,uBAAuB,8IAQjC,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/Diviner.ts
|
|
2
2
|
import { CoingeckoCryptoMarketSchema } from "@xyo-network/coingecko-crypto-market-payload-plugin";
|
|
3
3
|
import { CryptoMarketAssetSchema as CryptoMarketAssetSchema4 } from "@xyo-network/crypto-asset-payload-plugin";
|
|
4
|
-
import { AbstractDiviner } from "@xyo-network/
|
|
4
|
+
import { AbstractDiviner } from "@xyo-network/sdk-js";
|
|
5
5
|
import { UniswapCryptoMarketSchema } from "@xyo-network/uniswap-crypto-market-payload-plugin";
|
|
6
6
|
|
|
7
7
|
// src/lib/divinePrices.ts
|
|
@@ -61,7 +61,7 @@ var otherValueExists = (value) => {
|
|
|
61
61
|
return typeof possiblyNumber === "number" && !Number.isNaN(possiblyNumber);
|
|
62
62
|
};
|
|
63
63
|
var divineCoinGeckoPrices = (payload) => {
|
|
64
|
-
const assets = payload
|
|
64
|
+
const assets = payload?.assets ? Object.fromEntries(
|
|
65
65
|
Object.entries(payload.assets).filter(valuationExists).map(([asset, valuation]) => {
|
|
66
66
|
const value = Object.fromEntries(
|
|
67
67
|
Object.entries(valuation).filter(otherValueExists).map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()])
|
|
@@ -128,7 +128,7 @@ var divinePrices = (coinGeckoPayload, uniswapPayload) => {
|
|
|
128
128
|
};
|
|
129
129
|
|
|
130
130
|
// src/Schema.ts
|
|
131
|
-
import { asSchema } from "@xyo-network/
|
|
131
|
+
import { asSchema } from "@xyo-network/sdk-js";
|
|
132
132
|
var CryptoMarketAssetDivinerQuerySchema = asSchema("network.xyo.crypto.asset.diviner.query", true);
|
|
133
133
|
var CryptoMarketAssetDivinerConfigSchema = asSchema("network.xyo.crypto.asset.diviner.config", true);
|
|
134
134
|
|
|
@@ -147,8 +147,7 @@ var CryptoMarketAssetDiviner = class extends AbstractDiviner {
|
|
|
147
147
|
|
|
148
148
|
// src/Plugin.ts
|
|
149
149
|
import { CryptoMarketAssetSchema as CryptoMarketAssetSchema5 } from "@xyo-network/crypto-asset-payload-plugin";
|
|
150
|
-
import { PayloadSetSchema } from "@xyo-network/
|
|
151
|
-
import { createPayloadSetDivinerPlugin } from "@xyo-network/sdk-js";
|
|
150
|
+
import { createPayloadSetDivinerPlugin, PayloadSetSchema } from "@xyo-network/sdk-js";
|
|
152
151
|
var CryptoMarketAssetPlugin = () => createPayloadSetDivinerPlugin(
|
|
153
152
|
{ required: { [CryptoMarketAssetSchema5]: 1 }, schema: PayloadSetSchema },
|
|
154
153
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Diviner.ts", "../../src/lib/divinePrices.ts", "../../src/lib/average.ts", "../../src/lib/divineCoinGeckoPrices.ts", "../../src/lib/divineUniswapPrices.ts", "../../src/Schema.ts", "../../src/Plugin.ts"],
|
|
4
|
-
"sourcesContent": ["import type { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport type { CryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin'\nimport { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type {\n DivinerConfig, DivinerModule, DivinerParams,\n} from '@xyo-network/diviner-model'\nimport type { AnyConfigSchema, Module } from '@xyo-network/module-model'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\nimport type { UniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { divinePrices } from './lib/index.ts'\nimport { CryptoMarketAssetDivinerConfigSchema } from './Schema.ts'\n\nexport type CryptoMarketAssetDivinerConfig = DivinerConfig<{ schema: CryptoMarketAssetDivinerConfigSchema }>\nexport type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>\n\nexport class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule, Module {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoMarketAssetDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoMarketAssetDivinerConfigSchema\n static override readonly targetSchema = CryptoMarketAssetSchema\n\n protected override divineHandler(payloads?: Payload[]): Payload[] {\n const coinGeckoPayload = payloads?.find(payload => payload?.schema === CoingeckoCryptoMarketSchema) as CoingeckoCryptoMarketPayload | undefined\n const uniswapPayload = payloads?.find(payload => payload?.schema === UniswapCryptoMarketSchema) as UniswapCryptoMarketPayload | undefined\n const result: CryptoMarketAssetPayload = divinePrices(coinGeckoPayload, uniswapPayload)\n return [result]\n }\n}\n", "import { exists } from '@xylabs/sdk-js'\nimport type { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport type { CryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin'\nimport { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { UniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { average } from './average.ts'\nimport { divineCoinGeckoPrices } from './divineCoinGeckoPrices.ts'\nimport { divineUniswapPrices } from './divineUniswapPrices.ts'\n\nconst schema = CryptoMarketAssetSchema\n\nexport const divinePrices = (\n coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,\n uniswapPayload: UniswapCryptoMarketPayload | undefined,\n): CryptoMarketAssetPayload => {\n const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload)\n const uniswapPrices = divineUniswapPrices(uniswapPayload)\n const prices = [uniswapPayload, coinGeckoPayload].some(exists)\n const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n", "import { exists } from '@xylabs/sdk-js'\nimport type {\n AssetInfo, CryptoMarketAssetPayload, Currency, Token,\n} from '@xyo-network/crypto-asset-payload-plugin'\n\nconst isNumber = (val: number | undefined): val is number => {\n return val !== undefined\n}\n\nconst parseStringifiedNumber = (value: string | undefined): number | undefined => {\n if (!value) return undefined\n const parsed = Number.parseFloat(value)\n return Number.isNaN(parsed) ? undefined : parsed\n}\n\nconst averageStringifiedNumbers = (...prices: (string | undefined)[]): number | undefined => {\n const numbers = prices.map(parseStringifiedNumber).filter(isNumber)\n return numbers.length > 0 ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : undefined\n}\n\nexport const average = (...input: (CryptoMarketAssetPayload | undefined)[]): Record<string, AssetInfo> => {\n // Get all the assets represented\n const payloads = input.filter(exists)\n const tokens = new Set<Token>(payloads.flatMap(payload => Object.keys(payload.assets).map<Token>(t => t as Token)))\n // Get all the valuations used\n const valuations = new Set<Token | Currency>(\n [...tokens].flatMap((asset) => {\n const assetInfo = payloads.map(p => p.assets?.[asset]).filter(exists)\n const valueBasis = new Set<Currency | Token>(assetInfo.flatMap(v => Object.keys(v.value) as unknown as Currency | Token).filter(exists))\n return [...valueBasis]\n }),\n )\n // For each of the tokens, calculate the average valuation for each of valuation bases\n const assets: Record<string, AssetInfo> = Object.fromEntries(\n [...tokens].map((token) => {\n const assetInfo = payloads.map(p => p.assets?.[token]).filter(exists)\n const value = Object.fromEntries(\n [...valuations].map((valuation) => {\n const assetValuations = assetInfo.map(info => info.value?.[valuation])\n const averageAssetValuation = averageStringifiedNumbers(...assetValuations)\n return [valuation, averageAssetValuation?.toString()]\n }),\n )\n return [token, { value }]\n }),\n )\n return assets\n}\n", "import type { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport type { AssetInfo, CryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin'\nimport { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\n\nconst schema = CryptoMarketAssetSchema\n\nconst valuationExists = (value: [string, Partial<Record<string, number>> | undefined]): value is [string, Partial<Record<string, number>>] => {\n return !!value[1]\n}\n\nconst otherValueExists = (value: [string, number | undefined]): value is [string, number] => {\n const possiblyNumber = value[1]\n return typeof possiblyNumber === 'number' && !Number.isNaN(possiblyNumber)\n}\n\nexport const divineCoinGeckoPrices = (payload: CoingeckoCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n const assets: Record<string, AssetInfo>\n = payload && payload?.assets\n ? Object.fromEntries(\n Object.entries(payload.assets)\n .filter(valuationExists)\n .map(([asset, valuation]) => {\n const value = Object.fromEntries(\n Object.entries(valuation)\n .filter(otherValueExists)\n .map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()]),\n )\n return [asset, { value }]\n }),\n )\n : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n", "import { assertEx, exists } from '@xylabs/sdk-js'\nimport type {\n AssetInfo, CryptoMarketAssetPayload,\n Currency, Token, ValueBasis,\n} from '@xyo-network/crypto-asset-payload-plugin'\nimport { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type {\n UniswapCryptoMarketPayload, UniswapCryptoPair, UniswapCryptoToken,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nconst schema = CryptoMarketAssetSchema\n\nconst mapUniswapToken = (symbol: string): Token | Currency => {\n // TODO: Actually calculate the value of the token/stablecoin based on others\n // to weed out individual fluctuations in price\n if (symbol.toLowerCase() === 'wbtc') return 'btc'\n if (symbol.toLowerCase() === 'weth') return 'eth'\n if (symbol.toLowerCase() === 'usdt') return 'usd'\n return symbol.toLowerCase() as Token\n}\n\nconst pairsContainingToken = (uniswapPayload: UniswapCryptoMarketPayload, token: Token) => {\n return uniswapPayload?.pairs\n .map(p => p.tokens)\n .filter(p => p.some(x => x.symbol.toLowerCase() === token))\n .filter(exists)\n}\n\nconst tokensFromPairs = (pairs: UniswapCryptoPair[]) => {\n return pairs.flatMap(p => p.tokens).map(t => t.symbol.toLowerCase() as Token)\n}\n\nconst valuesFromTokenPairs = (tokensPairs: UniswapCryptoToken[][], token: Token): ValueBasis => {\n return Object.fromEntries(\n tokensPairs\n .map((pair) => {\n const current = pair.find(p => p.symbol.toLowerCase() === token)\n const other = pair.find(p => p.symbol.toLowerCase() !== token)\n return [other?.symbol.toLowerCase(), current?.value.toString()]\n })\n .map(x => [mapUniswapToken(assertEx(x[0], () => 'Undefined Token')), x[1]]),\n )\n}\n\nexport const divineUniswapPrices = (uniswapPayload: UniswapCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n let assets: Partial<Record<Token, AssetInfo | undefined>> = {}\n if (uniswapPayload) {\n const tokens = new Set<Token>(tokensFromPairs(uniswapPayload.pairs))\n assets = Object.fromEntries(\n [...tokens].map((token) => {\n const pairs = pairsContainingToken(uniswapPayload, token)\n const value: ValueBasis = valuesFromTokenPairs(pairs, token)\n const assetInfo: AssetInfo = { value }\n return [token, assetInfo]\n }),\n )\n }\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n", "import { asSchema } from '@xyo-network/payload-model'\n\nexport type CryptoMarketAssetDivinerQuerySchema = typeof CryptoMarketAssetDivinerQuerySchema\nexport const CryptoMarketAssetDivinerQuerySchema = asSchema('network.xyo.crypto.asset.diviner.query', true)\n\nexport type CryptoMarketAssetDivinerConfigSchema = typeof CryptoMarketAssetDivinerConfigSchema\nexport const CryptoMarketAssetDivinerConfigSchema = asSchema('network.xyo.crypto.asset.diviner.config', true)\n", "import { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/sdk-js'\n\nimport { CryptoMarketAssetDiviner } from './Diviner.ts'\n\nexport const CryptoMarketAssetPlugin = () =>\n createPayloadSetDivinerPlugin<CryptoMarketAssetDiviner>(\n { required: { [CryptoMarketAssetSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await CryptoMarketAssetDiviner.create(params)) as CryptoMarketAssetDiviner\n },\n },\n )\n"],
|
|
5
|
-
"mappings": ";AACA,SAAS,mCAAmC;AAE5C,SAAS,2BAAAA,gCAA+B;
|
|
4
|
+
"sourcesContent": ["import type { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport type { CryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin'\nimport { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport type {\n AnyConfigSchema, DivinerConfig, DivinerModule, DivinerParams, Payload, QueryableModule, Schema,\n} from '@xyo-network/sdk-js'\nimport { AbstractDiviner } from '@xyo-network/sdk-js'\nimport type { UniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { divinePrices } from './lib/index.ts'\nimport { CryptoMarketAssetDivinerConfigSchema } from './Schema.ts'\n\nexport type CryptoMarketAssetDivinerConfig = DivinerConfig<{ schema: CryptoMarketAssetDivinerConfigSchema }>\nexport type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>\n\nexport class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule, QueryableModule {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoMarketAssetDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoMarketAssetDivinerConfigSchema\n static override readonly targetSchema = CryptoMarketAssetSchema\n\n protected override divineHandler(payloads?: Payload[]): Payload[] {\n const coinGeckoPayload = payloads?.find(payload => payload?.schema === CoingeckoCryptoMarketSchema) as CoingeckoCryptoMarketPayload | undefined\n const uniswapPayload = payloads?.find(payload => payload?.schema === UniswapCryptoMarketSchema) as UniswapCryptoMarketPayload | undefined\n const result: CryptoMarketAssetPayload = divinePrices(coinGeckoPayload, uniswapPayload)\n return [result]\n }\n}\n", "import { exists } from '@xylabs/sdk-js'\nimport type { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport type { CryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin'\nimport { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { UniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { average } from './average.ts'\nimport { divineCoinGeckoPrices } from './divineCoinGeckoPrices.ts'\nimport { divineUniswapPrices } from './divineUniswapPrices.ts'\n\nconst schema = CryptoMarketAssetSchema\n\nexport const divinePrices = (\n coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,\n uniswapPayload: UniswapCryptoMarketPayload | undefined,\n): CryptoMarketAssetPayload => {\n const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload)\n const uniswapPrices = divineUniswapPrices(uniswapPayload)\n const prices = [uniswapPayload, coinGeckoPayload].some(exists)\n const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n", "import { exists } from '@xylabs/sdk-js'\nimport type {\n AssetInfo, CryptoMarketAssetPayload, Currency, Token,\n} from '@xyo-network/crypto-asset-payload-plugin'\n\nconst isNumber = (val: number | undefined): val is number => {\n return val !== undefined\n}\n\nconst parseStringifiedNumber = (value: string | undefined): number | undefined => {\n if (!value) return undefined\n const parsed = Number.parseFloat(value)\n return Number.isNaN(parsed) ? undefined : parsed\n}\n\nconst averageStringifiedNumbers = (...prices: (string | undefined)[]): number | undefined => {\n const numbers = prices.map(parseStringifiedNumber).filter(isNumber)\n return numbers.length > 0 ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : undefined\n}\n\nexport const average = (...input: (CryptoMarketAssetPayload | undefined)[]): Record<string, AssetInfo> => {\n // Get all the assets represented\n const payloads = input.filter(exists)\n const tokens = new Set<Token>(payloads.flatMap(payload => Object.keys(payload.assets).map<Token>(t => t as Token)))\n // Get all the valuations used\n const valuations = new Set<Token | Currency>(\n [...tokens].flatMap((asset) => {\n const assetInfo = payloads.map(p => p.assets?.[asset]).filter(exists)\n const valueBasis = new Set<Currency | Token>(assetInfo.flatMap(v => Object.keys(v.value) as unknown as Currency | Token).filter(exists))\n return [...valueBasis]\n }),\n )\n // For each of the tokens, calculate the average valuation for each of valuation bases\n const assets: Record<string, AssetInfo> = Object.fromEntries(\n [...tokens].map((token) => {\n const assetInfo = payloads.map(p => p.assets?.[token]).filter(exists)\n const value = Object.fromEntries(\n [...valuations].map((valuation) => {\n const assetValuations = assetInfo.map(info => info.value?.[valuation])\n const averageAssetValuation = averageStringifiedNumbers(...assetValuations)\n return [valuation, averageAssetValuation?.toString()]\n }),\n )\n return [token, { value }]\n }),\n )\n return assets\n}\n", "import type { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport type { AssetInfo, CryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin'\nimport { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\n\nconst schema = CryptoMarketAssetSchema\n\nconst valuationExists = (value: [string, Partial<Record<string, number>> | undefined]): value is [string, Partial<Record<string, number>>] => {\n return !!value[1]\n}\n\nconst otherValueExists = (value: [string, number | undefined]): value is [string, number] => {\n const possiblyNumber = value[1]\n return typeof possiblyNumber === 'number' && !Number.isNaN(possiblyNumber)\n}\n\nexport const divineCoinGeckoPrices = (payload: CoingeckoCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n const assets: Record<string, AssetInfo>\n = payload?.assets\n ? Object.fromEntries(\n Object.entries(payload.assets)\n .filter(valuationExists)\n .map(([asset, valuation]) => {\n const value = Object.fromEntries(\n Object.entries(valuation)\n .filter(otherValueExists)\n .map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()]),\n )\n return [asset, { value }]\n }),\n )\n : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n", "import { assertEx, exists } from '@xylabs/sdk-js'\nimport type {\n AssetInfo, CryptoMarketAssetPayload,\n Currency, Token, ValueBasis,\n} from '@xyo-network/crypto-asset-payload-plugin'\nimport { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type {\n UniswapCryptoMarketPayload, UniswapCryptoPair, UniswapCryptoToken,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nconst schema = CryptoMarketAssetSchema\n\nconst mapUniswapToken = (symbol: string): Token | Currency => {\n // TODO: Actually calculate the value of the token/stablecoin based on others\n // to weed out individual fluctuations in price\n if (symbol.toLowerCase() === 'wbtc') return 'btc'\n if (symbol.toLowerCase() === 'weth') return 'eth'\n if (symbol.toLowerCase() === 'usdt') return 'usd'\n return symbol.toLowerCase() as Token\n}\n\nconst pairsContainingToken = (uniswapPayload: UniswapCryptoMarketPayload, token: Token) => {\n return uniswapPayload?.pairs\n .map(p => p.tokens)\n .filter(p => p.some(x => x.symbol.toLowerCase() === token))\n .filter(exists)\n}\n\nconst tokensFromPairs = (pairs: UniswapCryptoPair[]) => {\n return pairs.flatMap(p => p.tokens).map(t => t.symbol.toLowerCase() as Token)\n}\n\nconst valuesFromTokenPairs = (tokensPairs: UniswapCryptoToken[][], token: Token): ValueBasis => {\n return Object.fromEntries(\n tokensPairs\n .map((pair) => {\n const current = pair.find(p => p.symbol.toLowerCase() === token)\n const other = pair.find(p => p.symbol.toLowerCase() !== token)\n return [other?.symbol.toLowerCase(), current?.value.toString()]\n })\n .map(x => [mapUniswapToken(assertEx(x[0], () => 'Undefined Token')), x[1]]),\n )\n}\n\nexport const divineUniswapPrices = (uniswapPayload: UniswapCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n let assets: Partial<Record<Token, AssetInfo | undefined>> = {}\n if (uniswapPayload) {\n const tokens = new Set<Token>(tokensFromPairs(uniswapPayload.pairs))\n assets = Object.fromEntries(\n [...tokens].map((token) => {\n const pairs = pairsContainingToken(uniswapPayload, token)\n const value: ValueBasis = valuesFromTokenPairs(pairs, token)\n const assetInfo: AssetInfo = { value }\n return [token, assetInfo]\n }),\n )\n }\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n", "import { asSchema } from '@xyo-network/sdk-js'\n\nexport type CryptoMarketAssetDivinerQuerySchema = typeof CryptoMarketAssetDivinerQuerySchema\nexport const CryptoMarketAssetDivinerQuerySchema = asSchema('network.xyo.crypto.asset.diviner.query', true)\n\nexport type CryptoMarketAssetDivinerConfigSchema = typeof CryptoMarketAssetDivinerConfigSchema\nexport const CryptoMarketAssetDivinerConfigSchema = asSchema('network.xyo.crypto.asset.diviner.config', true)\n", "import { CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { createPayloadSetDivinerPlugin, PayloadSetSchema } from '@xyo-network/sdk-js'\n\nimport { CryptoMarketAssetDiviner } from './Diviner.ts'\n\nexport const CryptoMarketAssetPlugin = () =>\n createPayloadSetDivinerPlugin<CryptoMarketAssetDiviner>(\n { required: { [CryptoMarketAssetSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n return (await CryptoMarketAssetDiviner.create(params)) as CryptoMarketAssetDiviner\n },\n },\n )\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["CryptoMarketAssetSchema", "exists", "CryptoMarketAssetSchema", "PayloadBuilder", "exists", "CryptoMarketAssetSchema", "PayloadBuilder", "schema", "schema", "CryptoMarketAssetSchema", "exists", "PayloadBuilder", "CryptoMarketAssetSchema", "CryptoMarketAssetSchema", "CryptoMarketAssetSchema"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/crypto-asset-plugin",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"description": "Typescript/Javascript Plugins for XYO Platform",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -31,45 +31,43 @@
|
|
|
31
31
|
"README.md"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@xyo-network/crypto-
|
|
35
|
-
"@xyo-network/
|
|
36
|
-
"@xyo-network/
|
|
34
|
+
"@xyo-network/coingecko-crypto-market-payload-plugin": "~6.0.1",
|
|
35
|
+
"@xyo-network/crypto-asset-payload-plugin": "~6.0.1",
|
|
36
|
+
"@xyo-network/uniswap-crypto-market-payload-plugin": "~6.0.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@bitauth/libauth": "~3.0.0",
|
|
40
40
|
"@metamask/providers": "^22.1.1",
|
|
41
|
+
"@noble/post-quantum": "~0.6.1",
|
|
41
42
|
"@opentelemetry/api": "^1.9.1",
|
|
42
43
|
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
43
44
|
"@scure/base": "^2.2.0",
|
|
44
45
|
"@scure/bip39": "~2.2.0",
|
|
45
|
-
"@xylabs/geo": "
|
|
46
|
-
"@xylabs/sdk-js": "
|
|
47
|
-
"@xylabs/threads": "
|
|
48
|
-
"@xylabs/toolchain": "~8.1.
|
|
49
|
-
"@xylabs/tsconfig": "~8.1.
|
|
46
|
+
"@xylabs/geo": "^6.0.2",
|
|
47
|
+
"@xylabs/sdk-js": "^6.0.2",
|
|
48
|
+
"@xylabs/threads": "^6.0.2",
|
|
49
|
+
"@xylabs/toolchain": "~8.1.4",
|
|
50
|
+
"@xylabs/tsconfig": "~8.1.4",
|
|
50
51
|
"@xylabs/vitest-extended": "~6.0.2",
|
|
51
|
-
"@xyo-network/account": "~6.0",
|
|
52
|
-
"@xyo-network/account-model": "
|
|
53
|
-
"@xyo-network/api": "~6.0",
|
|
54
|
-
"@xyo-network/api-models": "~6.0",
|
|
55
|
-
"@xyo-network/boundwitness-builder": "~6.0",
|
|
56
|
-
"@xyo-network/boundwitness-model": "
|
|
57
|
-
"@xyo-network/boundwitness-wrapper": "~6.0",
|
|
58
|
-
"@xyo-network/config-payload-plugin": "~6.0",
|
|
59
|
-
"@xyo-network/
|
|
60
|
-
"@xyo-network/
|
|
61
|
-
"@xyo-network/
|
|
62
|
-
"@xyo-network/
|
|
63
|
-
"@xyo-network/
|
|
64
|
-
"@xyo-network/payload-
|
|
65
|
-
"@xyo-network/payload-
|
|
66
|
-
"@xyo-network/
|
|
67
|
-
"@xyo-network/
|
|
68
|
-
"@xyo-network/
|
|
69
|
-
"@xyo-network/
|
|
70
|
-
"@xyo-network/sdk-protocol-js": "~6.0",
|
|
71
|
-
"@xyo-network/wallet": "~6.0",
|
|
72
|
-
"@xyo-network/wallet-model": "~6.0",
|
|
52
|
+
"@xyo-network/account": "~6.0.4",
|
|
53
|
+
"@xyo-network/account-model": "^6.0.4",
|
|
54
|
+
"@xyo-network/api": "~6.0.4",
|
|
55
|
+
"@xyo-network/api-models": "~6.0.4",
|
|
56
|
+
"@xyo-network/boundwitness-builder": "~6.0.4",
|
|
57
|
+
"@xyo-network/boundwitness-model": "^6.0.4",
|
|
58
|
+
"@xyo-network/boundwitness-wrapper": "~6.0.4",
|
|
59
|
+
"@xyo-network/config-payload-plugin": "~6.0.4",
|
|
60
|
+
"@xyo-network/huri": "~6.0.4",
|
|
61
|
+
"@xyo-network/manifest-model": "~6.0.4",
|
|
62
|
+
"@xyo-network/payload-builder": "~6.0.4",
|
|
63
|
+
"@xyo-network/payload-model": "^6.0.4",
|
|
64
|
+
"@xyo-network/payload-plugin": "~6.0.4",
|
|
65
|
+
"@xyo-network/payload-wrapper": "~6.0.4",
|
|
66
|
+
"@xyo-network/query-payload-plugin": "~6.0.4",
|
|
67
|
+
"@xyo-network/sdk-js": "^6.0.0",
|
|
68
|
+
"@xyo-network/sdk-protocol-js": "~6.0.4",
|
|
69
|
+
"@xyo-network/wallet": "~6.0.4",
|
|
70
|
+
"@xyo-network/wallet-model": "~6.0.4",
|
|
73
71
|
"ajv": "^8.20.0",
|
|
74
72
|
"async-mutex": "^0.5.0",
|
|
75
73
|
"bn.js": "^5.2.3",
|
|
@@ -80,13 +78,13 @@
|
|
|
80
78
|
"ethers": "^6.16.0",
|
|
81
79
|
"hash-wasm": "^4.12.0",
|
|
82
80
|
"idb": "^8.0.3",
|
|
83
|
-
"lru-cache": "^11.
|
|
84
|
-
"mapbox-gl": "
|
|
81
|
+
"lru-cache": "^11.3.6",
|
|
82
|
+
"mapbox-gl": "^3.23.1",
|
|
85
83
|
"observable-fns": "~0.6.1",
|
|
86
84
|
"pako": "~2.1.0",
|
|
87
85
|
"store2": "~2.14.4",
|
|
88
86
|
"typescript": "~6.0.3",
|
|
89
|
-
"vite": "^8.0.
|
|
87
|
+
"vite": "^8.0.14",
|
|
90
88
|
"vitest": "^4.1.7",
|
|
91
89
|
"wasm-feature-detect": "~1.8.0",
|
|
92
90
|
"webextension-polyfill": "^0.12.0",
|
|
@@ -95,6 +93,7 @@
|
|
|
95
93
|
"peerDependencies": {
|
|
96
94
|
"@bitauth/libauth": "~3.0",
|
|
97
95
|
"@metamask/providers": "^22.1",
|
|
96
|
+
"@noble/post-quantum": "~0.6.1",
|
|
98
97
|
"@opentelemetry/api": "^1.9",
|
|
99
98
|
"@opentelemetry/sdk-trace-base": "^2.7",
|
|
100
99
|
"@scure/base": "^2.2",
|
|
@@ -110,11 +109,8 @@
|
|
|
110
109
|
"@xyo-network/boundwitness-model": "^6.0",
|
|
111
110
|
"@xyo-network/boundwitness-wrapper": "~6.0",
|
|
112
111
|
"@xyo-network/config-payload-plugin": "~6.0",
|
|
113
|
-
"@xyo-network/diviner-abstract": "^6.0",
|
|
114
|
-
"@xyo-network/diviner-model": "^6.0",
|
|
115
112
|
"@xyo-network/huri": "~6.0",
|
|
116
113
|
"@xyo-network/manifest-model": "~6.0",
|
|
117
|
-
"@xyo-network/module-model": "^6.0",
|
|
118
114
|
"@xyo-network/payload-builder": "~6.0",
|
|
119
115
|
"@xyo-network/payload-model": "^6.0",
|
|
120
116
|
"@xyo-network/payload-plugin": "~6.0",
|
|
@@ -134,7 +130,7 @@
|
|
|
134
130
|
"hash-wasm": "^4.12",
|
|
135
131
|
"idb": "^8.0",
|
|
136
132
|
"lru-cache": "^11.3",
|
|
137
|
-
"mapbox-gl": "
|
|
133
|
+
"mapbox-gl": "^3.23",
|
|
138
134
|
"observable-fns": "~0.6",
|
|
139
135
|
"pako": "~2.1",
|
|
140
136
|
"store2": "~2.14",
|