@xyo-network/crypto-asset-plugin 2.75.15 → 2.75.16
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/docs.json +26 -26
- package/package.json +16 -16
- package/dist/browser/Diviner.cjs +0 -174
- package/dist/browser/Diviner.cjs.map +0 -1
- package/dist/browser/Diviner.js +0 -153
- package/dist/browser/Diviner.js.map +0 -1
- package/dist/browser/Plugin.cjs +0 -189
- package/dist/browser/Plugin.cjs.map +0 -1
- package/dist/browser/Plugin.js +0 -168
- package/dist/browser/Plugin.js.map +0 -1
- package/dist/browser/Schema.cjs +0 -29
- package/dist/browser/Schema.cjs.map +0 -1
- package/dist/browser/Schema.js +0 -8
- package/dist/browser/Schema.js.map +0 -1
- package/dist/browser/lib/average.cjs +0 -67
- package/dist/browser/lib/average.cjs.map +0 -1
- package/dist/browser/lib/average.js +0 -46
- package/dist/browser/lib/average.js.map +0 -1
- package/dist/browser/lib/divineCoinGeckoPrices.cjs +0 -48
- package/dist/browser/lib/divineCoinGeckoPrices.cjs.map +0 -1
- package/dist/browser/lib/divineCoinGeckoPrices.js +0 -27
- package/dist/browser/lib/divineCoinGeckoPrices.js.map +0 -1
- package/dist/browser/lib/divinePrices.cjs +0 -153
- package/dist/browser/lib/divinePrices.cjs.map +0 -1
- package/dist/browser/lib/divinePrices.js +0 -132
- package/dist/browser/lib/divinePrices.js.map +0 -1
- package/dist/browser/lib/divineUniswapPrices.cjs +0 -70
- package/dist/browser/lib/divineUniswapPrices.cjs.map +0 -1
- package/dist/browser/lib/divineUniswapPrices.js +0 -49
- package/dist/browser/lib/divineUniswapPrices.js.map +0 -1
- package/dist/browser/lib/index.cjs +0 -155
- package/dist/browser/lib/index.cjs.map +0 -1
- package/dist/browser/lib/index.js +0 -132
- package/dist/browser/lib/index.js.map +0 -1
- package/dist/browser/test/index.cjs +0 -293
- package/dist/browser/test/index.cjs.map +0 -1
- package/dist/browser/test/index.js +0 -270
- package/dist/browser/test/index.js.map +0 -1
- package/dist/browser/test/sampleCoinGecko.cjs +0 -99
- package/dist/browser/test/sampleCoinGecko.cjs.map +0 -1
- package/dist/browser/test/sampleCoinGecko.js +0 -78
- package/dist/browser/test/sampleCoinGecko.js.map +0 -1
- package/dist/browser/test/sampleUniswap.cjs +0 -215
- package/dist/browser/test/sampleUniswap.cjs.map +0 -1
- package/dist/browser/test/sampleUniswap.js +0 -194
- package/dist/browser/test/sampleUniswap.js.map +0 -1
- package/dist/node/Diviner.js +0 -188
- package/dist/node/Diviner.js.map +0 -1
- package/dist/node/Diviner.mjs +0 -163
- package/dist/node/Diviner.mjs.map +0 -1
- package/dist/node/Plugin.js +0 -203
- package/dist/node/Plugin.js.map +0 -1
- package/dist/node/Plugin.mjs +0 -178
- package/dist/node/Plugin.mjs.map +0 -1
- package/dist/node/Schema.js +0 -34
- package/dist/node/Schema.js.map +0 -1
- package/dist/node/Schema.mjs +0 -8
- package/dist/node/Schema.mjs.map +0 -1
- package/dist/node/lib/average.js +0 -80
- package/dist/node/lib/average.js.map +0 -1
- package/dist/node/lib/average.mjs +0 -55
- package/dist/node/lib/average.mjs.map +0 -1
- package/dist/node/lib/divineCoinGeckoPrices.js +0 -52
- package/dist/node/lib/divineCoinGeckoPrices.js.map +0 -1
- package/dist/node/lib/divineCoinGeckoPrices.mjs +0 -27
- package/dist/node/lib/divineCoinGeckoPrices.mjs.map +0 -1
- package/dist/node/lib/divinePrices.js +0 -167
- package/dist/node/lib/divinePrices.js.map +0 -1
- package/dist/node/lib/divinePrices.mjs +0 -142
- package/dist/node/lib/divinePrices.mjs.map +0 -1
- package/dist/node/lib/divineUniswapPrices.js +0 -75
- package/dist/node/lib/divineUniswapPrices.js.map +0 -1
- package/dist/node/lib/divineUniswapPrices.mjs +0 -50
- package/dist/node/lib/divineUniswapPrices.mjs.map +0 -1
- package/dist/node/lib/index.js +0 -169
- package/dist/node/lib/index.js.map +0 -1
- package/dist/node/lib/index.mjs +0 -142
- package/dist/node/lib/index.mjs.map +0 -1
- package/dist/node/test/index.js +0 -298
- package/dist/node/test/index.js.map +0 -1
- package/dist/node/test/index.mjs +0 -270
- package/dist/node/test/index.mjs.map +0 -1
- package/dist/node/test/sampleCoinGecko.js +0 -103
- package/dist/node/test/sampleCoinGecko.js.map +0 -1
- package/dist/node/test/sampleCoinGecko.mjs +0 -78
- package/dist/node/test/sampleCoinGecko.mjs.map +0 -1
- package/dist/node/test/sampleUniswap.js +0 -219
- package/dist/node/test/sampleUniswap.js.map +0 -1
- package/dist/node/test/sampleUniswap.mjs +0 -194
- package/dist/node/test/sampleUniswap.mjs.map +0 -1
package/dist/docs.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/index.ts",
|
|
17
17
|
"line": 9,
|
|
18
18
|
"character": 0,
|
|
19
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
19
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/index.ts#L9"
|
|
20
20
|
}
|
|
21
21
|
],
|
|
22
22
|
"target": 1
|
|
@@ -1483,7 +1483,7 @@
|
|
|
1483
1483
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
1484
1484
|
"line": 13,
|
|
1485
1485
|
"character": 61,
|
|
1486
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
1486
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
1487
1487
|
}
|
|
1488
1488
|
],
|
|
1489
1489
|
"type": {
|
|
@@ -1505,7 +1505,7 @@
|
|
|
1505
1505
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
1506
1506
|
"line": 13,
|
|
1507
1507
|
"character": 59,
|
|
1508
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
1508
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
1509
1509
|
}
|
|
1510
1510
|
]
|
|
1511
1511
|
}
|
|
@@ -3175,7 +3175,7 @@
|
|
|
3175
3175
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
3176
3176
|
"line": 13,
|
|
3177
3177
|
"character": 61,
|
|
3178
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
3178
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
3179
3179
|
}
|
|
3180
3180
|
],
|
|
3181
3181
|
"type": {
|
|
@@ -3197,7 +3197,7 @@
|
|
|
3197
3197
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
3198
3198
|
"line": 13,
|
|
3199
3199
|
"character": 59,
|
|
3200
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
3200
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
3201
3201
|
}
|
|
3202
3202
|
]
|
|
3203
3203
|
}
|
|
@@ -4282,7 +4282,7 @@
|
|
|
4282
4282
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
4283
4283
|
"line": 20,
|
|
4284
4284
|
"character": 18,
|
|
4285
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
4285
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L20"
|
|
4286
4286
|
}
|
|
4287
4287
|
],
|
|
4288
4288
|
"type": {
|
|
@@ -4394,7 +4394,7 @@
|
|
|
4394
4394
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
4395
4395
|
"line": 21,
|
|
4396
4396
|
"character": 18,
|
|
4397
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
4397
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L21"
|
|
4398
4398
|
}
|
|
4399
4399
|
],
|
|
4400
4400
|
"type": {
|
|
@@ -7976,7 +7976,7 @@
|
|
|
7976
7976
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
7977
7977
|
"line": 23,
|
|
7978
7978
|
"character": 21,
|
|
7979
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
7979
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L23"
|
|
7980
7980
|
}
|
|
7981
7981
|
],
|
|
7982
7982
|
"signatures": [
|
|
@@ -7991,7 +7991,7 @@
|
|
|
7991
7991
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
7992
7992
|
"line": 23,
|
|
7993
7993
|
"character": 21,
|
|
7994
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
7994
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L23"
|
|
7995
7995
|
}
|
|
7996
7996
|
],
|
|
7997
7997
|
"parameters": [
|
|
@@ -17815,7 +17815,7 @@
|
|
|
17815
17815
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
17816
17816
|
"line": 16,
|
|
17817
17817
|
"character": 13,
|
|
17818
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
17818
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L16"
|
|
17819
17819
|
}
|
|
17820
17820
|
],
|
|
17821
17821
|
"typeParameters": [
|
|
@@ -17890,7 +17890,7 @@
|
|
|
17890
17890
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
17891
17891
|
"line": 13,
|
|
17892
17892
|
"character": 12,
|
|
17893
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
17893
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
17894
17894
|
}
|
|
17895
17895
|
],
|
|
17896
17896
|
"type": {
|
|
@@ -17920,7 +17920,7 @@
|
|
|
17920
17920
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
17921
17921
|
"line": 13,
|
|
17922
17922
|
"character": 61,
|
|
17923
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
17923
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
17924
17924
|
}
|
|
17925
17925
|
],
|
|
17926
17926
|
"type": {
|
|
@@ -17944,7 +17944,7 @@
|
|
|
17944
17944
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
17945
17945
|
"line": 13,
|
|
17946
17946
|
"character": 59,
|
|
17947
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
17947
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
17948
17948
|
}
|
|
17949
17949
|
]
|
|
17950
17950
|
}
|
|
@@ -17965,13 +17965,13 @@
|
|
|
17965
17965
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts",
|
|
17966
17966
|
"line": 4,
|
|
17967
17967
|
"character": 12,
|
|
17968
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
17968
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts#L4"
|
|
17969
17969
|
},
|
|
17970
17970
|
{
|
|
17971
17971
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts",
|
|
17972
17972
|
"line": 5,
|
|
17973
17973
|
"character": 13,
|
|
17974
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
17974
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts#L5"
|
|
17975
17975
|
}
|
|
17976
17976
|
],
|
|
17977
17977
|
"type": {
|
|
@@ -17990,7 +17990,7 @@
|
|
|
17990
17990
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
17991
17991
|
"line": 14,
|
|
17992
17992
|
"character": 12,
|
|
17993
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
17993
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L14"
|
|
17994
17994
|
}
|
|
17995
17995
|
],
|
|
17996
17996
|
"type": {
|
|
@@ -18033,13 +18033,13 @@
|
|
|
18033
18033
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts",
|
|
18034
18034
|
"line": 1,
|
|
18035
18035
|
"character": 12,
|
|
18036
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
18036
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts#L1"
|
|
18037
18037
|
},
|
|
18038
18038
|
{
|
|
18039
18039
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts",
|
|
18040
18040
|
"line": 2,
|
|
18041
18041
|
"character": 13,
|
|
18042
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
18042
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts#L2"
|
|
18043
18043
|
}
|
|
18044
18044
|
],
|
|
18045
18045
|
"type": {
|
|
@@ -18058,13 +18058,13 @@
|
|
|
18058
18058
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts",
|
|
18059
18059
|
"line": 4,
|
|
18060
18060
|
"character": 12,
|
|
18061
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
18061
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts#L4"
|
|
18062
18062
|
},
|
|
18063
18063
|
{
|
|
18064
18064
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts",
|
|
18065
18065
|
"line": 5,
|
|
18066
18066
|
"character": 13,
|
|
18067
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
18067
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts#L5"
|
|
18068
18068
|
}
|
|
18069
18069
|
],
|
|
18070
18070
|
"type": {
|
|
@@ -18083,13 +18083,13 @@
|
|
|
18083
18083
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts",
|
|
18084
18084
|
"line": 1,
|
|
18085
18085
|
"character": 12,
|
|
18086
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
18086
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts#L1"
|
|
18087
18087
|
},
|
|
18088
18088
|
{
|
|
18089
18089
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts",
|
|
18090
18090
|
"line": 2,
|
|
18091
18091
|
"character": 13,
|
|
18092
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
18092
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Schema.ts#L2"
|
|
18093
18093
|
}
|
|
18094
18094
|
],
|
|
18095
18095
|
"type": {
|
|
@@ -18108,7 +18108,7 @@
|
|
|
18108
18108
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Plugin.ts",
|
|
18109
18109
|
"line": 7,
|
|
18110
18110
|
"character": 13,
|
|
18111
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
18111
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Plugin.ts#L7"
|
|
18112
18112
|
}
|
|
18113
18113
|
],
|
|
18114
18114
|
"signatures": [
|
|
@@ -18123,7 +18123,7 @@
|
|
|
18123
18123
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Plugin.ts",
|
|
18124
18124
|
"line": 7,
|
|
18125
18125
|
"character": 39,
|
|
18126
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
18126
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Plugin.ts#L7"
|
|
18127
18127
|
}
|
|
18128
18128
|
],
|
|
18129
18129
|
"type": {
|
|
@@ -19558,7 +19558,7 @@
|
|
|
19558
19558
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
19559
19559
|
"line": 13,
|
|
19560
19560
|
"character": 61,
|
|
19561
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
19561
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
19562
19562
|
}
|
|
19563
19563
|
],
|
|
19564
19564
|
"type": {
|
|
@@ -19580,7 +19580,7 @@
|
|
|
19580
19580
|
"fileName": "plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts",
|
|
19581
19581
|
"line": 13,
|
|
19582
19582
|
"character": 59,
|
|
19583
|
-
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/
|
|
19583
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/blob/b1d6f519bacda/packages/plugins/packages/payloadset/packages/crypto/packages/market/packages/asset/src/Diviner.ts#L13"
|
|
19584
19584
|
}
|
|
19585
19585
|
]
|
|
19586
19586
|
}
|
package/package.json
CHANGED
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/exists": "^2.12.
|
|
14
|
-
"@xyo-network/abstract-diviner": "~2.75.
|
|
15
|
-
"@xyo-network/coingecko-crypto-market-payload-plugin": "~2.75.
|
|
16
|
-
"@xyo-network/crypto-asset-payload-plugin": "~2.75.
|
|
17
|
-
"@xyo-network/diviner": "~2.75.
|
|
18
|
-
"@xyo-network/module-model": "~2.75.
|
|
19
|
-
"@xyo-network/payload-builder": "~2.75.
|
|
20
|
-
"@xyo-network/payload-model": "~2.75.
|
|
21
|
-
"@xyo-network/payloadset-plugin": "~2.75.
|
|
22
|
-
"@xyo-network/promise": "~2.75.
|
|
23
|
-
"@xyo-network/uniswap-crypto-market-payload-plugin": "~2.75.
|
|
13
|
+
"@xylabs/exists": "^2.12.23",
|
|
14
|
+
"@xyo-network/abstract-diviner": "~2.75.16",
|
|
15
|
+
"@xyo-network/coingecko-crypto-market-payload-plugin": "~2.75.16",
|
|
16
|
+
"@xyo-network/crypto-asset-payload-plugin": "~2.75.16",
|
|
17
|
+
"@xyo-network/diviner": "~2.75.16",
|
|
18
|
+
"@xyo-network/module-model": "~2.75.16",
|
|
19
|
+
"@xyo-network/payload-builder": "~2.75.16",
|
|
20
|
+
"@xyo-network/payload-model": "~2.75.16",
|
|
21
|
+
"@xyo-network/payloadset-plugin": "~2.75.16",
|
|
22
|
+
"@xyo-network/promise": "~2.75.16",
|
|
23
|
+
"@xyo-network/uniswap-crypto-market-payload-plugin": "~2.75.16"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@ethersproject/address": "^5.7.0",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"@uniswap/sdk": "^3.0.3",
|
|
32
32
|
"@uniswap/sdk-core": "^4.0.7",
|
|
33
33
|
"@uniswap/v3-sdk": "^3.10.0",
|
|
34
|
-
"@xylabs/assert": "^2.12.
|
|
35
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
|
36
|
-
"@xylabs/tsconfig": "^3.
|
|
37
|
-
"@xyo-network/account": "~2.75.
|
|
34
|
+
"@xylabs/assert": "^2.12.23",
|
|
35
|
+
"@xylabs/ts-scripts-yarn3": "^3.1.3",
|
|
36
|
+
"@xylabs/tsconfig": "^3.1.3",
|
|
37
|
+
"@xyo-network/account": "~2.75.16",
|
|
38
38
|
"typescript": "^5.2.2"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
@@ -90,5 +90,5 @@
|
|
|
90
90
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
91
91
|
},
|
|
92
92
|
"sideEffects": false,
|
|
93
|
-
"version": "2.75.
|
|
93
|
+
"version": "2.75.16"
|
|
94
94
|
}
|
package/dist/browser/Diviner.cjs
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/Diviner.ts
|
|
21
|
-
var Diviner_exports = {};
|
|
22
|
-
__export(Diviner_exports, {
|
|
23
|
-
CryptoMarketAssetDiviner: () => CryptoMarketAssetDiviner
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(Diviner_exports);
|
|
26
|
-
var import_abstract_diviner = require("@xyo-network/abstract-diviner");
|
|
27
|
-
var import_coingecko_crypto_market_payload_plugin = require("@xyo-network/coingecko-crypto-market-payload-plugin");
|
|
28
|
-
var import_crypto_asset_payload_plugin4 = require("@xyo-network/crypto-asset-payload-plugin");
|
|
29
|
-
var import_uniswap_crypto_market_payload_plugin = require("@xyo-network/uniswap-crypto-market-payload-plugin");
|
|
30
|
-
|
|
31
|
-
// src/lib/divinePrices.ts
|
|
32
|
-
var import_exists3 = require("@xylabs/exists");
|
|
33
|
-
var import_crypto_asset_payload_plugin3 = require("@xyo-network/crypto-asset-payload-plugin");
|
|
34
|
-
var import_payload_builder3 = require("@xyo-network/payload-builder");
|
|
35
|
-
|
|
36
|
-
// src/lib/average.ts
|
|
37
|
-
var import_exists = require("@xylabs/exists");
|
|
38
|
-
var isNumber = (val) => {
|
|
39
|
-
return val !== void 0;
|
|
40
|
-
};
|
|
41
|
-
var parseStringifiedNumber = (value) => {
|
|
42
|
-
if (!value)
|
|
43
|
-
return void 0;
|
|
44
|
-
const parsed = parseFloat(value);
|
|
45
|
-
return isNaN(parsed) ? void 0 : parsed;
|
|
46
|
-
};
|
|
47
|
-
var averageStringifiedNumbers = (...prices) => {
|
|
48
|
-
const numbers = prices.map(parseStringifiedNumber).filter(isNumber);
|
|
49
|
-
return numbers.length ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : void 0;
|
|
50
|
-
};
|
|
51
|
-
var average = (...input) => {
|
|
52
|
-
const payloads = input.filter(import_exists.exists);
|
|
53
|
-
const tokens = new Set(payloads.map((payload) => Object.keys(payload.assets).map((t) => t)).flatMap((t) => t));
|
|
54
|
-
const valuations = new Set(
|
|
55
|
-
[...tokens].map((asset) => {
|
|
56
|
-
const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(import_exists.exists);
|
|
57
|
-
const valueBasis = new Set(
|
|
58
|
-
assetInfo.map((v) => Object.keys(v.value)).flatMap((v) => v).filter(import_exists.exists)
|
|
59
|
-
);
|
|
60
|
-
return [...valueBasis];
|
|
61
|
-
}).flatMap((v) => v)
|
|
62
|
-
);
|
|
63
|
-
const assets = Object.fromEntries(
|
|
64
|
-
[...tokens].map((token) => {
|
|
65
|
-
const assetInfo = payloads.map((p) => p.assets?.[token]).filter(import_exists.exists);
|
|
66
|
-
const value = Object.fromEntries(
|
|
67
|
-
[...valuations].map((valuation) => {
|
|
68
|
-
const assetValuations = assetInfo.map((info) => info.value?.[valuation]);
|
|
69
|
-
const averageAssetValuation = averageStringifiedNumbers(...assetValuations);
|
|
70
|
-
return [valuation, averageAssetValuation?.toString()];
|
|
71
|
-
})
|
|
72
|
-
);
|
|
73
|
-
return [token, { value }];
|
|
74
|
-
})
|
|
75
|
-
);
|
|
76
|
-
return assets;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
// src/lib/divineCoinGeckoPrices.ts
|
|
80
|
-
var import_crypto_asset_payload_plugin = require("@xyo-network/crypto-asset-payload-plugin");
|
|
81
|
-
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
82
|
-
var schema = import_crypto_asset_payload_plugin.CryptoMarketAssetSchema;
|
|
83
|
-
var valuationExists = (value) => {
|
|
84
|
-
return !!value[1];
|
|
85
|
-
};
|
|
86
|
-
var otherValueExists = (value) => {
|
|
87
|
-
const possiblyNumber = value[1];
|
|
88
|
-
return typeof possiblyNumber === "number" && !isNaN(possiblyNumber);
|
|
89
|
-
};
|
|
90
|
-
var divineCoinGeckoPrices = (payload) => {
|
|
91
|
-
const assets = payload && payload?.assets ? Object.fromEntries(
|
|
92
|
-
Object.entries(payload.assets).filter(valuationExists).map(([asset, valuation]) => {
|
|
93
|
-
const value = Object.fromEntries(
|
|
94
|
-
Object.entries(valuation).filter(otherValueExists).map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()])
|
|
95
|
-
);
|
|
96
|
-
return [asset, { value }];
|
|
97
|
-
})
|
|
98
|
-
) : {};
|
|
99
|
-
const timestamp = Date.now();
|
|
100
|
-
return new import_payload_builder.PayloadBuilder({ schema }).fields({ assets, timestamp }).build();
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
// src/lib/divineUniswapPrices.ts
|
|
104
|
-
var import_exists2 = require("@xylabs/exists");
|
|
105
|
-
var import_crypto_asset_payload_plugin2 = require("@xyo-network/crypto-asset-payload-plugin");
|
|
106
|
-
var import_payload_builder2 = require("@xyo-network/payload-builder");
|
|
107
|
-
var schema2 = import_crypto_asset_payload_plugin2.CryptoMarketAssetSchema;
|
|
108
|
-
var mapUniswapToken = (symbol) => {
|
|
109
|
-
if (symbol.toLowerCase() === "wbtc")
|
|
110
|
-
return "btc";
|
|
111
|
-
if (symbol.toLowerCase() === "weth")
|
|
112
|
-
return "eth";
|
|
113
|
-
if (symbol.toLowerCase() === "usdt")
|
|
114
|
-
return "usd";
|
|
115
|
-
return symbol.toLowerCase();
|
|
116
|
-
};
|
|
117
|
-
var pairsContainingToken = (uniswapPayload, token) => {
|
|
118
|
-
return uniswapPayload?.pairs.map((p) => p.tokens).filter((p) => p.some((x) => x.symbol.toLowerCase() === token)).filter(import_exists2.exists);
|
|
119
|
-
};
|
|
120
|
-
var tokensFromPairs = (pairs) => {
|
|
121
|
-
return pairs.map((p) => p.tokens).flat().map((t) => t.symbol.toLowerCase());
|
|
122
|
-
};
|
|
123
|
-
var valuesFromTokenPairs = (tokensPairs, token) => {
|
|
124
|
-
return Object.fromEntries(
|
|
125
|
-
tokensPairs.map((pair) => {
|
|
126
|
-
const current = pair.filter((p) => p.symbol.toLowerCase() === token)?.[0];
|
|
127
|
-
const other = pair.filter((p) => p.symbol.toLowerCase() !== token)?.[0];
|
|
128
|
-
return [other.symbol.toLowerCase(), current.value.toString()];
|
|
129
|
-
}).map((x) => [mapUniswapToken(x[0]), x[1]])
|
|
130
|
-
);
|
|
131
|
-
};
|
|
132
|
-
var divineUniswapPrices = (uniswapPayload) => {
|
|
133
|
-
let assets = {};
|
|
134
|
-
if (uniswapPayload) {
|
|
135
|
-
const tokens = new Set(tokensFromPairs(uniswapPayload.pairs));
|
|
136
|
-
assets = Object.fromEntries(
|
|
137
|
-
[...tokens].map((token) => {
|
|
138
|
-
const pairs = pairsContainingToken(uniswapPayload, token);
|
|
139
|
-
const value = valuesFromTokenPairs(pairs, token);
|
|
140
|
-
const assetInfo = { value };
|
|
141
|
-
return [token, assetInfo];
|
|
142
|
-
})
|
|
143
|
-
);
|
|
144
|
-
}
|
|
145
|
-
const timestamp = Date.now();
|
|
146
|
-
return new import_payload_builder2.PayloadBuilder({ schema: schema2 }).fields({ assets, timestamp }).build();
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
// src/lib/divinePrices.ts
|
|
150
|
-
var schema3 = import_crypto_asset_payload_plugin3.CryptoMarketAssetSchema;
|
|
151
|
-
var divinePrices = (coinGeckoPayload, uniswapPayload) => {
|
|
152
|
-
const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload);
|
|
153
|
-
const uniswapPrices = divineUniswapPrices(uniswapPayload);
|
|
154
|
-
const prices = [uniswapPayload, coinGeckoPayload].some(import_exists3.exists);
|
|
155
|
-
const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {};
|
|
156
|
-
const timestamp = Date.now();
|
|
157
|
-
return new import_payload_builder3.PayloadBuilder({ schema: schema3 }).fields({ assets, timestamp }).build();
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
// src/Schema.ts
|
|
161
|
-
var CryptoMarketAssetDivinerConfigSchema = "network.xyo.crypto.asset.diviner.config";
|
|
162
|
-
|
|
163
|
-
// src/Diviner.ts
|
|
164
|
-
var CryptoMarketAssetDiviner = class extends import_abstract_diviner.AbstractDiviner {
|
|
165
|
-
static configSchemas = [CryptoMarketAssetDivinerConfigSchema];
|
|
166
|
-
static targetSchema = import_crypto_asset_payload_plugin4.CryptoMarketAssetSchema;
|
|
167
|
-
divineHandler(payloads) {
|
|
168
|
-
const coinGeckoPayload = payloads?.find((payload) => payload?.schema === import_coingecko_crypto_market_payload_plugin.CoingeckoCryptoMarketSchema);
|
|
169
|
-
const uniswapPayload = payloads?.find((payload) => payload?.schema === import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketSchema);
|
|
170
|
-
const result = divinePrices(coinGeckoPayload, uniswapPayload);
|
|
171
|
-
return [result];
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
//# sourceMappingURL=Diviner.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Diviner.ts","../../src/lib/divinePrices.ts","../../src/lib/average.ts","../../src/lib/divineCoinGeckoPrices.ts","../../src/lib/divineUniswapPrices.ts","../../src/Schema.ts"],"sourcesContent":["import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { DivinerConfig, DivinerModule, DivinerParams } from '@xyo-network/diviner'\nimport { AnyConfigSchema, Module } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Promisable } from '@xyo-network/promise'\nimport { UniswapCryptoMarketPayload, UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { divinePrices } from './lib'\nimport { CryptoMarketAssetDivinerConfigSchema } from './Schema'\n\nexport type CryptoMarketAssetDivinerConfig = DivinerConfig<{ schema: CryptoMarketAssetDivinerConfigSchema }>\nexport type CryptoMarketAssetDivinerParams = DivinerParams<AnyConfigSchema<CryptoMarketAssetDivinerConfig>>\n\nexport class CryptoMarketAssetDiviner<TParams extends CryptoMarketAssetDivinerParams = CryptoMarketAssetDivinerParams>\n extends AbstractDiviner<TParams>\n implements DivinerModule, Module\n{\n static override configSchemas = [CryptoMarketAssetDivinerConfigSchema]\n static override targetSchema = CryptoMarketAssetSchema\n\n protected override divineHandler(payloads?: Payload[]): Promisable<Payload[]> {\n const coinGeckoPayload = payloads?.find((payload) => payload?.schema === CoingeckoCryptoMarketSchema) as CoingeckoCryptoMarketPayload\n const uniswapPayload = payloads?.find((payload) => payload?.schema === UniswapCryptoMarketSchema) as UniswapCryptoMarketPayload\n const result: CryptoMarketAssetPayload = divinePrices(coinGeckoPayload, uniswapPayload)\n return [result]\n }\n}\n","import { exists } from '@xylabs/exists'\nimport { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { UniswapCryptoMarketPayload } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { average } from './average'\nimport { divineCoinGeckoPrices } from './divineCoinGeckoPrices'\nimport { divineUniswapPrices } from './divineUniswapPrices'\n\nconst schema = CryptoMarketAssetSchema\n\nexport const divinePrices = (\n coinGeckoPayload: CoingeckoCryptoMarketPayload | undefined,\n uniswapPayload: UniswapCryptoMarketPayload | undefined,\n): CryptoMarketAssetPayload => {\n const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload)\n const uniswapPrices = divineUniswapPrices(uniswapPayload)\n const prices = [uniswapPayload, coinGeckoPayload].some(exists)\n const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","import { exists } from '@xylabs/exists'\nimport { AssetInfo, CryptoMarketAssetPayload, Currency, Token } from '@xyo-network/crypto-asset-payload-plugin'\n\nconst isNumber = (val: number | undefined): val is number => {\n return val !== undefined\n}\n\nconst parseStringifiedNumber = (value: string | undefined): number | undefined => {\n if (!value) return undefined\n const parsed = parseFloat(value)\n return isNaN(parsed) ? undefined : parsed\n}\n\nconst averageStringifiedNumbers = (...prices: (string | undefined)[]): number | undefined => {\n const numbers = prices.map(parseStringifiedNumber).filter(isNumber)\n return numbers.length ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : undefined\n}\n\nexport const average = (...input: (CryptoMarketAssetPayload | undefined)[]): Record<string, AssetInfo> => {\n // Get all the assets represented\n const payloads = input.filter(exists)\n const tokens = new Set<Token>(payloads.map((payload) => Object.keys(payload.assets).map<Token>((t) => t as Token)).flatMap((t) => t))\n // Get all the valuations used\n const valuations = new Set<Token | Currency>(\n [...tokens]\n .map((asset) => {\n const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists)\n const valueBasis = new Set<Currency | Token>(\n assetInfo\n .map((v) => Object.keys(v.value) as unknown as Currency | Token)\n .flatMap((v) => v)\n .filter(exists),\n )\n return [...valueBasis]\n })\n .flatMap((v) => v),\n )\n // For each of the tokens, calculate the average valuation for each of valuation bases\n const assets: Record<string, AssetInfo> = Object.fromEntries(\n [...tokens].map((token) => {\n const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists)\n const value = Object.fromEntries(\n [...valuations].map((valuation) => {\n const assetValuations = assetInfo.map((info) => info.value?.[valuation])\n const averageAssetValuation = averageStringifiedNumbers(...assetValuations)\n return [valuation, averageAssetValuation?.toString()]\n }),\n )\n return [token, { value }]\n }),\n )\n return assets\n}\n","import { CoingeckoCryptoMarketPayload } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AssetInfo, CryptoMarketAssetPayload, CryptoMarketAssetSchema } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\n\nconst schema = CryptoMarketAssetSchema\n\nconst valuationExists = (value: [string, Partial<Record<string, number>> | undefined]): value is [string, Partial<Record<string, number>>] => {\n return !!value[1]\n}\n\nconst otherValueExists = (value: [string, number | undefined]): value is [string, number] => {\n const possiblyNumber = value[1]\n return typeof possiblyNumber === 'number' && !isNaN(possiblyNumber)\n}\n\nexport const divineCoinGeckoPrices = (payload: CoingeckoCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n const assets: Record<string, AssetInfo> =\n payload && payload?.assets\n ? Object.fromEntries(\n Object.entries(payload.assets)\n .filter(valuationExists)\n .map(([asset, valuation]) => {\n const value = Object.fromEntries(\n Object.entries(valuation)\n .filter(otherValueExists)\n .map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()]),\n )\n return [asset, { value }]\n }),\n )\n : {}\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","import { exists } from '@xylabs/exists'\nimport { AssetInfo, CryptoMarketAssetPayload, CryptoMarketAssetSchema, Currency, Token, ValueBasis } from '@xyo-network/crypto-asset-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { UniswapCryptoMarketPayload, UniswapCryptoPair, UniswapCryptoToken } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nconst schema = CryptoMarketAssetSchema\n\nconst mapUniswapToken = (symbol: string): Token | Currency => {\n // TODO: Actually calculate the value of the token/stablecoin based on others\n // to weed out individual fluctuations in price\n if (symbol.toLowerCase() === 'wbtc') return 'btc'\n if (symbol.toLowerCase() === 'weth') return 'eth'\n if (symbol.toLowerCase() === 'usdt') return 'usd'\n return symbol.toLowerCase() as Token\n}\n\nconst pairsContainingToken = (uniswapPayload: UniswapCryptoMarketPayload, token: Token) => {\n return uniswapPayload?.pairs\n .map((p) => p.tokens)\n .filter((p) => p.some((x) => x.symbol.toLowerCase() === token))\n .filter(exists)\n}\n\nconst tokensFromPairs = (pairs: UniswapCryptoPair[]) => {\n return pairs\n .map((p) => p.tokens)\n .flat()\n .map((t) => t.symbol.toLowerCase() as Token)\n}\n\nconst valuesFromTokenPairs = (tokensPairs: UniswapCryptoToken[][], token: Token): ValueBasis => {\n return Object.fromEntries(\n tokensPairs\n .map((pair) => {\n const current = pair.filter((p) => p.symbol.toLowerCase() === token)?.[0]\n const other = pair.filter((p) => p.symbol.toLowerCase() !== token)?.[0]\n return [other.symbol.toLowerCase(), current.value.toString()]\n })\n .map((x) => [mapUniswapToken(x[0]), x[1]]),\n )\n}\n\nexport const divineUniswapPrices = (uniswapPayload: UniswapCryptoMarketPayload | undefined): CryptoMarketAssetPayload => {\n let assets: Partial<Record<Token, AssetInfo | undefined>> = {}\n if (uniswapPayload) {\n const tokens: Set<Token> = new Set(tokensFromPairs(uniswapPayload.pairs))\n assets = Object.fromEntries(\n [...tokens].map((token) => {\n const pairs = pairsContainingToken(uniswapPayload, token)\n const value: ValueBasis = valuesFromTokenPairs(pairs, token)\n const assetInfo: AssetInfo = { value }\n return [token, assetInfo]\n }),\n )\n }\n const timestamp = Date.now()\n return new PayloadBuilder<CryptoMarketAssetPayload>({ schema }).fields({ assets, timestamp }).build()\n}\n","export type CryptoMarketAssetDivinerQuerySchema = 'network.xyo.crypto.asset.diviner.query'\nexport const CryptoMarketAssetDivinerQuerySchema: CryptoMarketAssetDivinerQuerySchema = 'network.xyo.crypto.asset.diviner.query'\n\nexport type CryptoMarketAssetDivinerConfigSchema = 'network.xyo.crypto.asset.diviner.config'\nexport const CryptoMarketAssetDivinerConfigSchema: CryptoMarketAssetDivinerConfigSchema = 'network.xyo.crypto.asset.diviner.config'\n"],"mappings":"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","names":["import_crypto_asset_payload_plugin","import_exists","import_crypto_asset_payload_plugin","import_payload_builder","import_exists","import_crypto_asset_payload_plugin","import_payload_builder","schema","schema"]}
|
package/dist/browser/Diviner.js
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
// src/Diviner.ts
|
|
2
|
-
import { AbstractDiviner } from "@xyo-network/abstract-diviner";
|
|
3
|
-
import { CoingeckoCryptoMarketSchema } from "@xyo-network/coingecko-crypto-market-payload-plugin";
|
|
4
|
-
import { CryptoMarketAssetSchema as CryptoMarketAssetSchema4 } from "@xyo-network/crypto-asset-payload-plugin";
|
|
5
|
-
import { UniswapCryptoMarketSchema } from "@xyo-network/uniswap-crypto-market-payload-plugin";
|
|
6
|
-
|
|
7
|
-
// src/lib/divinePrices.ts
|
|
8
|
-
import { exists as exists3 } from "@xylabs/exists";
|
|
9
|
-
import { CryptoMarketAssetSchema as CryptoMarketAssetSchema3 } from "@xyo-network/crypto-asset-payload-plugin";
|
|
10
|
-
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
11
|
-
|
|
12
|
-
// src/lib/average.ts
|
|
13
|
-
import { exists } from "@xylabs/exists";
|
|
14
|
-
var isNumber = (val) => {
|
|
15
|
-
return val !== void 0;
|
|
16
|
-
};
|
|
17
|
-
var parseStringifiedNumber = (value) => {
|
|
18
|
-
if (!value)
|
|
19
|
-
return void 0;
|
|
20
|
-
const parsed = parseFloat(value);
|
|
21
|
-
return isNaN(parsed) ? void 0 : parsed;
|
|
22
|
-
};
|
|
23
|
-
var averageStringifiedNumbers = (...prices) => {
|
|
24
|
-
const numbers = prices.map(parseStringifiedNumber).filter(isNumber);
|
|
25
|
-
return numbers.length ? numbers.reduce((sum, n) => sum + n, 0) / numbers.length : void 0;
|
|
26
|
-
};
|
|
27
|
-
var average = (...input) => {
|
|
28
|
-
const payloads = input.filter(exists);
|
|
29
|
-
const tokens = new Set(payloads.map((payload) => Object.keys(payload.assets).map((t) => t)).flatMap((t) => t));
|
|
30
|
-
const valuations = new Set(
|
|
31
|
-
[...tokens].map((asset) => {
|
|
32
|
-
const assetInfo = payloads.map((p) => p.assets?.[asset]).filter(exists);
|
|
33
|
-
const valueBasis = new Set(
|
|
34
|
-
assetInfo.map((v) => Object.keys(v.value)).flatMap((v) => v).filter(exists)
|
|
35
|
-
);
|
|
36
|
-
return [...valueBasis];
|
|
37
|
-
}).flatMap((v) => v)
|
|
38
|
-
);
|
|
39
|
-
const assets = Object.fromEntries(
|
|
40
|
-
[...tokens].map((token) => {
|
|
41
|
-
const assetInfo = payloads.map((p) => p.assets?.[token]).filter(exists);
|
|
42
|
-
const value = Object.fromEntries(
|
|
43
|
-
[...valuations].map((valuation) => {
|
|
44
|
-
const assetValuations = assetInfo.map((info) => info.value?.[valuation]);
|
|
45
|
-
const averageAssetValuation = averageStringifiedNumbers(...assetValuations);
|
|
46
|
-
return [valuation, averageAssetValuation?.toString()];
|
|
47
|
-
})
|
|
48
|
-
);
|
|
49
|
-
return [token, { value }];
|
|
50
|
-
})
|
|
51
|
-
);
|
|
52
|
-
return assets;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
// src/lib/divineCoinGeckoPrices.ts
|
|
56
|
-
import { CryptoMarketAssetSchema } from "@xyo-network/crypto-asset-payload-plugin";
|
|
57
|
-
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
58
|
-
var schema = CryptoMarketAssetSchema;
|
|
59
|
-
var valuationExists = (value) => {
|
|
60
|
-
return !!value[1];
|
|
61
|
-
};
|
|
62
|
-
var otherValueExists = (value) => {
|
|
63
|
-
const possiblyNumber = value[1];
|
|
64
|
-
return typeof possiblyNumber === "number" && !isNaN(possiblyNumber);
|
|
65
|
-
};
|
|
66
|
-
var divineCoinGeckoPrices = (payload) => {
|
|
67
|
-
const assets = payload && payload?.assets ? Object.fromEntries(
|
|
68
|
-
Object.entries(payload.assets).filter(valuationExists).map(([asset, valuation]) => {
|
|
69
|
-
const value = Object.fromEntries(
|
|
70
|
-
Object.entries(valuation).filter(otherValueExists).map(([symbol, price]) => [symbol.toLowerCase(), price?.toString()])
|
|
71
|
-
);
|
|
72
|
-
return [asset, { value }];
|
|
73
|
-
})
|
|
74
|
-
) : {};
|
|
75
|
-
const timestamp = Date.now();
|
|
76
|
-
return new PayloadBuilder({ schema }).fields({ assets, timestamp }).build();
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
// src/lib/divineUniswapPrices.ts
|
|
80
|
-
import { exists as exists2 } from "@xylabs/exists";
|
|
81
|
-
import { CryptoMarketAssetSchema as CryptoMarketAssetSchema2 } from "@xyo-network/crypto-asset-payload-plugin";
|
|
82
|
-
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
83
|
-
var schema2 = CryptoMarketAssetSchema2;
|
|
84
|
-
var mapUniswapToken = (symbol) => {
|
|
85
|
-
if (symbol.toLowerCase() === "wbtc")
|
|
86
|
-
return "btc";
|
|
87
|
-
if (symbol.toLowerCase() === "weth")
|
|
88
|
-
return "eth";
|
|
89
|
-
if (symbol.toLowerCase() === "usdt")
|
|
90
|
-
return "usd";
|
|
91
|
-
return symbol.toLowerCase();
|
|
92
|
-
};
|
|
93
|
-
var pairsContainingToken = (uniswapPayload, token) => {
|
|
94
|
-
return uniswapPayload?.pairs.map((p) => p.tokens).filter((p) => p.some((x) => x.symbol.toLowerCase() === token)).filter(exists2);
|
|
95
|
-
};
|
|
96
|
-
var tokensFromPairs = (pairs) => {
|
|
97
|
-
return pairs.map((p) => p.tokens).flat().map((t) => t.symbol.toLowerCase());
|
|
98
|
-
};
|
|
99
|
-
var valuesFromTokenPairs = (tokensPairs, token) => {
|
|
100
|
-
return Object.fromEntries(
|
|
101
|
-
tokensPairs.map((pair) => {
|
|
102
|
-
const current = pair.filter((p) => p.symbol.toLowerCase() === token)?.[0];
|
|
103
|
-
const other = pair.filter((p) => p.symbol.toLowerCase() !== token)?.[0];
|
|
104
|
-
return [other.symbol.toLowerCase(), current.value.toString()];
|
|
105
|
-
}).map((x) => [mapUniswapToken(x[0]), x[1]])
|
|
106
|
-
);
|
|
107
|
-
};
|
|
108
|
-
var divineUniswapPrices = (uniswapPayload) => {
|
|
109
|
-
let assets = {};
|
|
110
|
-
if (uniswapPayload) {
|
|
111
|
-
const tokens = new Set(tokensFromPairs(uniswapPayload.pairs));
|
|
112
|
-
assets = Object.fromEntries(
|
|
113
|
-
[...tokens].map((token) => {
|
|
114
|
-
const pairs = pairsContainingToken(uniswapPayload, token);
|
|
115
|
-
const value = valuesFromTokenPairs(pairs, token);
|
|
116
|
-
const assetInfo = { value };
|
|
117
|
-
return [token, assetInfo];
|
|
118
|
-
})
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
const timestamp = Date.now();
|
|
122
|
-
return new PayloadBuilder2({ schema: schema2 }).fields({ assets, timestamp }).build();
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
// src/lib/divinePrices.ts
|
|
126
|
-
var schema3 = CryptoMarketAssetSchema3;
|
|
127
|
-
var divinePrices = (coinGeckoPayload, uniswapPayload) => {
|
|
128
|
-
const coinGeckoPrices = divineCoinGeckoPrices(coinGeckoPayload);
|
|
129
|
-
const uniswapPrices = divineUniswapPrices(uniswapPayload);
|
|
130
|
-
const prices = [uniswapPayload, coinGeckoPayload].some(exists3);
|
|
131
|
-
const assets = prices ? average(coinGeckoPrices, uniswapPrices) : {};
|
|
132
|
-
const timestamp = Date.now();
|
|
133
|
-
return new PayloadBuilder3({ schema: schema3 }).fields({ assets, timestamp }).build();
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
// src/Schema.ts
|
|
137
|
-
var CryptoMarketAssetDivinerConfigSchema = "network.xyo.crypto.asset.diviner.config";
|
|
138
|
-
|
|
139
|
-
// src/Diviner.ts
|
|
140
|
-
var CryptoMarketAssetDiviner = class extends AbstractDiviner {
|
|
141
|
-
static configSchemas = [CryptoMarketAssetDivinerConfigSchema];
|
|
142
|
-
static targetSchema = CryptoMarketAssetSchema4;
|
|
143
|
-
divineHandler(payloads) {
|
|
144
|
-
const coinGeckoPayload = payloads?.find((payload) => payload?.schema === CoingeckoCryptoMarketSchema);
|
|
145
|
-
const uniswapPayload = payloads?.find((payload) => payload?.schema === UniswapCryptoMarketSchema);
|
|
146
|
-
const result = divinePrices(coinGeckoPayload, uniswapPayload);
|
|
147
|
-
return [result];
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
export {
|
|
151
|
-
CryptoMarketAssetDiviner
|
|
152
|
-
};
|
|
153
|
-
//# sourceMappingURL=Diviner.js.map
|