@xyo-network/crypto-asset-plugin 2.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +165 -0
- package/README.md +81 -0
- package/dist/cjs/Diviner.d.ts +16 -0
- package/dist/cjs/Diviner.d.ts.map +1 -0
- package/dist/cjs/Diviner.js +33 -0
- package/dist/cjs/Diviner.js.map +1 -0
- package/dist/cjs/Plugin.d.ts +13 -0
- package/dist/cjs/Plugin.d.ts.map +1 -0
- package/dist/cjs/Plugin.js +15 -0
- package/dist/cjs/Plugin.js.map +1 -0
- package/dist/cjs/Schema.d.ts +5 -0
- package/dist/cjs/Schema.d.ts.map +1 -0
- package/dist/cjs/Schema.js +6 -0
- package/dist/cjs/Schema.js.map +1 -0
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +11 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/average.d.ts +3 -0
- package/dist/cjs/lib/average.d.ts.map +1 -0
- package/dist/cjs/lib/average.js +46 -0
- package/dist/cjs/lib/average.js.map +1 -0
- package/dist/cjs/lib/divineCoinGeckoPrices.d.ts +4 -0
- package/dist/cjs/lib/divineCoinGeckoPrices.d.ts.map +1 -0
- package/dist/cjs/lib/divineCoinGeckoPrices.js +29 -0
- package/dist/cjs/lib/divineCoinGeckoPrices.js.map +1 -0
- package/dist/cjs/lib/divinePrices.d.ts +5 -0
- package/dist/cjs/lib/divinePrices.d.ts.map +1 -0
- package/dist/cjs/lib/divinePrices.js +20 -0
- package/dist/cjs/lib/divinePrices.js.map +1 -0
- package/dist/cjs/lib/divineUniswapPrices.d.ts +4 -0
- package/dist/cjs/lib/divineUniswapPrices.d.ts.map +1 -0
- package/dist/cjs/lib/divineUniswapPrices.js +53 -0
- package/dist/cjs/lib/divineUniswapPrices.js.map +1 -0
- package/dist/cjs/lib/index.d.ts +2 -0
- package/dist/cjs/lib/index.d.ts.map +1 -0
- package/dist/cjs/lib/index.js +5 -0
- package/dist/cjs/lib/index.js.map +1 -0
- package/dist/cjs/test/index.d.ts +3 -0
- package/dist/cjs/test/index.d.ts.map +1 -0
- package/dist/cjs/test/index.js +6 -0
- package/dist/cjs/test/index.js.map +1 -0
- package/dist/cjs/test/sampleCoinGecko.d.ts +3 -0
- package/dist/cjs/test/sampleCoinGecko.d.ts.map +1 -0
- package/dist/cjs/test/sampleCoinGecko.js +77 -0
- package/dist/cjs/test/sampleCoinGecko.js.map +1 -0
- package/dist/cjs/test/sampleUniswap.d.ts +3 -0
- package/dist/cjs/test/sampleUniswap.d.ts.map +1 -0
- package/dist/cjs/test/sampleUniswap.js +193 -0
- package/dist/cjs/test/sampleUniswap.js.map +1 -0
- package/dist/docs.json +4536 -0
- package/dist/esm/Diviner.d.ts +16 -0
- package/dist/esm/Diviner.d.ts.map +1 -0
- package/dist/esm/Diviner.js +23 -0
- package/dist/esm/Diviner.js.map +1 -0
- package/dist/esm/Plugin.d.ts +13 -0
- package/dist/esm/Plugin.d.ts.map +1 -0
- package/dist/esm/Plugin.js +10 -0
- package/dist/esm/Plugin.js.map +1 -0
- package/dist/esm/Schema.d.ts +5 -0
- package/dist/esm/Schema.d.ts.map +1 -0
- package/dist/esm/Schema.js +3 -0
- package/dist/esm/Schema.js.map +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/average.d.ts +3 -0
- package/dist/esm/lib/average.d.ts.map +1 -0
- package/dist/esm/lib/average.js +42 -0
- package/dist/esm/lib/average.js.map +1 -0
- package/dist/esm/lib/divineCoinGeckoPrices.d.ts +4 -0
- package/dist/esm/lib/divineCoinGeckoPrices.d.ts.map +1 -0
- package/dist/esm/lib/divineCoinGeckoPrices.js +25 -0
- package/dist/esm/lib/divineCoinGeckoPrices.js.map +1 -0
- package/dist/esm/lib/divinePrices.d.ts +5 -0
- package/dist/esm/lib/divinePrices.d.ts.map +1 -0
- package/dist/esm/lib/divinePrices.js +16 -0
- package/dist/esm/lib/divinePrices.js.map +1 -0
- package/dist/esm/lib/divineUniswapPrices.d.ts +4 -0
- package/dist/esm/lib/divineUniswapPrices.d.ts.map +1 -0
- package/dist/esm/lib/divineUniswapPrices.js +51 -0
- package/dist/esm/lib/divineUniswapPrices.js.map +1 -0
- package/dist/esm/lib/index.d.ts +2 -0
- package/dist/esm/lib/index.d.ts.map +1 -0
- package/dist/esm/lib/index.js +2 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/test/index.d.ts +3 -0
- package/dist/esm/test/index.d.ts.map +1 -0
- package/dist/esm/test/index.js +3 -0
- package/dist/esm/test/index.js.map +1 -0
- package/dist/esm/test/sampleCoinGecko.d.ts +3 -0
- package/dist/esm/test/sampleCoinGecko.d.ts.map +1 -0
- package/dist/esm/test/sampleCoinGecko.js +74 -0
- package/dist/esm/test/sampleCoinGecko.js.map +1 -0
- package/dist/esm/test/sampleUniswap.d.ts +3 -0
- package/dist/esm/test/sampleUniswap.d.ts.map +1 -0
- package/dist/esm/test/sampleUniswap.js +190 -0
- package/dist/esm/test/sampleUniswap.js.map +1 -0
- package/package.json +82 -0
- package/src/Diviner.spec.ts +28 -0
- package/src/Diviner.ts +32 -0
- package/src/Plugin.spec.ts +11 -0
- package/src/Plugin.ts +16 -0
- package/src/Schema.ts +5 -0
- package/src/index.ts +9 -0
- package/src/lib/averaege.spec.ts +30 -0
- package/src/lib/average.ts +53 -0
- package/src/lib/divineCoinGeckoPrices.spec.ts +29 -0
- package/src/lib/divineCoinGeckoPrices.ts +34 -0
- package/src/lib/divinePrices.spec.ts +14 -0
- package/src/lib/divinePrices.ts +23 -0
- package/src/lib/divineUniswapPrices.spec.ts +13 -0
- package/src/lib/divineUniswapPrices.ts +65 -0
- package/src/lib/index.ts +1 -0
- package/src/test/index.ts +2 -0
- package/src/test/sampleCoinGecko.ts +74 -0
- package/src/test/sampleUniswap.ts +190 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AbstractDiviner, DivinerConfig } from '@xyo-network/diviner';
|
|
2
|
+
import { XyoModuleParams } from '@xyo-network/module';
|
|
3
|
+
import { XyoPayloads } from '@xyo-network/payload';
|
|
4
|
+
import { Promisable } from '@xyo-network/promise';
|
|
5
|
+
import { XyoCryptoMarketAssetDivinerConfigSchema } from './Schema';
|
|
6
|
+
export type XyoCryptoMarketAssetDivinerConfig = DivinerConfig<{
|
|
7
|
+
schema: XyoCryptoMarketAssetDivinerConfigSchema;
|
|
8
|
+
}>;
|
|
9
|
+
export declare class XyoCryptoMarketAssetDiviner extends AbstractDiviner {
|
|
10
|
+
static configSchema: "network.xyo.crypto.asset.diviner.config";
|
|
11
|
+
static targetSchema: "network.xyo.crypto.asset";
|
|
12
|
+
static create(params?: XyoModuleParams<XyoCryptoMarketAssetDivinerConfig>): Promise<XyoCryptoMarketAssetDiviner>;
|
|
13
|
+
divine(payloads?: XyoPayloads): Promisable<XyoPayloads>;
|
|
14
|
+
queries(): string[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=Diviner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,aAAa,EAA+B,MAAM,sBAAsB,CAAA;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIjD,OAAO,EAAE,uCAAuC,EAAE,MAAM,UAAU,CAAA;AAElE,MAAM,MAAM,iCAAiC,GAAG,aAAa,CAAC;IAAE,MAAM,EAAE,uCAAuC,CAAA;CAAE,CAAC,CAAA;AAElH,qBAAa,2BAA4B,SAAQ,eAAe;IAC9D,OAAgB,YAAY,4CAA0C;IACtE,OAAgB,YAAY,6BAA6B;WAEnC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,iCAAiC,CAAC;IAIxE,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAO9D,OAAO;CAGjB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { XyoCoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin';
|
|
2
|
+
import { XyoCryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin';
|
|
3
|
+
import { AbstractDiviner, XyoDivinerDivineQuerySchema } from '@xyo-network/diviner';
|
|
4
|
+
import { XyoUniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin';
|
|
5
|
+
import { divinePrices } from './lib';
|
|
6
|
+
import { XyoCryptoMarketAssetDivinerConfigSchema } from './Schema';
|
|
7
|
+
export class XyoCryptoMarketAssetDiviner extends AbstractDiviner {
|
|
8
|
+
static configSchema = XyoCryptoMarketAssetDivinerConfigSchema;
|
|
9
|
+
static targetSchema = XyoCryptoMarketAssetSchema;
|
|
10
|
+
static async create(params) {
|
|
11
|
+
return (await super.create(params));
|
|
12
|
+
}
|
|
13
|
+
divine(payloads) {
|
|
14
|
+
const coinGeckoPayload = payloads?.find((payload) => payload?.schema === XyoCoingeckoCryptoMarketSchema);
|
|
15
|
+
const uniswapPayload = payloads?.find((payload) => payload?.schema === XyoUniswapCryptoMarketSchema);
|
|
16
|
+
const result = divinePrices(coinGeckoPayload, uniswapPayload);
|
|
17
|
+
return [result];
|
|
18
|
+
}
|
|
19
|
+
queries() {
|
|
20
|
+
return [XyoDivinerDivineQuerySchema, ...super.queries()];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=Diviner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,8BAA8B,EAAE,MAAM,qDAAqD,CAAA;AACrI,OAAO,EAA+B,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AAClH,OAAO,EAAE,eAAe,EAAiB,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAIlG,OAAO,EAAiC,4BAA4B,EAAE,MAAM,mDAAmD,CAAA;AAE/H,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,EAAE,uCAAuC,EAAE,MAAM,UAAU,CAAA;AAIlE,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D,MAAM,CAAU,YAAY,GAAG,uCAAuC,CAAA;IACtE,MAAM,CAAU,YAAY,GAAG,0BAA0B,CAAA;IAEzD,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAA2D;QACtF,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAgC,CAAA;IACpE,CAAC;IAEe,MAAM,CAAC,QAAsB;QAC3C,MAAM,gBAAgB,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,8BAA8B,CAAoC,CAAA;QAC3I,MAAM,cAAc,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,4BAA4B,CAAkC,CAAA;QACrI,MAAM,MAAM,GAAgC,YAAY,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;QAC1F,OAAO,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IAEQ,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { XyoModuleParams } from '@xyo-network/module';
|
|
2
|
+
import { PayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin';
|
|
3
|
+
export declare const XyoCryptoMarketAssetPlugin: () => PayloadSetDivinerPlugin<XyoModuleParams<import("@xyo-network/payload").SchemaFields & import("@xyo-network/payload").PayloadFields & {
|
|
4
|
+
security?: {
|
|
5
|
+
allowed?: Record<string, string[][]> | undefined;
|
|
6
|
+
disallowed?: Record<string, string[]> | undefined;
|
|
7
|
+
} | undefined;
|
|
8
|
+
} & {
|
|
9
|
+
targetSchema?: "network.xyo.crypto.asset.diviner.config" | undefined;
|
|
10
|
+
} & {
|
|
11
|
+
schema: string;
|
|
12
|
+
}>>;
|
|
13
|
+
//# sourceMappingURL=Plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAA0B,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAIhG,eAAO,MAAM,0BAA0B;;;;;;;;;GAQpC,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { XyoCryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin';
|
|
2
|
+
import { PayloadSetSchema } from '@xyo-network/payload';
|
|
3
|
+
import { createPayloadSetPlugin } from '@xyo-network/payloadset-plugin';
|
|
4
|
+
import { XyoCryptoMarketAssetDiviner } from './Diviner';
|
|
5
|
+
export const XyoCryptoMarketAssetPlugin = () => createPayloadSetPlugin({ required: { [XyoCryptoMarketAssetSchema]: 1 }, schema: PayloadSetSchema }, {
|
|
6
|
+
diviner: async (params) => {
|
|
7
|
+
return await XyoCryptoMarketAssetDiviner.create(params);
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=Plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AAErF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAA2B,MAAM,gCAAgC,CAAA;AAEhG,OAAO,EAAE,2BAA2B,EAAqC,MAAM,WAAW,CAAA;AAE1F,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,EAAE,CAC7C,sBAAsB,CACpB,EAAE,QAAQ,EAAE,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAC3E;IACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,OAAO,MAAM,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;CACF,CACF,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type XyoCryptoMarketAssetDivinerQuerySchema = 'network.xyo.crypto.asset.diviner.query';
|
|
2
|
+
export declare const XyoCryptoMarketAssetDivinerQuerySchema: XyoCryptoMarketAssetDivinerQuerySchema;
|
|
3
|
+
export type XyoCryptoMarketAssetDivinerConfigSchema = 'network.xyo.crypto.asset.diviner.config';
|
|
4
|
+
export declare const XyoCryptoMarketAssetDivinerConfigSchema: XyoCryptoMarketAssetDivinerConfigSchema;
|
|
5
|
+
//# sourceMappingURL=Schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sCAAsC,GAAG,wCAAwC,CAAA;AAC7F,eAAO,MAAM,sCAAsC,EAAE,sCAAiF,CAAA;AAEtI,MAAM,MAAM,uCAAuC,GAAG,yCAAyC,CAAA;AAC/F,eAAO,MAAM,uCAAuC,EAAE,uCAAmF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,sCAAsC,GAA2C,wCAAwC,CAAA;AAGtI,MAAM,CAAC,MAAM,uCAAuC,GAA4C,yCAAyC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAErD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AAExB,OAAO,EAAE,0BAA0B,EAAE,CAAA;AAGrC,eAAe,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { XyoCryptoMarketAssetPlugin } from './Plugin';
|
|
2
|
+
export * from './Diviner';
|
|
3
|
+
export * from './Schema';
|
|
4
|
+
export { XyoCryptoMarketAssetPlugin };
|
|
5
|
+
// eslint-disable-next-line import/no-default-export
|
|
6
|
+
export default XyoCryptoMarketAssetPlugin;
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAErD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AAExB,OAAO,EAAE,0BAA0B,EAAE,CAAA;AAErC,oDAAoD;AACpD,eAAe,0BAA0B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"average.d.ts","sourceRoot":"","sources":["../../../src/lib/average.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAmB,2BAA2B,EAAE,MAAM,0CAA0C,CAAA;AAiBlH,eAAO,MAAM,OAAO,aAAc,CAAC,2BAA2B,GAAG,SAAS,CAAC,EAAE,KAAG,OAAO,MAAM,EAAE,SAAS,CAkCvG,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { exists } from '@xylabs/exists';
|
|
2
|
+
const isNumber = (val) => {
|
|
3
|
+
return val !== undefined;
|
|
4
|
+
};
|
|
5
|
+
const parseStringifiedNumber = (value) => {
|
|
6
|
+
if (!value)
|
|
7
|
+
return undefined;
|
|
8
|
+
const parsed = parseFloat(value);
|
|
9
|
+
return isNaN(parsed) ? undefined : parsed;
|
|
10
|
+
};
|
|
11
|
+
const averageStringifiedNumbers = (...prices) => {
|
|
12
|
+
const numbers = prices.map(parseStringifiedNumber).filter(isNumber);
|
|
13
|
+
return numbers.length ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : undefined;
|
|
14
|
+
};
|
|
15
|
+
export const average = (...input) => {
|
|
16
|
+
// Get all the assets represented
|
|
17
|
+
const payloads = input.filter(exists);
|
|
18
|
+
const tokens = new Set(payloads.map((payload) => Object.keys(payload.assets).map((t) => t)).flatMap((t) => t));
|
|
19
|
+
// Get all the valuations used
|
|
20
|
+
const valuations = new Set([...tokens]
|
|
21
|
+
.map((asset) => {
|
|
22
|
+
const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists);
|
|
23
|
+
const valueBasis = new Set(assetInfo
|
|
24
|
+
.map((v) => Object.keys(v.value))
|
|
25
|
+
.flatMap((v) => v)
|
|
26
|
+
.filter(exists));
|
|
27
|
+
return [...valueBasis];
|
|
28
|
+
})
|
|
29
|
+
.flatMap((v) => v));
|
|
30
|
+
// For each of the tokens, calculate the average valuation for each of valuation bases
|
|
31
|
+
const assets = Object.fromEntries([...tokens].map((token) => {
|
|
32
|
+
const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists);
|
|
33
|
+
const value = Object.fromEntries([...valuations].map((valuation) => {
|
|
34
|
+
const assetValuations = assetInfo.map((info) => info.value?.[valuation]);
|
|
35
|
+
const averageAssetValuation = averageStringifiedNumbers(...assetValuations);
|
|
36
|
+
return [valuation, averageAssetValuation?.toString()];
|
|
37
|
+
}));
|
|
38
|
+
return [token, { value }];
|
|
39
|
+
}));
|
|
40
|
+
return assets;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=average.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"average.js","sourceRoot":"","sources":["../../../src/lib/average.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { XyoCoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin';
|
|
2
|
+
import { XyoCryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin';
|
|
3
|
+
export declare const divineCoinGeckoPrices: (payload: XyoCoingeckoCryptoMarketPayload | undefined) => XyoCryptoMarketAssetPayload;
|
|
4
|
+
//# sourceMappingURL=divineCoinGeckoPrices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divineCoinGeckoPrices.d.ts","sourceRoot":"","sources":["../../../src/lib/divineCoinGeckoPrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAA;AACrG,OAAO,EAAa,2BAA2B,EAA8B,MAAM,0CAA0C,CAAA;AAc7H,eAAO,MAAM,qBAAqB,YAAa,+BAA+B,GAAG,SAAS,KAAG,2BAkB5F,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { XyoCryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin';
|
|
2
|
+
import { XyoPayloadBuilder } from '@xyo-network/payload';
|
|
3
|
+
const schema = XyoCryptoMarketAssetSchema;
|
|
4
|
+
const valuationExists = (value) => {
|
|
5
|
+
return !!value[1];
|
|
6
|
+
};
|
|
7
|
+
const otherValueExists = (value) => {
|
|
8
|
+
const possiblyNumber = value[1];
|
|
9
|
+
return typeof possiblyNumber === 'number' && !isNaN(possiblyNumber);
|
|
10
|
+
};
|
|
11
|
+
export const divineCoinGeckoPrices = (payload) => {
|
|
12
|
+
const assets = payload && payload?.assets
|
|
13
|
+
? Object.fromEntries(Object.entries(payload.assets)
|
|
14
|
+
.filter(valuationExists)
|
|
15
|
+
.map(([asset, valuation]) => {
|
|
16
|
+
const value = Object.fromEntries(Object.entries(valuation)
|
|
17
|
+
.filter(otherValueExists)
|
|
18
|
+
.map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()]));
|
|
19
|
+
return [asset, { value }];
|
|
20
|
+
}))
|
|
21
|
+
: {};
|
|
22
|
+
const timestamp = Date.now();
|
|
23
|
+
return new XyoPayloadBuilder({ schema }).fields({ assets, timestamp }).build();
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=divineCoinGeckoPrices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divineCoinGeckoPrices.js","sourceRoot":"","sources":["../../../src/lib/divineCoinGeckoPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAA0C,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AAC7H,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,MAAM,MAAM,GAAG,0BAA0B,CAAA;AAEzC,MAAM,eAAe,GAAG,CAAC,KAA4D,EAAsD,EAAE;IAC3I,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAmC,EAA6B,EAAE;IAC1F,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,OAAO,cAAc,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;AACrE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAoD,EAA+B,EAAE;IACzH,MAAM,MAAM,GACV,OAAO,IAAI,OAAO,EAAE,MAAM;QACxB,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,eAAe,CAAC;aACvB,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;iBACtB,MAAM,CAAC,gBAAgB,CAAC;iBACxB,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CACvE,CAAA;YACD,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3B,CAAC,CAAC,CACL;QACH,CAAC,CAAC,EAAE,CAAA;IACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,OAAO,IAAI,iBAAiB,CAA8B,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;AAC7G,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { XyoCoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin';
|
|
2
|
+
import { XyoCryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin';
|
|
3
|
+
import { XyoUniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin';
|
|
4
|
+
export declare const divinePrices: (coinGeckoPayload: XyoCoingeckoCryptoMarketPayload | undefined, uniswapPayload: XyoUniswapCryptoMarketPayload | undefined) => XyoCryptoMarketAssetPayload;
|
|
5
|
+
//# sourceMappingURL=divinePrices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divinePrices.d.ts","sourceRoot":"","sources":["../../../src/lib/divinePrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAA;AACrG,OAAO,EAAE,2BAA2B,EAA8B,MAAM,0CAA0C,CAAA;AAElH,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AAQjG,eAAO,MAAM,YAAY,qBACL,+BAA+B,GAAG,SAAS,kBAC7C,6BAA6B,GAAG,SAAS,KACxD,2BAOF,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { exists } from '@xylabs/exists';
|
|
2
|
+
import { XyoCryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin';
|
|
3
|
+
import { XyoPayloadBuilder } from '@xyo-network/payload';
|
|
4
|
+
import { average } from './average';
|
|
5
|
+
import { divineCoinGeckoPrices } from './divineCoinGeckoPrices';
|
|
6
|
+
import { divineUniswapPrices } from './divineUniswapPrices';
|
|
7
|
+
const schema = XyoCryptoMarketAssetSchema;
|
|
8
|
+
export const divinePrices = (coinGeckoPayload, uniswapPayload) => {
|
|
9
|
+
const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload);
|
|
10
|
+
const uniswapPrices = divineUniswapPrices(uniswapPayload);
|
|
11
|
+
const prices = [uniswapPayload, coinGeckoPayload].some(exists);
|
|
12
|
+
const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {};
|
|
13
|
+
const timestamp = Date.now();
|
|
14
|
+
return new XyoPayloadBuilder({ schema }).fields({ assets, timestamp }).build();
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=divinePrices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divinePrices.js","sourceRoot":"","sources":["../../../src/lib/divinePrices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,OAAO,EAA+B,0BAA0B,EAAE,MAAM,0CAA0C,CAAA;AAClH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,MAAM,GAAG,0BAA0B,CAAA;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,gBAA6D,EAC7D,cAAyD,EAC5B,EAAE;IAC/B,MAAM,eAAe,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAA;IAC/D,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,OAAO,IAAI,iBAAiB,CAA8B,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;AAC7G,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { XyoCryptoMarketAssetPayload } from '@xyo-network/crypto-asset-payload-plugin';
|
|
2
|
+
import { XyoUniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin';
|
|
3
|
+
export declare const divineUniswapPrices: (uniswapPayload: XyoUniswapCryptoMarketPayload | undefined) => XyoCryptoMarketAssetPayload;
|
|
4
|
+
//# sourceMappingURL=divineUniswapPrices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divineUniswapPrices.d.ts","sourceRoot":"","sources":["../../../src/lib/divineUniswapPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,2BAA2B,EAE5B,MAAM,0CAA0C,CAAA;AAEjD,OAAO,EAAE,6BAA6B,EAA+C,MAAM,mDAAmD,CAAA;AAuC9I,eAAO,MAAM,mBAAmB,mBAAoB,6BAA6B,GAAG,SAAS,KAAG,2BAe/F,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { exists } from '@xylabs/exists';
|
|
2
|
+
import { XyoCryptoMarketAssetSchema, } from '@xyo-network/crypto-asset-payload-plugin';
|
|
3
|
+
import { XyoPayloadBuilder } from '@xyo-network/payload';
|
|
4
|
+
const schema = XyoCryptoMarketAssetSchema;
|
|
5
|
+
const mapUniswapToken = (symbol) => {
|
|
6
|
+
// TODO: Actually calculate the value of the token/stablecoin based on others
|
|
7
|
+
// to weed out individual fluctuations in price
|
|
8
|
+
if (symbol.toLowerCase() === 'wbtc')
|
|
9
|
+
return 'btc';
|
|
10
|
+
if (symbol.toLowerCase() === 'weth')
|
|
11
|
+
return 'eth';
|
|
12
|
+
if (symbol.toLowerCase() === 'usdt')
|
|
13
|
+
return 'usd';
|
|
14
|
+
return symbol.toLowerCase();
|
|
15
|
+
};
|
|
16
|
+
const pairsContainingToken = (uniswapPayload, token) => {
|
|
17
|
+
return uniswapPayload?.pairs
|
|
18
|
+
.map((p) => p.tokens)
|
|
19
|
+
.filter((p) => p.some((x) => x.symbol.toLowerCase() === token))
|
|
20
|
+
.filter(exists);
|
|
21
|
+
};
|
|
22
|
+
const tokensFromPairs = (pairs) => {
|
|
23
|
+
return pairs
|
|
24
|
+
.map((p) => p.tokens)
|
|
25
|
+
.flatMap((t) => t)
|
|
26
|
+
.map((t) => t.symbol.toLowerCase());
|
|
27
|
+
};
|
|
28
|
+
const valuesFromTokenPairs = (tokensPairs, token) => {
|
|
29
|
+
return Object.fromEntries(tokensPairs
|
|
30
|
+
.map((pair) => {
|
|
31
|
+
const current = pair.filter((p) => p.symbol.toLowerCase() === token)?.[0];
|
|
32
|
+
const other = pair.filter((p) => p.symbol.toLowerCase() !== token)?.[0];
|
|
33
|
+
return [other.symbol.toLowerCase(), current.value.toString()];
|
|
34
|
+
})
|
|
35
|
+
.map((x) => [mapUniswapToken(x[0]), x[1]]));
|
|
36
|
+
};
|
|
37
|
+
export const divineUniswapPrices = (uniswapPayload) => {
|
|
38
|
+
let assets = {};
|
|
39
|
+
if (uniswapPayload) {
|
|
40
|
+
const tokens = new Set(tokensFromPairs(uniswapPayload.pairs));
|
|
41
|
+
assets = Object.fromEntries([...tokens].map((token) => {
|
|
42
|
+
const pairs = pairsContainingToken(uniswapPayload, token);
|
|
43
|
+
const value = valuesFromTokenPairs(pairs, token);
|
|
44
|
+
const assetInfo = { value };
|
|
45
|
+
return [token, assetInfo];
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
const timestamp = Date.now();
|
|
49
|
+
return new XyoPayloadBuilder({ schema }).fields({ assets, timestamp }).build();
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=divineUniswapPrices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divineUniswapPrices.js","sourceRoot":"","sources":["../../../src/lib/divineUniswapPrices.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleCoinGecko.d.ts","sourceRoot":"","sources":["../../../src/test/sampleCoinGecko.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAkC,MAAM,qDAAqD,CAAA;AAErI,eAAO,MAAM,sBAAsB,EAAE,+BAuEpC,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { XyoCoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin';
|
|
2
|
+
export const sampleCoinGeckoPayload = {
|
|
3
|
+
assets: {
|
|
4
|
+
ada: {
|
|
5
|
+
btc: 0.00002163,
|
|
6
|
+
eth: 0.00030472,
|
|
7
|
+
eur: 0.488106,
|
|
8
|
+
usd: 0.495442,
|
|
9
|
+
},
|
|
10
|
+
btc: {
|
|
11
|
+
btc: 1,
|
|
12
|
+
eth: 14.068021,
|
|
13
|
+
eur: 22545,
|
|
14
|
+
usd: 22884,
|
|
15
|
+
},
|
|
16
|
+
busd: {
|
|
17
|
+
btc: 0.00004342,
|
|
18
|
+
eth: 0.00061145,
|
|
19
|
+
eur: 0.979882,
|
|
20
|
+
usd: 0.994609,
|
|
21
|
+
},
|
|
22
|
+
doge: {
|
|
23
|
+
btc: 0.00000288,
|
|
24
|
+
eth: 0.00004062,
|
|
25
|
+
eur: 0.065066,
|
|
26
|
+
usd: 0.066044,
|
|
27
|
+
},
|
|
28
|
+
dot: {
|
|
29
|
+
btc: 0.00033067,
|
|
30
|
+
eth: 0.00465702,
|
|
31
|
+
eur: 7.46,
|
|
32
|
+
usd: 7.58,
|
|
33
|
+
},
|
|
34
|
+
eth: {
|
|
35
|
+
btc: 0.07099216,
|
|
36
|
+
eth: 1,
|
|
37
|
+
eur: 1602.25,
|
|
38
|
+
usd: 1626.33,
|
|
39
|
+
},
|
|
40
|
+
sol: {
|
|
41
|
+
btc: 0.00173417,
|
|
42
|
+
eth: 0.02442315,
|
|
43
|
+
eur: 39.14,
|
|
44
|
+
usd: 39.73,
|
|
45
|
+
},
|
|
46
|
+
usdc: {
|
|
47
|
+
btc: 0.00004371,
|
|
48
|
+
eth: 0.00061556,
|
|
49
|
+
eur: 0.986471,
|
|
50
|
+
usd: 1.001,
|
|
51
|
+
},
|
|
52
|
+
usdt: {
|
|
53
|
+
btc: 0.0000437,
|
|
54
|
+
eth: 0.00061548,
|
|
55
|
+
eur: 0.986332,
|
|
56
|
+
usd: 1.001,
|
|
57
|
+
},
|
|
58
|
+
wbtc: {
|
|
59
|
+
btc: 1.000635,
|
|
60
|
+
eth: 14.092397,
|
|
61
|
+
eur: 22584,
|
|
62
|
+
usd: 22923,
|
|
63
|
+
},
|
|
64
|
+
xyo: {
|
|
65
|
+
btc: 6.28282e-7,
|
|
66
|
+
eth: 0.00000885,
|
|
67
|
+
eur: 0.01417995,
|
|
68
|
+
usd: 0.01439307,
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
schema: XyoCoingeckoCryptoMarketSchema,
|
|
72
|
+
timestamp: 1659012060785,
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=sampleCoinGecko.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleCoinGecko.js","sourceRoot":"","sources":["../../../src/test/sampleCoinGecko.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,8BAA8B,EAAE,MAAM,qDAAqD,CAAA;AAErI,MAAM,CAAC,MAAM,sBAAsB,GAAoC;IACrE,MAAM,EAAE;QACN,GAAG,EAAE;YACH,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,QAAQ;SACd;QACD,GAAG,EAAE;YACH,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,KAAK;SACX;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,QAAQ;SACd;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,QAAQ;SACd;QACD,GAAG,EAAE;YACH,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;SACV;QACD,GAAG,EAAE;YACH,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,OAAO;SACb;QACD,GAAG,EAAE;YACH,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,KAAK;SACX;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,KAAK;SACX;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,KAAK;SACX;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,KAAK;SACX;QACD,GAAG,EAAE;YACH,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU;SAChB;KACF;IACD,MAAM,EAAE,8BAA8B;IACtC,SAAS,EAAE,aAAa;CACzB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleUniswap.d.ts","sourceRoot":"","sources":["../../../src/test/sampleUniswap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAgC,MAAM,mDAAmD,CAAA;AAE/H,eAAO,MAAM,oBAAoB,EAAE,6BA2LlC,CAAA"}
|