@xyo-network/payloadset-plugins 8.0.0 → 8.0.2
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/modules/crypto-asset/Diviner.d.ts.map +1 -1
- package/dist/browser/modules/crypto-asset/lib/divinePrices.d.ts +1 -1
- package/dist/browser/modules/crypto-asset/lib/divinePrices.d.ts.map +1 -1
- package/dist/browser/modules/crypto-asset/lib/divineUniswapPrices.d.ts +6 -1
- package/dist/browser/modules/crypto-asset/lib/divineUniswapPrices.d.ts.map +1 -1
- package/dist/browser/modules/crypto-asset/lib/uniswapQuotes.d.ts +11 -0
- package/dist/browser/modules/crypto-asset/lib/uniswapQuotes.d.ts.map +1 -0
- package/dist/browser/modules/crypto-asset/lib/usdPricesFromQuotes.d.ts +8 -0
- package/dist/browser/modules/crypto-asset/lib/usdPricesFromQuotes.d.ts.map +1 -0
- package/dist/browser/modules/crypto-asset/test/buildUniswapPayload.d.ts +5 -0
- package/dist/browser/modules/crypto-asset/test/buildUniswapPayload.d.ts.map +1 -0
- package/dist/browser/modules/crypto-asset/test/index.d.ts +4 -0
- package/dist/browser/modules/crypto-asset/test/index.d.ts.map +1 -1
- package/dist/browser/modules/crypto-asset/test/sampleCryptoAssetReference.d.ts +8 -0
- package/dist/browser/modules/crypto-asset/test/sampleCryptoAssetReference.d.ts.map +1 -0
- package/dist/browser/modules/crypto-asset/test/sampleUniswapV3.d.ts +3 -0
- package/dist/browser/modules/crypto-asset/test/sampleUniswapV3.d.ts.map +1 -0
- package/dist/browser/modules/crypto-asset/test/sampleUniswapV4.d.ts +3 -0
- package/dist/browser/modules/crypto-asset/test/sampleUniswapV4.d.ts.map +1 -0
- package/dist/browser/modules/crypto-nft-collection-witness/Witness.d.ts +2 -2
- package/dist/browser/modules/crypto-nft-collection-witness/Witness.d.ts.map +1 -1
- package/dist/browser/modules/crypto-nft-witness-wallet/Witness.d.ts +2 -2
- package/dist/browser/modules/crypto-nft-witness-wallet/Witness.d.ts.map +1 -1
- package/dist/browser/modules/erc1822-witness/Witness.d.ts +2 -2
- package/dist/browser/modules/erc1822-witness/Witness.d.ts.map +1 -1
- package/dist/browser/modules/erc1967-witness/Witness.d.ts +2 -2
- package/dist/browser/modules/erc1967-witness/Witness.d.ts.map +1 -1
- package/dist/browser/modules/evm-call-witness/Witness.d.ts +1 -1
- package/dist/browser/modules/evm-call-witness/Witness.d.ts.map +1 -1
- package/dist/browser/modules/evm-call-witness/model.d.ts +1 -1
- package/dist/browser/modules/evm-call-witness/model.d.ts.map +1 -1
- package/dist/browser/modules/evm-contract-witness/Witness.d.ts +2 -2
- package/dist/browser/modules/evm-contract-witness/Witness.d.ts.map +1 -1
- package/dist/browser/modules/evm-events-witness/Witness.d.ts +1 -1
- package/dist/browser/modules/evm-events-witness/Witness.d.ts.map +1 -1
- package/dist/browser/modules/evm-events-witness/model.d.ts +1 -1
- package/dist/browser/modules/evm-events-witness/model.d.ts.map +1 -1
- package/dist/browser/modules/uniswap-v3-crypto-market/lib/UniswapV3CryptoAssetPools.d.ts +7 -0
- package/dist/browser/modules/uniswap-v3-crypto-market/lib/UniswapV3CryptoAssetPools.d.ts.map +1 -0
- package/dist/browser/modules/uniswap-v3-crypto-market/lib/index.d.ts +1 -0
- package/dist/browser/modules/uniswap-v3-crypto-market/lib/index.d.ts.map +1 -1
- package/dist/browser/modules/uniswap-v4-crypto-market/lib/UniswapV4DefaultPools.d.ts +4 -0
- package/dist/browser/modules/uniswap-v4-crypto-market/lib/UniswapV4DefaultPools.d.ts.map +1 -1
- package/dist/browser/modules/uniswap-v4-crypto-market/lib/getExchangeRate.d.ts +2 -1
- package/dist/browser/modules/uniswap-v4-crypto-market/lib/getExchangeRate.d.ts.map +1 -1
- package/dist/browser/modules/uniswap-v4-crypto-market/lib/getPriceFromSqrtX96.d.ts.map +1 -1
- package/dist/browser/modules/uniswap-v4-crypto-market/lib/pricesFromUniswapV4.d.ts +6 -1
- package/dist/browser/modules/uniswap-v4-crypto-market/lib/pricesFromUniswapV4.d.ts.map +1 -1
- package/dist/neutral/crypto-asset.mjs +115 -42
- package/dist/neutral/crypto-asset.mjs.map +4 -4
- package/dist/neutral/crypto-nft-collection-witness.mjs +2 -2
- package/dist/neutral/crypto-nft-collection-witness.mjs.map +1 -1
- package/dist/neutral/crypto-nft-witness-wallet.mjs +2 -2
- package/dist/neutral/crypto-nft-witness-wallet.mjs.map +1 -1
- package/dist/neutral/erc1822-witness.mjs +1 -1
- package/dist/neutral/erc1822-witness.mjs.map +1 -1
- package/dist/neutral/erc1967-witness.mjs +1 -1
- package/dist/neutral/erc1967-witness.mjs.map +1 -1
- package/dist/neutral/evm-call-witness.mjs +1 -1
- package/dist/neutral/evm-call-witness.mjs.map +1 -1
- package/dist/neutral/evm-contract-witness.mjs +1 -1
- package/dist/neutral/evm-contract-witness.mjs.map +1 -1
- package/dist/neutral/evm-events-witness.mjs +1 -1
- package/dist/neutral/evm-events-witness.mjs.map +1 -1
- package/dist/neutral/modules/crypto-asset/Diviner.d.ts.map +1 -1
- package/dist/neutral/modules/crypto-asset/lib/divinePrices.d.ts +1 -1
- package/dist/neutral/modules/crypto-asset/lib/divinePrices.d.ts.map +1 -1
- package/dist/neutral/modules/crypto-asset/lib/divineUniswapPrices.d.ts +6 -1
- package/dist/neutral/modules/crypto-asset/lib/divineUniswapPrices.d.ts.map +1 -1
- package/dist/neutral/modules/crypto-asset/lib/uniswapQuotes.d.ts +11 -0
- package/dist/neutral/modules/crypto-asset/lib/uniswapQuotes.d.ts.map +1 -0
- package/dist/neutral/modules/crypto-asset/lib/usdPricesFromQuotes.d.ts +8 -0
- package/dist/neutral/modules/crypto-asset/lib/usdPricesFromQuotes.d.ts.map +1 -0
- package/dist/neutral/modules/crypto-asset/test/buildUniswapPayload.d.ts +5 -0
- package/dist/neutral/modules/crypto-asset/test/buildUniswapPayload.d.ts.map +1 -0
- package/dist/neutral/modules/crypto-asset/test/index.d.ts +4 -0
- package/dist/neutral/modules/crypto-asset/test/index.d.ts.map +1 -1
- package/dist/neutral/modules/crypto-asset/test/sampleCryptoAssetReference.d.ts +8 -0
- package/dist/neutral/modules/crypto-asset/test/sampleCryptoAssetReference.d.ts.map +1 -0
- package/dist/neutral/modules/crypto-asset/test/sampleUniswapV3.d.ts +3 -0
- package/dist/neutral/modules/crypto-asset/test/sampleUniswapV3.d.ts.map +1 -0
- package/dist/neutral/modules/crypto-asset/test/sampleUniswapV4.d.ts +3 -0
- package/dist/neutral/modules/crypto-asset/test/sampleUniswapV4.d.ts.map +1 -0
- package/dist/neutral/modules/crypto-nft-collection-witness/Witness.d.ts +2 -2
- package/dist/neutral/modules/crypto-nft-collection-witness/Witness.d.ts.map +1 -1
- package/dist/neutral/modules/crypto-nft-witness-wallet/Witness.d.ts +2 -2
- package/dist/neutral/modules/crypto-nft-witness-wallet/Witness.d.ts.map +1 -1
- package/dist/neutral/modules/erc1822-witness/Witness.d.ts +2 -2
- package/dist/neutral/modules/erc1822-witness/Witness.d.ts.map +1 -1
- package/dist/neutral/modules/erc1967-witness/Witness.d.ts +2 -2
- package/dist/neutral/modules/erc1967-witness/Witness.d.ts.map +1 -1
- package/dist/neutral/modules/evm-call-witness/Witness.d.ts +1 -1
- package/dist/neutral/modules/evm-call-witness/Witness.d.ts.map +1 -1
- package/dist/neutral/modules/evm-call-witness/model.d.ts +1 -1
- package/dist/neutral/modules/evm-call-witness/model.d.ts.map +1 -1
- package/dist/neutral/modules/evm-contract-witness/Witness.d.ts +2 -2
- package/dist/neutral/modules/evm-contract-witness/Witness.d.ts.map +1 -1
- package/dist/neutral/modules/evm-events-witness/Witness.d.ts +1 -1
- package/dist/neutral/modules/evm-events-witness/Witness.d.ts.map +1 -1
- package/dist/neutral/modules/evm-events-witness/model.d.ts +1 -1
- package/dist/neutral/modules/evm-events-witness/model.d.ts.map +1 -1
- package/dist/neutral/modules/uniswap-v3-crypto-market/lib/UniswapV3CryptoAssetPools.d.ts +7 -0
- package/dist/neutral/modules/uniswap-v3-crypto-market/lib/UniswapV3CryptoAssetPools.d.ts.map +1 -0
- package/dist/neutral/modules/uniswap-v3-crypto-market/lib/index.d.ts +1 -0
- package/dist/neutral/modules/uniswap-v3-crypto-market/lib/index.d.ts.map +1 -1
- package/dist/neutral/modules/uniswap-v4-crypto-market/lib/UniswapV4DefaultPools.d.ts +4 -0
- package/dist/neutral/modules/uniswap-v4-crypto-market/lib/UniswapV4DefaultPools.d.ts.map +1 -1
- package/dist/neutral/modules/uniswap-v4-crypto-market/lib/getExchangeRate.d.ts +2 -1
- package/dist/neutral/modules/uniswap-v4-crypto-market/lib/getExchangeRate.d.ts.map +1 -1
- package/dist/neutral/modules/uniswap-v4-crypto-market/lib/getPriceFromSqrtX96.d.ts.map +1 -1
- package/dist/neutral/modules/uniswap-v4-crypto-market/lib/pricesFromUniswapV4.d.ts +6 -1
- package/dist/neutral/modules/uniswap-v4-crypto-market/lib/pricesFromUniswapV4.d.ts.map +1 -1
- package/dist/neutral/uniswap-v3-crypto-market.mjs +21 -0
- package/dist/neutral/uniswap-v3-crypto-market.mjs.map +3 -3
- package/dist/neutral/uniswap-v4-crypto-market.mjs +99 -17
- package/dist/neutral/uniswap-v4-crypto-market.mjs.map +2 -2
- package/dist/node/modules/crypto-asset/Diviner.d.ts.map +1 -1
- package/dist/node/modules/crypto-asset/lib/divinePrices.d.ts +1 -1
- package/dist/node/modules/crypto-asset/lib/divinePrices.d.ts.map +1 -1
- package/dist/node/modules/crypto-asset/lib/divineUniswapPrices.d.ts +6 -1
- package/dist/node/modules/crypto-asset/lib/divineUniswapPrices.d.ts.map +1 -1
- package/dist/node/modules/crypto-asset/lib/uniswapQuotes.d.ts +11 -0
- package/dist/node/modules/crypto-asset/lib/uniswapQuotes.d.ts.map +1 -0
- package/dist/node/modules/crypto-asset/lib/usdPricesFromQuotes.d.ts +8 -0
- package/dist/node/modules/crypto-asset/lib/usdPricesFromQuotes.d.ts.map +1 -0
- package/dist/node/modules/crypto-asset/test/buildUniswapPayload.d.ts +5 -0
- package/dist/node/modules/crypto-asset/test/buildUniswapPayload.d.ts.map +1 -0
- package/dist/node/modules/crypto-asset/test/index.d.ts +4 -0
- package/dist/node/modules/crypto-asset/test/index.d.ts.map +1 -1
- package/dist/node/modules/crypto-asset/test/sampleCryptoAssetReference.d.ts +8 -0
- package/dist/node/modules/crypto-asset/test/sampleCryptoAssetReference.d.ts.map +1 -0
- package/dist/node/modules/crypto-asset/test/sampleUniswapV3.d.ts +3 -0
- package/dist/node/modules/crypto-asset/test/sampleUniswapV3.d.ts.map +1 -0
- package/dist/node/modules/crypto-asset/test/sampleUniswapV4.d.ts +3 -0
- package/dist/node/modules/crypto-asset/test/sampleUniswapV4.d.ts.map +1 -0
- package/dist/node/modules/crypto-nft-collection-witness/Witness.d.ts +2 -2
- package/dist/node/modules/crypto-nft-collection-witness/Witness.d.ts.map +1 -1
- package/dist/node/modules/crypto-nft-witness-wallet/Witness.d.ts +2 -2
- package/dist/node/modules/crypto-nft-witness-wallet/Witness.d.ts.map +1 -1
- package/dist/node/modules/erc1822-witness/Witness.d.ts +2 -2
- package/dist/node/modules/erc1822-witness/Witness.d.ts.map +1 -1
- package/dist/node/modules/erc1967-witness/Witness.d.ts +2 -2
- package/dist/node/modules/erc1967-witness/Witness.d.ts.map +1 -1
- package/dist/node/modules/evm-call-witness/Witness.d.ts +1 -1
- package/dist/node/modules/evm-call-witness/Witness.d.ts.map +1 -1
- package/dist/node/modules/evm-call-witness/model.d.ts +1 -1
- package/dist/node/modules/evm-call-witness/model.d.ts.map +1 -1
- package/dist/node/modules/evm-contract-witness/Witness.d.ts +2 -2
- package/dist/node/modules/evm-contract-witness/Witness.d.ts.map +1 -1
- package/dist/node/modules/evm-events-witness/Witness.d.ts +1 -1
- package/dist/node/modules/evm-events-witness/Witness.d.ts.map +1 -1
- package/dist/node/modules/evm-events-witness/model.d.ts +1 -1
- package/dist/node/modules/evm-events-witness/model.d.ts.map +1 -1
- package/dist/node/modules/uniswap-v3-crypto-market/lib/UniswapV3CryptoAssetPools.d.ts +7 -0
- package/dist/node/modules/uniswap-v3-crypto-market/lib/UniswapV3CryptoAssetPools.d.ts.map +1 -0
- package/dist/node/modules/uniswap-v3-crypto-market/lib/index.d.ts +1 -0
- package/dist/node/modules/uniswap-v3-crypto-market/lib/index.d.ts.map +1 -1
- package/dist/node/modules/uniswap-v4-crypto-market/lib/UniswapV4DefaultPools.d.ts +4 -0
- package/dist/node/modules/uniswap-v4-crypto-market/lib/UniswapV4DefaultPools.d.ts.map +1 -1
- package/dist/node/modules/uniswap-v4-crypto-market/lib/getExchangeRate.d.ts +2 -1
- package/dist/node/modules/uniswap-v4-crypto-market/lib/getExchangeRate.d.ts.map +1 -1
- package/dist/node/modules/uniswap-v4-crypto-market/lib/getPriceFromSqrtX96.d.ts.map +1 -1
- package/dist/node/modules/uniswap-v4-crypto-market/lib/pricesFromUniswapV4.d.ts +6 -1
- package/dist/node/modules/uniswap-v4-crypto-market/lib/pricesFromUniswapV4.d.ts.map +1 -1
- package/package.json +16 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/modules/crypto-asset/Diviner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAC/F,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD,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;
|
|
1
|
+
{"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/modules/crypto-asset/Diviner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAC/F,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD,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;CAOlE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CoingeckoCryptoMarketPayload } from '@xyo-network/payload-plugins/coingecko-crypto-market';
|
|
2
2
|
import type { CryptoMarketAssetPayload } from '@xyo-network/payload-plugins/crypto-asset';
|
|
3
3
|
import type { UniswapCryptoMarketPayload } from '@xyo-network/payload-plugins/uniswap-crypto-market';
|
|
4
|
-
export declare const divinePrices: (coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,
|
|
4
|
+
export declare const divinePrices: (coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined, ...uniswapPayloads: (UniswapCryptoMarketPayload | undefined)[]) => CryptoMarketAssetPayload;
|
|
5
5
|
//# sourceMappingURL=divinePrices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"divinePrices.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/lib/divinePrices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAA;AACxG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAA;AAEzF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAA;AASpG,eAAO,MAAM,YAAY,GACvB,kBAAkB,4BAA4B,GAAG,SAAS,EAC1D,
|
|
1
|
+
{"version":3,"file":"divinePrices.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/lib/divinePrices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAA;AACxG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAA;AAEzF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAA;AASpG,eAAO,MAAM,YAAY,GACvB,kBAAkB,4BAA4B,GAAG,SAAS,EAC1D,GAAG,iBAAiB,CAAC,0BAA0B,GAAG,SAAS,CAAC,EAAE,KAC7D,wBAQF,CAAA"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { CryptoMarketAssetPayload } from '@xyo-network/payload-plugins/crypto-asset';
|
|
2
2
|
import type { UniswapCryptoMarketPayload } from '@xyo-network/payload-plugins/uniswap-crypto-market';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Values each asset in USD, EUR, BTC and ETH from Uniswap pool prices. Every asset is
|
|
5
|
+
* priced in USD first (see usdPricesFromQuotes), then converted at the USD prices of the
|
|
6
|
+
* valuationReferences. Only assets the payload schema knows are included.
|
|
7
|
+
*/
|
|
8
|
+
export declare function divineUniswapPrices(...uniswapPayloads: (UniswapCryptoMarketPayload | undefined)[]): CryptoMarketAssetPayload;
|
|
4
9
|
//# sourceMappingURL=divineUniswapPrices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"divineUniswapPrices.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/lib/divineUniswapPrices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"divineUniswapPrices.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/lib/divineUniswapPrices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACC,wBAAwB,EACpC,MAAM,2CAA2C,CAAA;AAElD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAA;AA4BpG;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,eAAe,EAAE,CAAC,0BAA0B,GAAG,SAAS,CAAC,EAAE,GAAG,wBAAwB,CAyB5H"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { UniswapCryptoMarketPayload } from '@xyo-network/payload-plugins/uniswap-crypto-market';
|
|
2
|
+
/** A price read from one pool: one unit of `base` is worth `rate` units of `quote` */
|
|
3
|
+
export interface UniswapQuote {
|
|
4
|
+
base: string;
|
|
5
|
+
quote: string;
|
|
6
|
+
rate: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function normalizeUniswapSymbol(symbol: string): string;
|
|
9
|
+
/** Flattens the pairs of every payload into quotes between normalized asset symbols */
|
|
10
|
+
export declare function uniswapQuotes(payloads: UniswapCryptoMarketPayload[]): UniswapQuote[];
|
|
11
|
+
//# sourceMappingURL=uniswapQuotes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uniswapQuotes.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/lib/uniswapQuotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAsB,MAAM,oDAAoD,CAAA;AAExH,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG7D;AAYD,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,0BAA0B,EAAE,GAAG,YAAY,EAAE,CAYpF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { UniswapQuote } from './uniswapQuotes.js';
|
|
2
|
+
/**
|
|
3
|
+
* Prices every asset reachable from a USD stablecoin through the quoted pools. Each asset
|
|
4
|
+
* takes the median of its quotes against assets priced before it: first the pricingOrder,
|
|
5
|
+
* then the rest in rounds, nearest to USD first.
|
|
6
|
+
*/
|
|
7
|
+
export declare function usdPricesFromQuotes(quotes: UniswapQuote[]): Map<string, number>;
|
|
8
|
+
//# sourceMappingURL=usdPricesFromQuotes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usdPricesFromQuotes.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/lib/usdPricesFromQuotes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA6BtD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAsB/E"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { UniswapCryptoMarketPayload, UniswapCryptoPair } from '@xyo-network/payload-plugins/uniswap-crypto-market';
|
|
2
|
+
/** A pool pair in which one `base` is worth `rate` of `quote` */
|
|
3
|
+
export declare const uniswapPair: (base: string, rate: number, quote: string) => UniswapCryptoPair;
|
|
4
|
+
export declare const uniswapPayload: (...pairs: UniswapCryptoPair[]) => UniswapCryptoMarketPayload;
|
|
5
|
+
//# sourceMappingURL=buildUniswapPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildUniswapPayload.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/test/buildUniswapPayload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAA;AAGvH,iEAAiE;AACjE,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,iBAStE,CAAA;AAEF,eAAO,MAAM,cAAc,GAAI,GAAG,OAAO,iBAAiB,EAAE,KAAG,0BAE7D,CAAA"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export * from './buildUniswapPayload.js';
|
|
1
2
|
export * from './sampleCoinGecko.js';
|
|
3
|
+
export * from './sampleCryptoAssetReference.js';
|
|
2
4
|
export * from './sampleUniswap.js';
|
|
5
|
+
export * from './sampleUniswapV3.js';
|
|
6
|
+
export * from './sampleUniswapV4.js';
|
|
3
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CryptoMarketAssetPayload } from '@xyo-network/payload-plugins/crypto-asset';
|
|
2
|
+
/**
|
|
3
|
+
* The last aggregate the automation witness divined with CoinGecko prices (2026-09-29T08:09:03Z),
|
|
4
|
+
* archived as aa58d5900e8cb072a5f95946c205c1c70ef9b550361343d6d94d73a66ceb8b00. All but xl1 and xyo
|
|
5
|
+
* are CoinGecko prices alone; those two blend in the XYO:USDT and XL1:USDT Uniswap V4 pools.
|
|
6
|
+
*/
|
|
7
|
+
export declare const sampleCryptoAssetReference: CryptoMarketAssetPayload;
|
|
8
|
+
//# sourceMappingURL=sampleCryptoAssetReference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleCryptoAssetReference.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/test/sampleCryptoAssetReference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAA;AAGzF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,wBAiExC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleUniswapV3.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/test/sampleUniswapV3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAA;AAIpG,eAAO,MAAM,sBAAsB,EAAE,0BAqHpC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampleUniswapV4.d.ts","sourceRoot":"","sources":["../../../../../src/modules/crypto-asset/test/sampleUniswapV4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAA;AAIpG,eAAO,MAAM,sBAAsB,EAAE,0BAmIpC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { NftCollectionInfo, NftCollectionWitnessConfig, NftCollectionWitnessQuery } from '@xyo-network/payload-plugins/crypto-nft-collection';
|
|
2
2
|
import type { Schema } from '@xyo-network/sdk';
|
|
3
|
-
import type { EvmWitnessParams } from '@xyo-network/witness-evm
|
|
4
|
-
import { AbstractEvmWitness } from '@xyo-network/witness-evm
|
|
3
|
+
import type { EvmWitnessParams } from '@xyo-network/witness-evm';
|
|
4
|
+
import { AbstractEvmWitness } from '@xyo-network/witness-evm';
|
|
5
5
|
export type CryptoNftCollectionWitnessParams = EvmWitnessParams<NftCollectionWitnessConfig>;
|
|
6
6
|
export declare class CryptoNftCollectionWitness<TParams extends CryptoNftCollectionWitnessParams = CryptoNftCollectionWitnessParams> extends AbstractEvmWitness<TParams, NftCollectionWitnessQuery, NftCollectionInfo> {
|
|
7
7
|
static readonly configSchemas: Schema[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/crypto-nft-collection-witness/Witness.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,oDAAoD,CAAA;AAM3D,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/crypto-nft-collection-witness/Witness.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,oDAAoD,CAAA;AAM3D,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAM7D,MAAM,MAAM,gCAAgC,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,CAAA;AAoB3F,qBAAa,0BAA0B,CACrC,OAAO,SAAS,gCAAgC,GAAG,gCAAgC,CACnF,SAAQ,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,CAAC;IACjF,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA6D;IAC7G,gBAAyB,mBAAmB,EAAE,MAAM,CAAmC;cAE9D,cAAc,CAAC,QAAQ,CAAC,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAkD9G"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CryptoWalletNftWitnessConfig, NftInfo, NftWitnessQuery } from '@xyo-network/payload-plugins/crypto-nft';
|
|
2
2
|
import type { Schema } from '@xyo-network/sdk';
|
|
3
|
-
import type { EvmWitnessParams } from '@xyo-network/witness-evm
|
|
4
|
-
import { AbstractEvmWitness } from '@xyo-network/witness-evm
|
|
3
|
+
import type { EvmWitnessParams } from '@xyo-network/witness-evm';
|
|
4
|
+
import { AbstractEvmWitness } from '@xyo-network/witness-evm';
|
|
5
5
|
export type CryptoWalletNftWitnessParams = EvmWitnessParams<CryptoWalletNftWitnessConfig>;
|
|
6
6
|
export declare class CryptoWalletNftWitness<TParams extends CryptoWalletNftWitnessParams = CryptoWalletNftWitnessParams> extends AbstractEvmWitness<TParams, NftWitnessQuery, NftInfo> {
|
|
7
7
|
static readonly configSchemas: Schema[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/crypto-nft-witness-wallet/Witness.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,4BAA4B,EAC5B,OAAO,EACP,eAAe,EAChB,MAAM,yCAAyC,CAAA;AAMhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/crypto-nft-witness-wallet/Witness.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,4BAA4B,EAC5B,OAAO,EACP,eAAe,EAChB,MAAM,yCAAyC,CAAA;AAMhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAI7D,MAAM,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,4BAA4B,CAAC,CAAA;AAMzF,qBAAa,sBAAsB,CAAC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,CAAE,SAAQ,kBAAkB,CACzI,OAAO,EACP,eAAe,EACf,OAAO,CACR;IACC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAmD;IACnG,gBAAyB,mBAAmB,EAAE,MAAM,CAAyB;IAE7E,IAAI,YAAY,YAEf;IAED,IAAI,OAAO,WAEV;cAEwB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAqC1F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '@xyo-network/sdk';
|
|
2
|
-
import type { EvmAddress, EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm
|
|
3
|
-
import { AbstractEvmWitness } from '@xyo-network/witness-evm
|
|
2
|
+
import type { EvmAddress, EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm';
|
|
3
|
+
import { AbstractEvmWitness } from '@xyo-network/witness-evm';
|
|
4
4
|
import type { Erc1822Status } from './Payload.js';
|
|
5
5
|
export declare const Erc1822WitnessConfigSchema: "network.xyo.erc1822.witness.config" & {
|
|
6
6
|
readonly __schema: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/erc1822-witness/Witness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAAE,gBAAgB,EACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/erc1822-witness/Witness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAAE,gBAAgB,EACnC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAoB,MAAM,0BAA0B,CAAA;AAG/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,eAAO,MAAM,0BAA0B;;CAAuD,CAAA;AAC9F,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,0BAA0B,CAAC,CAAA;AAErG,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AAEzE,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,kBAAkB,CACjH,OAAO,EACP,UAAU,EACV,aAAa,CACd;IACC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAuD;IACvG,gBAAyB,mBAAmB,EAAE,MAAM,CAA6B;cAExD,cAAc,CAAC,UAAU,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAkCjG"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '@xyo-network/sdk';
|
|
2
|
-
import type { EvmAddress, EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm
|
|
3
|
-
import { AbstractEvmWitness } from '@xyo-network/witness-evm
|
|
2
|
+
import type { EvmAddress, EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm';
|
|
3
|
+
import { AbstractEvmWitness } from '@xyo-network/witness-evm';
|
|
4
4
|
import type { Erc1967Status } from './Payload.js';
|
|
5
5
|
export declare const Erc1967WitnessConfigSchema: "network.xyo.erc1967.witness.config" & {
|
|
6
6
|
readonly __schema: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/erc1967-witness/Witness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAAE,gBAAgB,EACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/erc1967-witness/Witness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAAE,gBAAgB,EACnC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAoB,MAAM,0BAA0B,CAAA;AAG/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,eAAO,MAAM,0BAA0B;;CAAuD,CAAA;AAC9F,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,0BAA0B,CAAC,CAAA;AAErG,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;AAEzE,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,kBAAkB,CACjH,OAAO,EACP,UAAU,EACV,aAAa,CACd;IACC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAuD;IACvG,gBAAyB,mBAAmB,EAAE,MAAM,CAA6B;cAExD,cAAc,CAAC,UAAU,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAsCjG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Schema } from '@xyo-network/sdk';
|
|
2
|
-
import { AbstractEvmWitness } from '@xyo-network/witness-evm
|
|
2
|
+
import { AbstractEvmWitness } from '@xyo-network/witness-evm';
|
|
3
3
|
import type { InterfaceAbi } from 'ethers';
|
|
4
4
|
import type { EvmCallWitnessParams } from './model.js';
|
|
5
5
|
import type { EvmCall, EvmCallResult } from './Payload.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-call-witness/Witness.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-call-witness/Witness.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAM1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,OAAO,KAAK,EACV,OAAO,EAAE,aAAa,EAEvB,MAAM,cAAc,CAAA;AAGrB,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;IAClJ,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAuD;IACvG,gBAAyB,mBAAmB,EAAE,MAAM,CAA6B;IAEjF,IAAI,GAAG,IACoD,YAAY,CACtE;cAEwB,cAAc,CAAC,UAAU,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CA0D9F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm
|
|
1
|
+
import type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm';
|
|
2
2
|
import type { JsonFragment } from 'ethers';
|
|
3
3
|
export type Abi = string | readonly (JsonFragment | string)[];
|
|
4
4
|
export declare const EvmCallWitnessConfigSchema: "network.xyo.evm.call.witness.config" & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-call-witness/model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-call-witness/model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAE1C,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAA;AAE7D,eAAO,MAAM,0BAA0B;;CAAwD,CAAA;AAC/F,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CACjD;IACE,GAAG,CAAC,EAAE,GAAG,CAAA;IACT,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,EACD,0BAA0B,CAC3B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '@xyo-network/sdk';
|
|
2
|
-
import type { EvmAddress, EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm
|
|
3
|
-
import { AbstractEvmWitness } from '@xyo-network/witness-evm
|
|
2
|
+
import type { EvmAddress, EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm';
|
|
3
|
+
import { AbstractEvmWitness } from '@xyo-network/witness-evm';
|
|
4
4
|
import type { EvmContract } from './Payload.js';
|
|
5
5
|
export declare const EvmContractWitnessConfigSchema: "network.xyo.evm.contract.witness.config" & {
|
|
6
6
|
readonly __schema: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-contract-witness/Witness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAI9C,OAAO,KAAK,EACV,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAC/C,MAAM,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-contract-witness/Witness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAI9C,OAAO,KAAK,EACV,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAC/C,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAoB,MAAM,0BAA0B,CAAA;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG/C,eAAO,MAAM,8BAA8B;;CAA4D,CAAA;AACvG,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAA;AAElF,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,8BAA8B,CAAC,CAAA;AAE7G,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,CAAA;AAEjF,qBACa,kBAAkB,CAAC,OAAO,SAAS,wBAAwB,GAAG,wBAAwB,CAAE,SAAQ,kBAAkB,CAC7H,OAAO,EACP,UAAU,EACV,WAAW,CACZ;IACC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA2D;IAC3G,gBAAyB,mBAAmB,EAAE,MAAM,CAAiC;cAE5D,cAAc,CAAC,UAAU,GAAE,UAAU,EAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CA8B/F"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Schema } from '@xyo-network/sdk';
|
|
2
|
-
import { AbstractEvmWitness } from '@xyo-network/witness-evm
|
|
2
|
+
import { AbstractEvmWitness } from '@xyo-network/witness-evm';
|
|
3
3
|
import type { InterfaceAbi } from 'ethers';
|
|
4
4
|
import type { EvmEventsWitnessParams } from './model.js';
|
|
5
5
|
import type { EvmEvent, EvmEvents } from './Payload.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-events-witness/Witness.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-events-witness/Witness.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EACA,YAAY,EACvB,MAAM,QAAQ,CAAA;AAGf,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGvD,qBAAa,gBAAgB,CAAC,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,CAAE,SAAQ,kBAAkB,CACvH,OAAO,EACP,SAAS,EACT,QAAQ,CACT;IACC,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAyD;IACzG,gBAAyB,mBAAmB,EAAE,MAAM,CAA+B;IAEnF,IAAI,GAAG,IAAI,YAAY,CAEtB;cAEwB,cAAc,CAAC,UAAU,GAAE,SAAS,EAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CA+E3F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm
|
|
1
|
+
import type { EvmWitnessConfig, EvmWitnessParams } from '@xyo-network/witness-evm';
|
|
2
2
|
import type { Fragment, JsonFragment } from 'ethers';
|
|
3
3
|
export type InterfaceAbi = string | readonly (Fragment | JsonFragment | string)[];
|
|
4
4
|
export declare const EvmEventsWitnessConfigSchema: "network.xyo.evm.events.witness.config" & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-events-witness/model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/modules/evm-events-witness/model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAEpD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC,EAAE,CAAA;AAEjF,eAAO,MAAM,4BAA4B;;CAA0D,CAAA;AACnG,MAAM,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,CAAA;AAE9E,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CACnD;IACE,GAAG,CAAC,EAAE,YAAY,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,EACD,4BAA4B,CAC7B,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep mainnet pools for pricing the crypto asset aggregate (network.xyo.crypto.asset),
|
|
3
|
+
* each at its pair's lowest fee tier with real depth. Unlike UniswapPoolContracts, this
|
|
4
|
+
* leaves out the thinly traded XYO pools, which would skew the XYO price.
|
|
5
|
+
*/
|
|
6
|
+
export declare const UniswapV3CryptoAssetPools: string[];
|
|
7
|
+
//# sourceMappingURL=UniswapV3CryptoAssetPools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniswapV3CryptoAssetPools.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v3-crypto-market/lib/UniswapV3CryptoAssetPools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,UASrC,CAAA"}
|
|
@@ -3,5 +3,6 @@ export * from './pricesFromUniswap3.js';
|
|
|
3
3
|
export * from './UniSwap3Pair.js';
|
|
4
4
|
export * from './Uniswap3PoolSlot0Wrapper.js';
|
|
5
5
|
export * from './UniswapPoolContracts.js';
|
|
6
|
+
export * from './UniswapV3CryptoAssetPools.js';
|
|
6
7
|
export * from './UniswapV3Slot0Fields.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v3-crypto-market/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v3-crypto-market/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,2BAA2B,CAAA"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { TokenPairPoolKey, TokenParameters } from '../types/index.js';
|
|
2
2
|
export declare const TokenRegistry: Record<string, TokenParameters>;
|
|
3
|
+
/**
|
|
4
|
+
* Hookless mainnet pools. Beyond XYO and XL1, each pair uses its lowest fee tier with real
|
|
5
|
+
* depth: low-fee pools are arbitraged more tightly, so they track the market more closely.
|
|
6
|
+
*/
|
|
3
7
|
export declare const UniswapV4DefaultPools: Record<string, TokenPairPoolKey>;
|
|
4
8
|
//# sourceMappingURL=UniswapV4DefaultPools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniswapV4DefaultPools.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v4-crypto-market/lib/UniswapV4DefaultPools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE1E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"UniswapV4DefaultPools.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v4-crypto-market/lib/UniswapV4DefaultPools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE1E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAmDhD,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAwDzD,CAAA"}
|
|
@@ -5,9 +5,10 @@ import type { Token } from '../../uniswap-token/index.js';
|
|
|
5
5
|
* @param tokenA The first token in the pair.
|
|
6
6
|
* @param tokenB The second token in the pair.
|
|
7
7
|
* @param fee The fee tier for the pool.
|
|
8
|
+
* @param tickSpacing The tick spacing for the pool.
|
|
8
9
|
* @param hookAddress The address of the hook contract. Default is ZeroAddress.
|
|
9
10
|
* @param provider The EVM provider to use for the transaction.
|
|
10
11
|
* @returns The price of the token pair.
|
|
11
12
|
*/
|
|
12
|
-
export declare const getExchangeRate: (tokenA: Token, tokenB: Token, fee: number, hookAddress: string | undefined, provider: Provider) => Promise<number>;
|
|
13
|
+
export declare const getExchangeRate: (tokenA: Token, tokenB: Token, fee: number, tickSpacing: number, hookAddress: string | undefined, provider: Provider) => Promise<number>;
|
|
13
14
|
//# sourceMappingURL=getExchangeRate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getExchangeRate.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v4-crypto-market/lib/getExchangeRate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAO3C
|
|
1
|
+
{"version":3,"file":"getExchangeRate.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v4-crypto-market/lib/getExchangeRate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAO3C;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,KAAK,EACb,QAAQ,KAAK,EACb,KAAK,MAAM,EACX,aAAa,MAAM,EACnB,aAAa,MAAM,GAAG,SAAS,EAC/B,UAAU,QAAQ,KACjB,OAAO,CAAC,MAAM,CAchB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPriceFromSqrtX96.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v4-crypto-market/lib/getPriceFromSqrtX96.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getPriceFromSqrtX96.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v4-crypto-market/lib/getPriceFromSqrtX96.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,cAAc,MAAM,EAAE,WAAW,MAAM,EAAE,WAAW,MAAM,KAAG,MAKhG,CAAA"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import type { Logger } from '@ariestools/sdk';
|
|
1
2
|
import type { UniswapCryptoPair } from '@xyo-network/payload-plugins/uniswap-crypto-market';
|
|
2
3
|
import type { Provider } from 'ethers';
|
|
3
4
|
import type { TokenPairPoolKey } from '../types/index.js';
|
|
4
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Prices each pool, skipping (and logging) any that cannot be read so one bad pool
|
|
7
|
+
* does not drop the others. Throws only if every pool fails.
|
|
8
|
+
*/
|
|
9
|
+
export declare const pricesFromUniswapV4: (poolId: TokenPairPoolKey[], provider: Provider, logger?: Logger) => Promise<UniswapCryptoPair[]>;
|
|
5
10
|
//# sourceMappingURL=pricesFromUniswapV4.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricesFromUniswapV4.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v4-crypto-market/lib/pricesFromUniswapV4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAA;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"pricesFromUniswapV4.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uniswap-v4-crypto-market/lib/pricesFromUniswapV4.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAA;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAOzD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAU,QAAQ,gBAAgB,EAAE,EAAE,UAAU,QAAQ,EAAE,SAAS,MAAM,KAAG,OAAO,CAAC,iBAAiB,EAAE,CAStI,CAAA"}
|
|
@@ -26,7 +26,7 @@ var averageStringifiedNumbers = (...prices) => {
|
|
|
26
26
|
var average = (...input) => {
|
|
27
27
|
const payloads = input.filter(exists);
|
|
28
28
|
const tokens = new Set(payloads.flatMap((payload) => Object.keys(payload.assets).map((t) => t)));
|
|
29
|
-
const
|
|
29
|
+
const valuations2 = new Set(
|
|
30
30
|
[...tokens].flatMap((asset) => {
|
|
31
31
|
const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists);
|
|
32
32
|
const valueBasis = new Set(assetInfo.flatMap((v) => Object.keys(v.value)).filter(exists));
|
|
@@ -37,7 +37,7 @@ var average = (...input) => {
|
|
|
37
37
|
[...tokens].map((token) => {
|
|
38
38
|
const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists);
|
|
39
39
|
const value = Object.fromEntries(
|
|
40
|
-
[...
|
|
40
|
+
[...valuations2].map((valuation) => {
|
|
41
41
|
const assetValuations = assetInfo.map((info) => info.value?.[valuation]);
|
|
42
42
|
const averageAssetValuation = averageStringifiedNumbers(...assetValuations);
|
|
43
43
|
return [valuation, averageAssetValuation?.toString()];
|
|
@@ -75,55 +75,128 @@ var divineCoinGeckoPrices = (payload) => {
|
|
|
75
75
|
};
|
|
76
76
|
|
|
77
77
|
// src/modules/crypto-asset/lib/divineUniswapPrices.ts
|
|
78
|
-
import {
|
|
79
|
-
import { CryptoMarketAssetSchema as CryptoMarketAssetSchema2 } from "@xyo-network/payload-plugins/crypto-asset";
|
|
78
|
+
import { exists as exists2 } from "@ariestools/sdk";
|
|
79
|
+
import { CryptoMarketAssetSchema as CryptoMarketAssetSchema2, TokenZod } from "@xyo-network/payload-plugins/crypto-asset";
|
|
80
80
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/sdk";
|
|
81
|
+
|
|
82
|
+
// src/modules/crypto-asset/lib/uniswapQuotes.ts
|
|
83
|
+
var symbolAliases = /* @__PURE__ */ new Map([["weth", "eth"]]);
|
|
84
|
+
function normalizeUniswapSymbol(symbol) {
|
|
85
|
+
const lower = symbol.toLowerCase();
|
|
86
|
+
return symbolAliases.get(lower) ?? lower;
|
|
87
|
+
}
|
|
88
|
+
function isPositiveFinite(value) {
|
|
89
|
+
return Number.isFinite(value) && value > 0;
|
|
90
|
+
}
|
|
91
|
+
function rateOf(base, quote) {
|
|
92
|
+
if (isPositiveFinite(base.value)) return base.value;
|
|
93
|
+
return isPositiveFinite(quote.value) ? 1 / quote.value : void 0;
|
|
94
|
+
}
|
|
95
|
+
function uniswapQuotes(payloads) {
|
|
96
|
+
return payloads.flatMap((payload) => payload.pairs).flatMap((pair) => {
|
|
97
|
+
const [tokenA, tokenB] = pair.tokens;
|
|
98
|
+
if (tokenA === void 0 || tokenB === void 0) return [];
|
|
99
|
+
const base = normalizeUniswapSymbol(tokenA.symbol);
|
|
100
|
+
const quote = normalizeUniswapSymbol(tokenB.symbol);
|
|
101
|
+
const rate = rateOf(tokenA, tokenB);
|
|
102
|
+
if (base === quote || rate === void 0) return [];
|
|
103
|
+
return [{
|
|
104
|
+
base,
|
|
105
|
+
quote,
|
|
106
|
+
rate
|
|
107
|
+
}];
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// src/modules/crypto-asset/lib/usdPricesFromQuotes.ts
|
|
112
|
+
var usdAnchors = ["usdt", "usdc"];
|
|
113
|
+
var pricingOrder = ["usdc", "eth", "wbtc"];
|
|
114
|
+
function median(values) {
|
|
115
|
+
const sorted = values.toSorted((a, b) => a - b);
|
|
116
|
+
const middle = Math.floor(sorted.length / 2);
|
|
117
|
+
return sorted.length % 2 === 0 ? (sorted[middle - 1] + sorted[middle]) / 2 : sorted[middle];
|
|
118
|
+
}
|
|
119
|
+
function valuations(asset, quotes, prices) {
|
|
120
|
+
return quotes.flatMap(({
|
|
121
|
+
base,
|
|
122
|
+
quote,
|
|
123
|
+
rate
|
|
124
|
+
}) => {
|
|
125
|
+
const quotePrice = base === asset ? prices.get(quote) : void 0;
|
|
126
|
+
if (quotePrice !== void 0) return [rate * quotePrice];
|
|
127
|
+
const basePrice = quote === asset ? prices.get(base) : void 0;
|
|
128
|
+
return basePrice === void 0 ? [] : [basePrice / rate];
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function usdPricesFromQuotes(quotes) {
|
|
132
|
+
const assets = new Set(quotes.flatMap(({ base, quote }) => [base, quote]));
|
|
133
|
+
const prices = /* @__PURE__ */ new Map();
|
|
134
|
+
const anchor = usdAnchors.find((symbol) => assets.has(symbol));
|
|
135
|
+
if (anchor === void 0) return prices;
|
|
136
|
+
prices.set(anchor, 1);
|
|
137
|
+
const priceFrom = (asset, pricedBefore) => {
|
|
138
|
+
const values = valuations(asset, quotes, pricedBefore);
|
|
139
|
+
if (values.length > 0) prices.set(asset, median(values));
|
|
140
|
+
return values.length > 0;
|
|
141
|
+
};
|
|
142
|
+
for (const asset of pricingOrder) {
|
|
143
|
+
if (!prices.has(asset)) priceFrom(asset, prices);
|
|
144
|
+
}
|
|
145
|
+
let pending = [...assets].filter((asset) => !prices.has(asset));
|
|
146
|
+
while (pending.length > 0) {
|
|
147
|
+
const pricedBefore = new Map(prices);
|
|
148
|
+
const unpriced = pending.filter((asset) => !priceFrom(asset, pricedBefore));
|
|
149
|
+
if (unpriced.length === pending.length) break;
|
|
150
|
+
pending = unpriced;
|
|
151
|
+
}
|
|
152
|
+
return prices;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// src/modules/crypto-asset/lib/divineUniswapPrices.ts
|
|
81
156
|
var schema2 = CryptoMarketAssetSchema2;
|
|
82
|
-
var
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return symbol.toLowerCase();
|
|
157
|
+
var valuationReferences = {
|
|
158
|
+
btc: ["wbtc"],
|
|
159
|
+
eth: ["eth"],
|
|
160
|
+
eur: ["eurc", "eurcv"]
|
|
87
161
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
);
|
|
162
|
+
function referencePrice(usdPrices, symbols) {
|
|
163
|
+
const prices = symbols.map((symbol) => usdPrices.get(symbol)).filter(exists2);
|
|
164
|
+
return prices.length > 0 ? prices.reduce((sum, price) => sum + price, 0) / prices.length : void 0;
|
|
165
|
+
}
|
|
166
|
+
function formatValue(value) {
|
|
167
|
+
return Number(value.toPrecision(8)).toString();
|
|
168
|
+
}
|
|
169
|
+
function divineUniswapPrices(...uniswapPayloads) {
|
|
170
|
+
const usdPrices = usdPricesFromQuotes(uniswapQuotes(uniswapPayloads.filter(exists2)));
|
|
171
|
+
const btc = referencePrice(usdPrices, valuationReferences.btc);
|
|
172
|
+
const valuations2 = [
|
|
173
|
+
["usd", 1],
|
|
174
|
+
["eur", referencePrice(usdPrices, valuationReferences.eur)],
|
|
175
|
+
["btc", btc],
|
|
176
|
+
["eth", referencePrice(usdPrices, valuationReferences.eth)]
|
|
177
|
+
];
|
|
178
|
+
if (btc !== void 0 && !usdPrices.has("btc")) usdPrices.set("btc", btc);
|
|
179
|
+
const assets = {};
|
|
180
|
+
for (const token of TokenZod.options) {
|
|
181
|
+
const usdPrice = usdPrices.get(token);
|
|
182
|
+
if (usdPrice === void 0) continue;
|
|
183
|
+
const value = {};
|
|
184
|
+
for (const [valuation, valuationPrice] of valuations2) {
|
|
185
|
+
if (valuationPrice !== void 0) value[valuation] = formatValue(usdPrice / valuationPrice);
|
|
186
|
+
}
|
|
187
|
+
assets[token] = { value };
|
|
115
188
|
}
|
|
116
189
|
const timestamp = Date.now();
|
|
117
190
|
const builder = new PayloadBuilder2({ schema: schema2 });
|
|
118
191
|
return builder.fields({ assets, timestamp }).build();
|
|
119
|
-
}
|
|
192
|
+
}
|
|
120
193
|
|
|
121
194
|
// src/modules/crypto-asset/lib/divinePrices.ts
|
|
122
195
|
var schema3 = CryptoMarketAssetSchema3;
|
|
123
|
-
var divinePrices = (coinGeckoPayload,
|
|
196
|
+
var divinePrices = (coinGeckoPayload, ...uniswapPayloads) => {
|
|
124
197
|
const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload);
|
|
125
|
-
const uniswapPrices = divineUniswapPrices(
|
|
126
|
-
const prices = [
|
|
198
|
+
const uniswapPrices = divineUniswapPrices(...uniswapPayloads);
|
|
199
|
+
const prices = [coinGeckoPayload, ...uniswapPayloads].some(exists3);
|
|
127
200
|
const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {};
|
|
128
201
|
const timestamp = Date.now();
|
|
129
202
|
const builder = new PayloadBuilder3({ schema: schema3 });
|
|
@@ -142,8 +215,8 @@ var CryptoMarketAssetDiviner = class extends AbstractDiviner {
|
|
|
142
215
|
static targetSchema = CryptoMarketAssetSchema4;
|
|
143
216
|
divineHandler(payloads) {
|
|
144
217
|
const coinGeckoPayload = payloads?.find((payload) => payload?.schema === CoingeckoCryptoMarketSchema);
|
|
145
|
-
const
|
|
146
|
-
const result = divinePrices(coinGeckoPayload,
|
|
218
|
+
const uniswapPayloads = payloads?.filter((payload) => payload?.schema === UniswapCryptoMarketSchema) ?? [];
|
|
219
|
+
const result = divinePrices(coinGeckoPayload, ...uniswapPayloads);
|
|
147
220
|
return [result];
|
|
148
221
|
}
|
|
149
222
|
};
|