@xyo-network/crypto-asset-plugin 2.61.0 → 2.61.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/cjs/Diviner.js +7 -7
- package/dist/cjs/Diviner.js.map +1 -1
- package/dist/cjs/Plugin.js +4 -4
- package/dist/cjs/Plugin.js.map +1 -1
- package/dist/cjs/Schema.js +3 -3
- package/dist/cjs/Schema.js.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/average.js.map +1 -1
- package/dist/cjs/lib/divineCoinGeckoPrices.js +1 -1
- package/dist/cjs/lib/divineCoinGeckoPrices.js.map +1 -1
- package/dist/cjs/lib/divinePrices.js +1 -1
- package/dist/cjs/lib/divinePrices.js.map +1 -1
- package/dist/cjs/lib/divineUniswapPrices.js +1 -1
- package/dist/cjs/lib/divineUniswapPrices.js.map +1 -1
- package/dist/cjs/test/sampleCoinGecko.js +1 -1
- package/dist/cjs/test/sampleCoinGecko.js.map +1 -1
- package/dist/cjs/test/sampleUniswap.js +1 -1
- package/dist/cjs/test/sampleUniswap.js.map +1 -1
- package/dist/docs.json +106 -106
- package/dist/esm/Diviner.js +9 -9
- package/dist/esm/Diviner.js.map +1 -1
- package/dist/esm/Plugin.js +4 -4
- package/dist/esm/Plugin.js.map +1 -1
- package/dist/esm/Schema.js +2 -2
- package/dist/esm/Schema.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/average.js.map +1 -1
- package/dist/esm/lib/divineCoinGeckoPrices.js +2 -2
- package/dist/esm/lib/divineCoinGeckoPrices.js.map +1 -1
- package/dist/esm/lib/divinePrices.js +2 -2
- package/dist/esm/lib/divinePrices.js.map +1 -1
- package/dist/esm/lib/divineUniswapPrices.js +2 -2
- package/dist/esm/lib/divineUniswapPrices.js.map +1 -1
- package/dist/esm/test/sampleCoinGecko.js +2 -2
- package/dist/esm/test/sampleCoinGecko.js.map +1 -1
- package/dist/esm/test/sampleUniswap.js +2 -2
- package/dist/esm/test/sampleUniswap.js.map +1 -1
- package/dist/types/Diviner.d.ts +5 -5
- package/dist/types/Diviner.d.ts.map +1 -1
- package/dist/types/Plugin.d.ts +2 -2
- package/dist/types/Plugin.d.ts.map +1 -1
- package/dist/types/Schema.d.ts +4 -4
- package/dist/types/Schema.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/average.d.ts +2 -2
- package/dist/types/lib/average.d.ts.map +1 -1
- package/dist/types/lib/divineCoinGeckoPrices.d.ts +3 -3
- package/dist/types/lib/divineCoinGeckoPrices.d.ts.map +1 -1
- package/dist/types/lib/divinePrices.d.ts +4 -4
- package/dist/types/lib/divinePrices.d.ts.map +1 -1
- package/dist/types/lib/divineUniswapPrices.d.ts +3 -3
- package/dist/types/lib/divineUniswapPrices.d.ts.map +1 -1
- package/dist/types/test/sampleCoinGecko.d.ts +2 -2
- package/dist/types/test/sampleCoinGecko.d.ts.map +1 -1
- package/dist/types/test/sampleUniswap.d.ts +2 -2
- package/dist/types/test/sampleUniswap.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/Diviner.ts +12 -12
- package/src/Plugin.ts +6 -6
- package/src/Schema.ts +4 -4
- package/src/index.ts +3 -3
- package/src/lib/average.ts +2 -2
- package/src/lib/divineCoinGeckoPrices.ts +5 -5
- package/src/lib/divinePrices.ts +8 -8
- package/src/lib/divineUniswapPrices.ts +8 -15
- package/src/test/sampleCoinGecko.ts +3 -3
- package/src/test/sampleUniswap.ts +3 -3
package/src/lib/divinePrices.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { exists } from '@xylabs/exists'
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'
|
|
3
|
+
import { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'
|
|
4
4
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
5
|
-
import {
|
|
5
|
+
import { UniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin'
|
|
6
6
|
|
|
7
7
|
import { average } from './average'
|
|
8
8
|
import { divineCoinGeckoPrices } from './divineCoinGeckoPrices'
|
|
9
9
|
import { divineUniswapPrices } from './divineUniswapPrices'
|
|
10
10
|
|
|
11
|
-
const schema =
|
|
11
|
+
const schema = CryptoMarketAssetSchema
|
|
12
12
|
|
|
13
13
|
export const divinePrices = (
|
|
14
|
-
coinGeckoPayload:
|
|
15
|
-
uniswapPayload:
|
|
16
|
-
):
|
|
14
|
+
coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,
|
|
15
|
+
uniswapPayload: UniswapCryptoMarketPayload | undefined,
|
|
16
|
+
): CryptoMarketAssetPayload => {
|
|
17
17
|
const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload)
|
|
18
18
|
const uniswapPrices = divineUniswapPrices(uniswapPayload)
|
|
19
19
|
const prices = [uniswapPayload, coinGeckoPayload].some(exists)
|
|
20
20
|
const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {}
|
|
21
21
|
const timestamp = Date.now()
|
|
22
|
-
return new PayloadBuilder<
|
|
22
|
+
return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()
|
|
23
23
|
}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import { exists } from '@xylabs/exists'
|
|
2
|
-
import {
|
|
3
|
-
AssetInfo,
|
|
4
|
-
Currency,
|
|
5
|
-
Token,
|
|
6
|
-
ValueBasis,
|
|
7
|
-
XyoCryptoMarketAssetPayload,
|
|
8
|
-
XyoCryptoMarketAssetSchema,
|
|
9
|
-
} from '@xyo-network/crypto-asset-payload-plugin'
|
|
2
|
+
import { AssetInfo, CryptoMarketAssetPayload, CryptoMarketAssetSchema, Currency, Token, ValueBasis } from '@xyo-network/crypto-asset-payload-plugin'
|
|
10
3
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
11
|
-
import {
|
|
4
|
+
import { UniswapCryptoMarketPayload, UniswapCryptoPair, UniswapCryptoToken } from '@xyo-network/uniswap-crypto-market-payload-plugin'
|
|
12
5
|
|
|
13
|
-
const schema =
|
|
6
|
+
const schema = CryptoMarketAssetSchema
|
|
14
7
|
|
|
15
8
|
const mapUniswapToken = (symbol: string): Token | Currency => {
|
|
16
9
|
// TODO: Actually calculate the value of the token/stablecoin based on others
|
|
@@ -21,21 +14,21 @@ const mapUniswapToken = (symbol: string): Token | Currency => {
|
|
|
21
14
|
return symbol.toLowerCase() as Token
|
|
22
15
|
}
|
|
23
16
|
|
|
24
|
-
const pairsContainingToken = (uniswapPayload:
|
|
17
|
+
const pairsContainingToken = (uniswapPayload: UniswapCryptoMarketPayload, token: Token) => {
|
|
25
18
|
return uniswapPayload?.pairs
|
|
26
19
|
.map((p) => p.tokens)
|
|
27
20
|
.filter((p) => p.some((x) => x.symbol.toLowerCase() === token))
|
|
28
21
|
.filter(exists)
|
|
29
22
|
}
|
|
30
23
|
|
|
31
|
-
const tokensFromPairs = (pairs:
|
|
24
|
+
const tokensFromPairs = (pairs: UniswapCryptoPair[]) => {
|
|
32
25
|
return pairs
|
|
33
26
|
.map((p) => p.tokens)
|
|
34
27
|
.flat()
|
|
35
28
|
.map((t) => t.symbol.toLowerCase() as Token)
|
|
36
29
|
}
|
|
37
30
|
|
|
38
|
-
const valuesFromTokenPairs = (tokensPairs:
|
|
31
|
+
const valuesFromTokenPairs = (tokensPairs: UniswapCryptoToken[][], token: Token): ValueBasis => {
|
|
39
32
|
return Object.fromEntries(
|
|
40
33
|
tokensPairs
|
|
41
34
|
.map((pair) => {
|
|
@@ -47,7 +40,7 @@ const valuesFromTokenPairs = (tokensPairs: XyoUniswapCryptoToken[][], token: Tok
|
|
|
47
40
|
)
|
|
48
41
|
}
|
|
49
42
|
|
|
50
|
-
export const divineUniswapPrices = (uniswapPayload:
|
|
43
|
+
export const divineUniswapPrices = (uniswapPayload: UniswapCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {
|
|
51
44
|
let assets: Partial<Record<Token, AssetInfo | undefined>> = {}
|
|
52
45
|
if (uniswapPayload) {
|
|
53
46
|
const tokens: Set<Token> = new Set(tokensFromPairs(uniswapPayload.pairs))
|
|
@@ -61,5 +54,5 @@ export const divineUniswapPrices = (uniswapPayload: XyoUniswapCryptoMarketPayloa
|
|
|
61
54
|
)
|
|
62
55
|
}
|
|
63
56
|
const timestamp = Date.now()
|
|
64
|
-
return new PayloadBuilder<
|
|
57
|
+
return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()
|
|
65
58
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'
|
|
2
2
|
|
|
3
|
-
export const sampleCoinGeckoPayload:
|
|
3
|
+
export const sampleCoinGeckoPayload: CoingeckoCryptoMarketPayload = {
|
|
4
4
|
assets: {
|
|
5
5
|
ada: {
|
|
6
6
|
btc: 0.00002163,
|
|
@@ -69,6 +69,6 @@ export const sampleCoinGeckoPayload: XyoCoingeckoCryptoMarketPayload = {
|
|
|
69
69
|
usd: 0.01439307,
|
|
70
70
|
},
|
|
71
71
|
},
|
|
72
|
-
schema:
|
|
72
|
+
schema: CoingeckoCryptoMarketSchema,
|
|
73
73
|
timestamp: 1659012060785,
|
|
74
74
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UniswapCryptoMarketPayload, UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'
|
|
2
2
|
|
|
3
|
-
export const sampleUniswapPayload:
|
|
3
|
+
export const sampleUniswapPayload: UniswapCryptoMarketPayload = {
|
|
4
4
|
pairs: [
|
|
5
5
|
{
|
|
6
6
|
tokens: [
|
|
@@ -185,6 +185,6 @@ export const sampleUniswapPayload: XyoUniswapCryptoMarketPayload = {
|
|
|
185
185
|
],
|
|
186
186
|
},
|
|
187
187
|
],
|
|
188
|
-
schema:
|
|
188
|
+
schema: UniswapCryptoMarketSchema,
|
|
189
189
|
timestamp: 1659012011418,
|
|
190
190
|
}
|