@xyo-network/coingecko-crypto-market-plugin 2.99.5 → 2.99.6
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/Plugin.d.cts +3 -3
- package/dist/browser/Plugin.d.mts +3 -3
- package/dist/browser/Plugin.d.ts +3 -3
- package/dist/browser/index.cjs +27 -77
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.mjs +27 -79
- package/dist/browser/index.mjs.map +1 -1
- package/dist/neutral/Plugin.d.cts +3 -3
- package/dist/neutral/Plugin.d.mts +3 -3
- package/dist/neutral/Plugin.d.ts +3 -3
- package/dist/neutral/index.cjs +27 -77
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.mjs +27 -79
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/Plugin.d.cts +3 -3
- package/dist/node/Plugin.d.mts +3 -3
- package/dist/node/Plugin.d.ts +3 -3
- package/dist/node/index.cjs +29 -83
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.mjs +29 -85
- package/dist/node/index.mjs.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/lib/coinGeckoCoinToAssetMap.ts","../../src/lib/defaults.ts","../../src/lib/pricesFromCoingecko.ts","../../src/Plugin.ts","../../src/Witness.ts","../../src/Schema.ts"],"sourcesContent":["export * from './Config.ts'\nexport * from './lib/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { AssetSymbol } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const coingeckoCoinToAssetMap: Record<string, AssetSymbol> = {\n 'binance-usd': 'busd',\n 'bitcoin': 'btc',\n 'bnb': 'bnb',\n 'cardano': 'ada',\n 'dogecoin': 'doge',\n 'ethereum': 'eth',\n 'polkadot': 'dot',\n 'solana': 'sol',\n 'tether': 'usdt',\n 'usd-coin': 'usdc',\n 'wrapped-bitcoin': 'wbtc',\n 'xrp': 'xrp',\n 'xyo-network': 'xyo',\n}\n","import { CryptoAsset } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const defaultCoins: CryptoAsset[] = [\n { name: 'bitcoin' },\n { name: 'binance-usd' },\n { name: 'bnb' },\n { name: 'cardano' },\n { name: 'dogecoin' },\n { name: 'ethereum' },\n { name: 'polkadot' },\n { name: 'solana' },\n { name: 'tether' },\n { name: 'usd-coin' },\n { name: 'wrapped-bitcoin' },\n { name: 'xrp' },\n { name: 'xyo-network' },\n]\n\nexport const defaultCurrencies: CryptoAsset[] = [{ symbol: 'usd' }, { symbol: 'eur' }, { symbol: 'btc' }, { symbol: 'eth' }]\n","import { axios } from '@xylabs/axios'\nimport { AssetSymbol, CryptoAsset, CryptoAssetPrices } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nimport { coingeckoCoinToAssetMap } from './coinGeckoCoinToAssetMap.ts'\n\ntype CoinGeckoSimplePrice = Partial<Record<AssetSymbol, number>>\ntype CoinGeckoSimplePrices = Record<string, CoinGeckoSimplePrice>\n\nexport const pricesFromCoingecko = async (coins: CryptoAsset[], currencies: CryptoAsset[]) => {\n const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(',')}&vs_currencies=${currencies\n .map(({ symbol }) => symbol)\n .join(',')}`\n const coinGeckoSimplePrices = (await axios.get<CoinGeckoSimplePrices>(url)).data\n const assets: CryptoAssetPrices = {}\n for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {\n assets[coingeckoCoinToAssetMap[key]] = value\n }\n return assets\n}\n","import { CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CoingeckoCryptoMarketWitness } from './Witness.ts'\n\nexport const CoingeckoCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness>(\n { required: { [CoingeckoCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CoingeckoCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\n\nimport { CoingeckoCryptoMarketWitnessConfig } from './Config.ts'\nimport { pricesFromCoingecko } from './lib/index.ts'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema.ts'\n\nexport type CoingeckoCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<CoingeckoCryptoMarketWitnessConfig>>\n\nexport class CoingeckoCryptoMarketWitness<\n TParams extends CoingeckoCryptoMarketWitnessParams = CoingeckoCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CoingeckoCryptoMarketWitnessConfigSchema\n\n protected override async observeHandler(): Promise<Payload[]> {\n const assets: CoingeckoCryptoMarketPayload['assets'] = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? [])\n const payload: CoingeckoCryptoMarketPayload = {\n assets,\n schema: CoingeckoCryptoMarketSchema,\n timestamp: Date.now(),\n }\n\n return [payload]\n }\n}\n","export type CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\nexport const CoingeckoCryptoMarketWitnessConfigSchema: CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/lib/coinGeckoCoinToAssetMap.ts","../../src/lib/defaults.ts","../../src/lib/pricesFromCoingecko.ts","../../src/Plugin.ts","../../src/Witness.ts","../../src/Schema.ts"],"sourcesContent":["export * from './Config.ts'\nexport * from './lib/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { AssetSymbol } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const coingeckoCoinToAssetMap: Record<string, AssetSymbol> = {\n 'binance-usd': 'busd',\n 'bitcoin': 'btc',\n 'bnb': 'bnb',\n 'cardano': 'ada',\n 'dogecoin': 'doge',\n 'ethereum': 'eth',\n 'polkadot': 'dot',\n 'solana': 'sol',\n 'tether': 'usdt',\n 'usd-coin': 'usdc',\n 'wrapped-bitcoin': 'wbtc',\n 'xrp': 'xrp',\n 'xyo-network': 'xyo',\n}\n","import { CryptoAsset } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const defaultCoins: CryptoAsset[] = [\n { name: 'bitcoin' },\n { name: 'binance-usd' },\n { name: 'bnb' },\n { name: 'cardano' },\n { name: 'dogecoin' },\n { name: 'ethereum' },\n { name: 'polkadot' },\n { name: 'solana' },\n { name: 'tether' },\n { name: 'usd-coin' },\n { name: 'wrapped-bitcoin' },\n { name: 'xrp' },\n { name: 'xyo-network' },\n]\n\nexport const defaultCurrencies: CryptoAsset[] = [{ symbol: 'usd' }, { symbol: 'eur' }, { symbol: 'btc' }, { symbol: 'eth' }]\n","import { axios } from '@xylabs/axios'\nimport { AssetSymbol, CryptoAsset, CryptoAssetPrices } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nimport { coingeckoCoinToAssetMap } from './coinGeckoCoinToAssetMap.ts'\n\ntype CoinGeckoSimplePrice = Partial<Record<AssetSymbol, number>>\ntype CoinGeckoSimplePrices = Record<string, CoinGeckoSimplePrice>\n\nexport const pricesFromCoingecko = async (coins: CryptoAsset[], currencies: CryptoAsset[]) => {\n const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(',')}&vs_currencies=${currencies\n .map(({ symbol }) => symbol)\n .join(',')}`\n const coinGeckoSimplePrices = (await axios.get<CoinGeckoSimplePrices>(url)).data\n const assets: CryptoAssetPrices = {}\n for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {\n assets[coingeckoCoinToAssetMap[key]] = value\n }\n return assets\n}\n","import { CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CoingeckoCryptoMarketWitness } from './Witness.ts'\n\nexport const CoingeckoCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness>(\n { required: { [CoingeckoCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CoingeckoCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\n\nimport { CoingeckoCryptoMarketWitnessConfig } from './Config.ts'\nimport { pricesFromCoingecko } from './lib/index.ts'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema.ts'\n\nexport type CoingeckoCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<CoingeckoCryptoMarketWitnessConfig>>\n\nexport class CoingeckoCryptoMarketWitness<\n TParams extends CoingeckoCryptoMarketWitnessParams = CoingeckoCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CoingeckoCryptoMarketWitnessConfigSchema\n\n protected override async observeHandler(): Promise<Payload[]> {\n const assets: CoingeckoCryptoMarketPayload['assets'] = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? [])\n const payload: CoingeckoCryptoMarketPayload = {\n assets,\n schema: CoingeckoCryptoMarketSchema,\n timestamp: Date.now(),\n }\n\n return [payload]\n }\n}\n","export type CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\nexport const CoingeckoCryptoMarketWitnessConfigSchema: CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,0BAAuD;AAAA,EAClE,eAAe;AAAA,EACf,WAAW;AAAA,EACX,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,eAAe;AACjB;;;ACdO,IAAM,eAA8B;AAAA,EACzC,EAAE,MAAM,UAAU;AAAA,EAClB,EAAE,MAAM,cAAc;AAAA,EACtB,EAAE,MAAM,MAAM;AAAA,EACd,EAAE,MAAM,UAAU;AAAA,EAClB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,SAAS;AAAA,EACjB,EAAE,MAAM,SAAS;AAAA,EACjB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,kBAAkB;AAAA,EAC1B,EAAE,MAAM,MAAM;AAAA,EACd,EAAE,MAAM,cAAc;AACxB;AAEO,IAAM,oBAAmC,CAAC,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,CAAC;;;AClB3H,mBAAsB;AAQf,IAAM,sBAAsB,OAAO,OAAsB,eAA8B;AAC5F,QAAM,MAAM,qDAAqD,MAAM,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,kBAAkB,WACvH,IAAI,CAAC,EAAE,OAAO,MAAM,MAAM,EAC1B,KAAK,GAAG,CAAC;AACZ,QAAM,yBAAyB,MAAM,mBAAM,IAA2B,GAAG,GAAG;AAC5E,QAAM,SAA4B,CAAC;AACnC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,qBAAqB,GAAG;AAChE,WAAO,wBAAwB,GAAG,CAAC,IAAI;AAAA,EACzC;AACA,SAAO;AACT;;;AClBA,IAAAA,iDAA4C;AAC5C,2BAAiC;AACjC,+BAA8C;;;ACF9C,8BAAgC;AAChC,oDAA0E;;;ACAnE,IAAM,2CAAqF;;;ADW3F,IAAM,+BAAN,cAEG,wCAAyB;AAAA,EACjC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,wCAAwC;AAAA,EACpH,OAAyB,sBAA8B;AAAA,EAEvD,MAAyB,iBAAqC;AAC5D,UAAM,SAAiD,MAAM,oBAAoB,KAAK,QAAQ,SAAS,CAAC,GAAG,KAAK,QAAQ,cAAc,CAAC,CAAC;AACxI,UAAM,UAAwC;AAAA,MAC5C;AAAA,MACA,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI;AAAA,IACtB;AAEA,WAAO,CAAC,OAAO;AAAA,EACjB;AACF;;;ADtBO,IAAM,8BAA8B,UACzC;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,0EAA2B,GAAG,EAAE,GAAG,QAAQ,sCAAiB;AAAA,EAC3E;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,6BAA6B,OAAO,MAAM;AAC/D,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["import_coingecko_crypto_market_payload_plugin"]}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/lib/coinGeckoCoinToAssetMap.ts
|
|
5
2
|
var coingeckoCoinToAssetMap = {
|
|
6
3
|
"binance-usd": "busd",
|
|
@@ -20,64 +17,25 @@ var coingeckoCoinToAssetMap = {
|
|
|
20
17
|
|
|
21
18
|
// src/lib/defaults.ts
|
|
22
19
|
var defaultCoins = [
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
name: "dogecoin"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "ethereum"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: "polkadot"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: "solana"
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: "tether"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
name: "usd-coin"
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "wrapped-bitcoin"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: "xrp"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
name: "xyo-network"
|
|
61
|
-
}
|
|
62
|
-
];
|
|
63
|
-
var defaultCurrencies = [
|
|
64
|
-
{
|
|
65
|
-
symbol: "usd"
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
symbol: "eur"
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
symbol: "btc"
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
symbol: "eth"
|
|
75
|
-
}
|
|
20
|
+
{ name: "bitcoin" },
|
|
21
|
+
{ name: "binance-usd" },
|
|
22
|
+
{ name: "bnb" },
|
|
23
|
+
{ name: "cardano" },
|
|
24
|
+
{ name: "dogecoin" },
|
|
25
|
+
{ name: "ethereum" },
|
|
26
|
+
{ name: "polkadot" },
|
|
27
|
+
{ name: "solana" },
|
|
28
|
+
{ name: "tether" },
|
|
29
|
+
{ name: "usd-coin" },
|
|
30
|
+
{ name: "wrapped-bitcoin" },
|
|
31
|
+
{ name: "xrp" },
|
|
32
|
+
{ name: "xyo-network" }
|
|
76
33
|
];
|
|
34
|
+
var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
|
|
77
35
|
|
|
78
36
|
// src/lib/pricesFromCoingecko.ts
|
|
79
37
|
import { axios } from "@xylabs/axios";
|
|
80
|
-
var pricesFromCoingecko =
|
|
38
|
+
var pricesFromCoingecko = async (coins, currencies) => {
|
|
81
39
|
const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
|
|
82
40
|
const coinGeckoSimplePrices = (await axios.get(url)).data;
|
|
83
41
|
const assets = {};
|
|
@@ -85,7 +43,7 @@ var pricesFromCoingecko = /* @__PURE__ */ __name(async (coins, currencies) => {
|
|
|
85
43
|
assets[coingeckoCoinToAssetMap[key]] = value;
|
|
86
44
|
}
|
|
87
45
|
return assets;
|
|
88
|
-
}
|
|
46
|
+
};
|
|
89
47
|
|
|
90
48
|
// src/Plugin.ts
|
|
91
49
|
import { CoingeckoCryptoMarketSchema as CoingeckoCryptoMarketSchema2 } from "@xyo-network/coingecko-crypto-market-payload-plugin";
|
|
@@ -101,13 +59,7 @@ var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coinge
|
|
|
101
59
|
|
|
102
60
|
// src/Witness.ts
|
|
103
61
|
var CoingeckoCryptoMarketWitness = class extends AbstractWitness {
|
|
104
|
-
static
|
|
105
|
-
__name(this, "CoingeckoCryptoMarketWitness");
|
|
106
|
-
}
|
|
107
|
-
static configSchemas = [
|
|
108
|
-
...super.configSchemas,
|
|
109
|
-
CoingeckoCryptoMarketWitnessConfigSchema
|
|
110
|
-
];
|
|
62
|
+
static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
|
|
111
63
|
static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
|
|
112
64
|
async observeHandler() {
|
|
113
65
|
const assets = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? []);
|
|
@@ -116,24 +68,20 @@ var CoingeckoCryptoMarketWitness = class extends AbstractWitness {
|
|
|
116
68
|
schema: CoingeckoCryptoMarketSchema,
|
|
117
69
|
timestamp: Date.now()
|
|
118
70
|
};
|
|
119
|
-
return [
|
|
120
|
-
payload
|
|
121
|
-
];
|
|
71
|
+
return [payload];
|
|
122
72
|
}
|
|
123
73
|
};
|
|
124
74
|
|
|
125
75
|
// src/Plugin.ts
|
|
126
|
-
var CoingeckoCryptoMarketPlugin =
|
|
127
|
-
required: {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}, "witness")
|
|
136
|
-
}), "CoingeckoCryptoMarketPlugin");
|
|
76
|
+
var CoingeckoCryptoMarketPlugin = () => createPayloadSetWitnessPlugin(
|
|
77
|
+
{ required: { [CoingeckoCryptoMarketSchema2]: 1 }, schema: PayloadSetSchema },
|
|
78
|
+
{
|
|
79
|
+
witness: async (params) => {
|
|
80
|
+
const result = await CoingeckoCryptoMarketWitness.create(params);
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
);
|
|
137
85
|
export {
|
|
138
86
|
CoingeckoCryptoMarketPlugin,
|
|
139
87
|
CoingeckoCryptoMarketWitness,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/coinGeckoCoinToAssetMap.ts","../../src/lib/defaults.ts","../../src/lib/pricesFromCoingecko.ts","../../src/Plugin.ts","../../src/Witness.ts","../../src/Schema.ts"],"sourcesContent":["import { AssetSymbol } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const coingeckoCoinToAssetMap: Record<string, AssetSymbol> = {\n 'binance-usd': 'busd',\n 'bitcoin': 'btc',\n 'bnb': 'bnb',\n 'cardano': 'ada',\n 'dogecoin': 'doge',\n 'ethereum': 'eth',\n 'polkadot': 'dot',\n 'solana': 'sol',\n 'tether': 'usdt',\n 'usd-coin': 'usdc',\n 'wrapped-bitcoin': 'wbtc',\n 'xrp': 'xrp',\n 'xyo-network': 'xyo',\n}\n","import { CryptoAsset } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const defaultCoins: CryptoAsset[] = [\n { name: 'bitcoin' },\n { name: 'binance-usd' },\n { name: 'bnb' },\n { name: 'cardano' },\n { name: 'dogecoin' },\n { name: 'ethereum' },\n { name: 'polkadot' },\n { name: 'solana' },\n { name: 'tether' },\n { name: 'usd-coin' },\n { name: 'wrapped-bitcoin' },\n { name: 'xrp' },\n { name: 'xyo-network' },\n]\n\nexport const defaultCurrencies: CryptoAsset[] = [{ symbol: 'usd' }, { symbol: 'eur' }, { symbol: 'btc' }, { symbol: 'eth' }]\n","import { axios } from '@xylabs/axios'\nimport { AssetSymbol, CryptoAsset, CryptoAssetPrices } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nimport { coingeckoCoinToAssetMap } from './coinGeckoCoinToAssetMap.ts'\n\ntype CoinGeckoSimplePrice = Partial<Record<AssetSymbol, number>>\ntype CoinGeckoSimplePrices = Record<string, CoinGeckoSimplePrice>\n\nexport const pricesFromCoingecko = async (coins: CryptoAsset[], currencies: CryptoAsset[]) => {\n const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(',')}&vs_currencies=${currencies\n .map(({ symbol }) => symbol)\n .join(',')}`\n const coinGeckoSimplePrices = (await axios.get<CoinGeckoSimplePrices>(url)).data\n const assets: CryptoAssetPrices = {}\n for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {\n assets[coingeckoCoinToAssetMap[key]] = value\n }\n return assets\n}\n","import { CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CoingeckoCryptoMarketWitness } from './Witness.ts'\n\nexport const CoingeckoCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness>(\n { required: { [CoingeckoCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CoingeckoCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\n\nimport { CoingeckoCryptoMarketWitnessConfig } from './Config.ts'\nimport { pricesFromCoingecko } from './lib/index.ts'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema.ts'\n\nexport type CoingeckoCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<CoingeckoCryptoMarketWitnessConfig>>\n\nexport class CoingeckoCryptoMarketWitness<\n TParams extends CoingeckoCryptoMarketWitnessParams = CoingeckoCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CoingeckoCryptoMarketWitnessConfigSchema\n\n protected override async observeHandler(): Promise<Payload[]> {\n const assets: CoingeckoCryptoMarketPayload['assets'] = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? [])\n const payload: CoingeckoCryptoMarketPayload = {\n assets,\n schema: CoingeckoCryptoMarketSchema,\n timestamp: Date.now(),\n }\n\n return [payload]\n }\n}\n","export type CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\nexport const CoingeckoCryptoMarketWitnessConfigSchema: CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/lib/coinGeckoCoinToAssetMap.ts","../../src/lib/defaults.ts","../../src/lib/pricesFromCoingecko.ts","../../src/Plugin.ts","../../src/Witness.ts","../../src/Schema.ts"],"sourcesContent":["import { AssetSymbol } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const coingeckoCoinToAssetMap: Record<string, AssetSymbol> = {\n 'binance-usd': 'busd',\n 'bitcoin': 'btc',\n 'bnb': 'bnb',\n 'cardano': 'ada',\n 'dogecoin': 'doge',\n 'ethereum': 'eth',\n 'polkadot': 'dot',\n 'solana': 'sol',\n 'tether': 'usdt',\n 'usd-coin': 'usdc',\n 'wrapped-bitcoin': 'wbtc',\n 'xrp': 'xrp',\n 'xyo-network': 'xyo',\n}\n","import { CryptoAsset } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const defaultCoins: CryptoAsset[] = [\n { name: 'bitcoin' },\n { name: 'binance-usd' },\n { name: 'bnb' },\n { name: 'cardano' },\n { name: 'dogecoin' },\n { name: 'ethereum' },\n { name: 'polkadot' },\n { name: 'solana' },\n { name: 'tether' },\n { name: 'usd-coin' },\n { name: 'wrapped-bitcoin' },\n { name: 'xrp' },\n { name: 'xyo-network' },\n]\n\nexport const defaultCurrencies: CryptoAsset[] = [{ symbol: 'usd' }, { symbol: 'eur' }, { symbol: 'btc' }, { symbol: 'eth' }]\n","import { axios } from '@xylabs/axios'\nimport { AssetSymbol, CryptoAsset, CryptoAssetPrices } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nimport { coingeckoCoinToAssetMap } from './coinGeckoCoinToAssetMap.ts'\n\ntype CoinGeckoSimplePrice = Partial<Record<AssetSymbol, number>>\ntype CoinGeckoSimplePrices = Record<string, CoinGeckoSimplePrice>\n\nexport const pricesFromCoingecko = async (coins: CryptoAsset[], currencies: CryptoAsset[]) => {\n const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(',')}&vs_currencies=${currencies\n .map(({ symbol }) => symbol)\n .join(',')}`\n const coinGeckoSimplePrices = (await axios.get<CoinGeckoSimplePrices>(url)).data\n const assets: CryptoAssetPrices = {}\n for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {\n assets[coingeckoCoinToAssetMap[key]] = value\n }\n return assets\n}\n","import { CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CoingeckoCryptoMarketWitness } from './Witness.ts'\n\nexport const CoingeckoCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness>(\n { required: { [CoingeckoCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CoingeckoCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\n\nimport { CoingeckoCryptoMarketWitnessConfig } from './Config.ts'\nimport { pricesFromCoingecko } from './lib/index.ts'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema.ts'\n\nexport type CoingeckoCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<CoingeckoCryptoMarketWitnessConfig>>\n\nexport class CoingeckoCryptoMarketWitness<\n TParams extends CoingeckoCryptoMarketWitnessParams = CoingeckoCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CoingeckoCryptoMarketWitnessConfigSchema\n\n protected override async observeHandler(): Promise<Payload[]> {\n const assets: CoingeckoCryptoMarketPayload['assets'] = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? [])\n const payload: CoingeckoCryptoMarketPayload = {\n assets,\n schema: CoingeckoCryptoMarketSchema,\n timestamp: Date.now(),\n }\n\n return [payload]\n }\n}\n","export type CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\nexport const CoingeckoCryptoMarketWitnessConfigSchema: CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\n"],"mappings":";AAEO,IAAM,0BAAuD;AAAA,EAClE,eAAe;AAAA,EACf,WAAW;AAAA,EACX,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,eAAe;AACjB;;;ACdO,IAAM,eAA8B;AAAA,EACzC,EAAE,MAAM,UAAU;AAAA,EAClB,EAAE,MAAM,cAAc;AAAA,EACtB,EAAE,MAAM,MAAM;AAAA,EACd,EAAE,MAAM,UAAU;AAAA,EAClB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,SAAS;AAAA,EACjB,EAAE,MAAM,SAAS;AAAA,EACjB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,kBAAkB;AAAA,EAC1B,EAAE,MAAM,MAAM;AAAA,EACd,EAAE,MAAM,cAAc;AACxB;AAEO,IAAM,oBAAmC,CAAC,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,CAAC;;;AClB3H,SAAS,aAAa;AAQf,IAAM,sBAAsB,OAAO,OAAsB,eAA8B;AAC5F,QAAM,MAAM,qDAAqD,MAAM,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,kBAAkB,WACvH,IAAI,CAAC,EAAE,OAAO,MAAM,MAAM,EAC1B,KAAK,GAAG,CAAC;AACZ,QAAM,yBAAyB,MAAM,MAAM,IAA2B,GAAG,GAAG;AAC5E,QAAM,SAA4B,CAAC;AACnC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,qBAAqB,GAAG;AAChE,WAAO,wBAAwB,GAAG,CAAC,IAAI;AAAA,EACzC;AACA,SAAO;AACT;;;AClBA,SAAS,+BAAAA,oCAAmC;AAC5C,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;;;ACF9C,SAAS,uBAAuB;AAChC,SAAuC,mCAAmC;;;ACAnE,IAAM,2CAAqF;;;ADW3F,IAAM,+BAAN,cAEG,gBAAyB;AAAA,EACjC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,wCAAwC;AAAA,EACpH,OAAyB,sBAA8B;AAAA,EAEvD,MAAyB,iBAAqC;AAC5D,UAAM,SAAiD,MAAM,oBAAoB,KAAK,QAAQ,SAAS,CAAC,GAAG,KAAK,QAAQ,cAAc,CAAC,CAAC;AACxI,UAAM,UAAwC;AAAA,MAC5C;AAAA,MACA,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI;AAAA,IACtB;AAEA,WAAO,CAAC,OAAO;AAAA,EACjB;AACF;;;ADtBO,IAAM,8BAA8B,MACzC;AAAA,EACE,EAAE,UAAU,EAAE,CAACC,4BAA2B,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EAC3E;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,6BAA6B,OAAO,MAAM;AAC/D,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["CoingeckoCryptoMarketSchema","CoingeckoCryptoMarketSchema"]}
|
package/dist/node/Plugin.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CoingeckoCryptoMarketWitness } from './Witness.ts';
|
|
2
|
-
export declare const CoingeckoCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness<import("
|
|
3
|
-
account?: import("
|
|
2
|
+
export declare const CoingeckoCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
3
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
|
5
|
-
additionalSigners?: import("
|
|
5
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
6
6
|
allowNameResolution?: boolean;
|
|
7
7
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
8
8
|
schema: "network.xyo.crypto.market.coingecko.witness.config";
|
package/dist/node/Plugin.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CoingeckoCryptoMarketWitness } from './Witness.ts';
|
|
2
|
-
export declare const CoingeckoCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness<import("
|
|
3
|
-
account?: import("
|
|
2
|
+
export declare const CoingeckoCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
3
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
|
5
|
-
additionalSigners?: import("
|
|
5
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
6
6
|
allowNameResolution?: boolean;
|
|
7
7
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
8
8
|
schema: "network.xyo.crypto.market.coingecko.witness.config";
|
package/dist/node/Plugin.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CoingeckoCryptoMarketWitness } from './Witness.ts';
|
|
2
|
-
export declare const CoingeckoCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness<import("
|
|
3
|
-
account?: import("
|
|
2
|
+
export declare const CoingeckoCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness<import(".store/@xylabs-object-npm-3.6.12-443b813787/package").BaseParamsFields & {
|
|
3
|
+
account?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
|
5
|
-
additionalSigners?: import("
|
|
5
|
+
additionalSigners?: import(".store/@xyo-network-account-model-virtual-c593258ccf/package").AccountInstance[];
|
|
6
6
|
allowNameResolution?: boolean;
|
|
7
7
|
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
|
|
8
8
|
schema: "network.xyo.crypto.market.coingecko.witness.config";
|
package/dist/node/index.cjs
CHANGED
|
@@ -2,11 +2,7 @@
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __reflectGet = Reflect.get;
|
|
8
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
6
|
var __export = (target, all) => {
|
|
11
7
|
for (var name in all)
|
|
12
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -20,8 +16,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
20
16
|
return to;
|
|
21
17
|
};
|
|
22
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
24
|
-
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
25
19
|
|
|
26
20
|
// src/index.ts
|
|
27
21
|
var src_exports = {};
|
|
@@ -56,64 +50,25 @@ var coingeckoCoinToAssetMap = {
|
|
|
56
50
|
|
|
57
51
|
// src/lib/defaults.ts
|
|
58
52
|
var defaultCoins = [
|
|
59
|
-
{
|
|
60
|
-
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
name: "dogecoin"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
name: "ethereum"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
name: "polkadot"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: "solana"
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
name: "tether"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
name: "usd-coin"
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
name: "wrapped-bitcoin"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
name: "xrp"
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
name: "xyo-network"
|
|
97
|
-
}
|
|
98
|
-
];
|
|
99
|
-
var defaultCurrencies = [
|
|
100
|
-
{
|
|
101
|
-
symbol: "usd"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
symbol: "eur"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
symbol: "btc"
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
symbol: "eth"
|
|
111
|
-
}
|
|
53
|
+
{ name: "bitcoin" },
|
|
54
|
+
{ name: "binance-usd" },
|
|
55
|
+
{ name: "bnb" },
|
|
56
|
+
{ name: "cardano" },
|
|
57
|
+
{ name: "dogecoin" },
|
|
58
|
+
{ name: "ethereum" },
|
|
59
|
+
{ name: "polkadot" },
|
|
60
|
+
{ name: "solana" },
|
|
61
|
+
{ name: "tether" },
|
|
62
|
+
{ name: "usd-coin" },
|
|
63
|
+
{ name: "wrapped-bitcoin" },
|
|
64
|
+
{ name: "xrp" },
|
|
65
|
+
{ name: "xyo-network" }
|
|
112
66
|
];
|
|
67
|
+
var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
|
|
113
68
|
|
|
114
69
|
// src/lib/pricesFromCoingecko.ts
|
|
115
70
|
var import_axios = require("@xylabs/axios");
|
|
116
|
-
var pricesFromCoingecko =
|
|
71
|
+
var pricesFromCoingecko = async (coins, currencies) => {
|
|
117
72
|
const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
|
|
118
73
|
const coinGeckoSimplePrices = (await import_axios.axios.get(url)).data;
|
|
119
74
|
const assets = {};
|
|
@@ -121,7 +76,7 @@ var pricesFromCoingecko = /* @__PURE__ */ __name(async (coins, currencies) => {
|
|
|
121
76
|
assets[coingeckoCoinToAssetMap[key]] = value;
|
|
122
77
|
}
|
|
123
78
|
return assets;
|
|
124
|
-
}
|
|
79
|
+
};
|
|
125
80
|
|
|
126
81
|
// src/Plugin.ts
|
|
127
82
|
var import_coingecko_crypto_market_payload_plugin2 = require("@xyo-network/coingecko-crypto-market-payload-plugin");
|
|
@@ -136,7 +91,9 @@ var import_coingecko_crypto_market_payload_plugin = require("@xyo-network/coinge
|
|
|
136
91
|
var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coingecko.witness.config";
|
|
137
92
|
|
|
138
93
|
// src/Witness.ts
|
|
139
|
-
var
|
|
94
|
+
var CoingeckoCryptoMarketWitness = class extends import_abstract_witness.AbstractWitness {
|
|
95
|
+
static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
|
|
96
|
+
static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
|
|
140
97
|
async observeHandler() {
|
|
141
98
|
var _a, _b;
|
|
142
99
|
const assets = await pricesFromCoingecko(((_a = this.config) == null ? void 0 : _a.coins) ?? [], ((_b = this.config) == null ? void 0 : _b.currencies) ?? []);
|
|
@@ -145,31 +102,20 @@ var _CoingeckoCryptoMarketWitness = class _CoingeckoCryptoMarketWitness extends
|
|
|
145
102
|
schema: import_coingecko_crypto_market_payload_plugin.CoingeckoCryptoMarketSchema,
|
|
146
103
|
timestamp: Date.now()
|
|
147
104
|
};
|
|
148
|
-
return [
|
|
149
|
-
payload
|
|
150
|
-
];
|
|
105
|
+
return [payload];
|
|
151
106
|
}
|
|
152
107
|
};
|
|
153
|
-
__name(_CoingeckoCryptoMarketWitness, "CoingeckoCryptoMarketWitness");
|
|
154
|
-
__publicField(_CoingeckoCryptoMarketWitness, "configSchemas", [
|
|
155
|
-
...__superGet(_CoingeckoCryptoMarketWitness, _CoingeckoCryptoMarketWitness, "configSchemas"),
|
|
156
|
-
CoingeckoCryptoMarketWitnessConfigSchema
|
|
157
|
-
]);
|
|
158
|
-
__publicField(_CoingeckoCryptoMarketWitness, "defaultConfigSchema", CoingeckoCryptoMarketWitnessConfigSchema);
|
|
159
|
-
var CoingeckoCryptoMarketWitness = _CoingeckoCryptoMarketWitness;
|
|
160
108
|
|
|
161
109
|
// src/Plugin.ts
|
|
162
|
-
var CoingeckoCryptoMarketPlugin =
|
|
163
|
-
required: {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}, "witness")
|
|
172
|
-
}), "CoingeckoCryptoMarketPlugin");
|
|
110
|
+
var CoingeckoCryptoMarketPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
|
|
111
|
+
{ required: { [import_coingecko_crypto_market_payload_plugin2.CoingeckoCryptoMarketSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
|
|
112
|
+
{
|
|
113
|
+
witness: async (params) => {
|
|
114
|
+
const result = await CoingeckoCryptoMarketWitness.create(params);
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
);
|
|
173
119
|
// Annotate the CommonJS export names for ESM import in node:
|
|
174
120
|
0 && (module.exports = {
|
|
175
121
|
CoingeckoCryptoMarketPlugin,
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/lib/coinGeckoCoinToAssetMap.ts","../../src/lib/defaults.ts","../../src/lib/pricesFromCoingecko.ts","../../src/Plugin.ts","../../src/Witness.ts","../../src/Schema.ts"],"sourcesContent":["export * from './Config.ts'\nexport * from './lib/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { AssetSymbol } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const coingeckoCoinToAssetMap: Record<string, AssetSymbol> = {\n 'binance-usd': 'busd',\n 'bitcoin': 'btc',\n 'bnb': 'bnb',\n 'cardano': 'ada',\n 'dogecoin': 'doge',\n 'ethereum': 'eth',\n 'polkadot': 'dot',\n 'solana': 'sol',\n 'tether': 'usdt',\n 'usd-coin': 'usdc',\n 'wrapped-bitcoin': 'wbtc',\n 'xrp': 'xrp',\n 'xyo-network': 'xyo',\n}\n","import { CryptoAsset } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const defaultCoins: CryptoAsset[] = [\n { name: 'bitcoin' },\n { name: 'binance-usd' },\n { name: 'bnb' },\n { name: 'cardano' },\n { name: 'dogecoin' },\n { name: 'ethereum' },\n { name: 'polkadot' },\n { name: 'solana' },\n { name: 'tether' },\n { name: 'usd-coin' },\n { name: 'wrapped-bitcoin' },\n { name: 'xrp' },\n { name: 'xyo-network' },\n]\n\nexport const defaultCurrencies: CryptoAsset[] = [{ symbol: 'usd' }, { symbol: 'eur' }, { symbol: 'btc' }, { symbol: 'eth' }]\n","import { axios } from '@xylabs/axios'\nimport { AssetSymbol, CryptoAsset, CryptoAssetPrices } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nimport { coingeckoCoinToAssetMap } from './coinGeckoCoinToAssetMap.ts'\n\ntype CoinGeckoSimplePrice = Partial<Record<AssetSymbol, number>>\ntype CoinGeckoSimplePrices = Record<string, CoinGeckoSimplePrice>\n\nexport const pricesFromCoingecko = async (coins: CryptoAsset[], currencies: CryptoAsset[]) => {\n const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(',')}&vs_currencies=${currencies\n .map(({ symbol }) => symbol)\n .join(',')}`\n const coinGeckoSimplePrices = (await axios.get<CoinGeckoSimplePrices>(url)).data\n const assets: CryptoAssetPrices = {}\n for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {\n assets[coingeckoCoinToAssetMap[key]] = value\n }\n return assets\n}\n","import { CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CoingeckoCryptoMarketWitness } from './Witness.ts'\n\nexport const CoingeckoCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness>(\n { required: { [CoingeckoCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CoingeckoCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\n\nimport { CoingeckoCryptoMarketWitnessConfig } from './Config.ts'\nimport { pricesFromCoingecko } from './lib/index.ts'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema.ts'\n\nexport type CoingeckoCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<CoingeckoCryptoMarketWitnessConfig>>\n\nexport class CoingeckoCryptoMarketWitness<\n TParams extends CoingeckoCryptoMarketWitnessParams = CoingeckoCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CoingeckoCryptoMarketWitnessConfigSchema\n\n protected override async observeHandler(): Promise<Payload[]> {\n const assets: CoingeckoCryptoMarketPayload['assets'] = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? [])\n const payload: CoingeckoCryptoMarketPayload = {\n assets,\n schema: CoingeckoCryptoMarketSchema,\n timestamp: Date.now(),\n }\n\n return [payload]\n }\n}\n","export type CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\nexport const CoingeckoCryptoMarketWitnessConfigSchema: CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/lib/coinGeckoCoinToAssetMap.ts","../../src/lib/defaults.ts","../../src/lib/pricesFromCoingecko.ts","../../src/Plugin.ts","../../src/Witness.ts","../../src/Schema.ts"],"sourcesContent":["export * from './Config.ts'\nexport * from './lib/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin.ts'\nexport * from './Schema.ts'\nexport * from './Witness.ts'\n","import { AssetSymbol } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const coingeckoCoinToAssetMap: Record<string, AssetSymbol> = {\n 'binance-usd': 'busd',\n 'bitcoin': 'btc',\n 'bnb': 'bnb',\n 'cardano': 'ada',\n 'dogecoin': 'doge',\n 'ethereum': 'eth',\n 'polkadot': 'dot',\n 'solana': 'sol',\n 'tether': 'usdt',\n 'usd-coin': 'usdc',\n 'wrapped-bitcoin': 'wbtc',\n 'xrp': 'xrp',\n 'xyo-network': 'xyo',\n}\n","import { CryptoAsset } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nexport const defaultCoins: CryptoAsset[] = [\n { name: 'bitcoin' },\n { name: 'binance-usd' },\n { name: 'bnb' },\n { name: 'cardano' },\n { name: 'dogecoin' },\n { name: 'ethereum' },\n { name: 'polkadot' },\n { name: 'solana' },\n { name: 'tether' },\n { name: 'usd-coin' },\n { name: 'wrapped-bitcoin' },\n { name: 'xrp' },\n { name: 'xyo-network' },\n]\n\nexport const defaultCurrencies: CryptoAsset[] = [{ symbol: 'usd' }, { symbol: 'eur' }, { symbol: 'btc' }, { symbol: 'eth' }]\n","import { axios } from '@xylabs/axios'\nimport { AssetSymbol, CryptoAsset, CryptoAssetPrices } from '@xyo-network/coingecko-crypto-market-payload-plugin'\n\nimport { coingeckoCoinToAssetMap } from './coinGeckoCoinToAssetMap.ts'\n\ntype CoinGeckoSimplePrice = Partial<Record<AssetSymbol, number>>\ntype CoinGeckoSimplePrices = Record<string, CoinGeckoSimplePrice>\n\nexport const pricesFromCoingecko = async (coins: CryptoAsset[], currencies: CryptoAsset[]) => {\n const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(',')}&vs_currencies=${currencies\n .map(({ symbol }) => symbol)\n .join(',')}`\n const coinGeckoSimplePrices = (await axios.get<CoinGeckoSimplePrices>(url)).data\n const assets: CryptoAssetPrices = {}\n for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {\n assets[coingeckoCoinToAssetMap[key]] = value\n }\n return assets\n}\n","import { CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { CoingeckoCryptoMarketWitness } from './Witness.ts'\n\nexport const CoingeckoCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<CoingeckoCryptoMarketWitness>(\n { required: { [CoingeckoCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CoingeckoCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { CoingeckoCryptoMarketPayload, CoingeckoCryptoMarketSchema } from '@xyo-network/coingecko-crypto-market-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\n\nimport { CoingeckoCryptoMarketWitnessConfig } from './Config.ts'\nimport { pricesFromCoingecko } from './lib/index.ts'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema.ts'\n\nexport type CoingeckoCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<CoingeckoCryptoMarketWitnessConfig>>\n\nexport class CoingeckoCryptoMarketWitness<\n TParams extends CoingeckoCryptoMarketWitnessParams = CoingeckoCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CoingeckoCryptoMarketWitnessConfigSchema\n\n protected override async observeHandler(): Promise<Payload[]> {\n const assets: CoingeckoCryptoMarketPayload['assets'] = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? [])\n const payload: CoingeckoCryptoMarketPayload = {\n assets,\n schema: CoingeckoCryptoMarketSchema,\n timestamp: Date.now(),\n }\n\n return [payload]\n }\n}\n","export type CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\nexport const CoingeckoCryptoMarketWitnessConfigSchema: CoingeckoCryptoMarketWitnessConfigSchema = 'network.xyo.crypto.market.coingecko.witness.config'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEO,IAAM,0BAAuD;AAAA,EAClE,eAAe;AAAA,EACf,WAAW;AAAA,EACX,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,eAAe;AACjB;;;ACdO,IAAM,eAA8B;AAAA,EACzC,EAAE,MAAM,UAAU;AAAA,EAClB,EAAE,MAAM,cAAc;AAAA,EACtB,EAAE,MAAM,MAAM;AAAA,EACd,EAAE,MAAM,UAAU;AAAA,EAClB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,SAAS;AAAA,EACjB,EAAE,MAAM,SAAS;AAAA,EACjB,EAAE,MAAM,WAAW;AAAA,EACnB,EAAE,MAAM,kBAAkB;AAAA,EAC1B,EAAE,MAAM,MAAM;AAAA,EACd,EAAE,MAAM,cAAc;AACxB;AAEO,IAAM,oBAAmC,CAAC,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,MAAM,CAAC;;;AClB3H,mBAAsB;AAQf,IAAM,sBAAsB,OAAO,OAAsB,eAA8B;AAC5F,QAAM,MAAM,qDAAqD,MAAM,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,GAAG,CAAC,kBAAkB,WACvH,IAAI,CAAC,EAAE,OAAO,MAAM,MAAM,EAC1B,KAAK,GAAG,CAAC;AACZ,QAAM,yBAAyB,MAAM,mBAAM,IAA2B,GAAG,GAAG;AAC5E,QAAM,SAA4B,CAAC;AACnC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,qBAAqB,GAAG;AAChE,WAAO,wBAAwB,GAAG,CAAC,IAAI;AAAA,EACzC;AACA,SAAO;AACT;;;AClBA,IAAAA,iDAA4C;AAC5C,2BAAiC;AACjC,+BAA8C;;;ACF9C,8BAAgC;AAChC,oDAA0E;;;ACAnE,IAAM,2CAAqF;;;ADW3F,IAAM,+BAAN,cAEG,wCAAyB;AAAA,EACjC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,wCAAwC;AAAA,EACpH,OAAyB,sBAA8B;AAAA,EAEvD,MAAyB,iBAAqC;AAlBhE;AAmBI,UAAM,SAAiD,MAAM,sBAAoB,UAAK,WAAL,mBAAa,UAAS,CAAC,KAAG,UAAK,WAAL,mBAAa,eAAc,CAAC,CAAC;AACxI,UAAM,UAAwC;AAAA,MAC5C;AAAA,MACA,QAAQ;AAAA,MACR,WAAW,KAAK,IAAI;AAAA,IACtB;AAEA,WAAO,CAAC,OAAO;AAAA,EACjB;AACF;;;ADtBO,IAAM,8BAA8B,UACzC;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,0EAA2B,GAAG,EAAE,GAAG,QAAQ,sCAAiB;AAAA,EAC3E;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,6BAA6B,OAAO,MAAM;AAC/D,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["import_coingecko_crypto_market_payload_plugin"]}
|
package/dist/node/index.mjs
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
-
var __reflectGet = Reflect.get;
|
|
4
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
|
-
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
8
|
-
|
|
9
1
|
// src/lib/coinGeckoCoinToAssetMap.ts
|
|
10
2
|
var coingeckoCoinToAssetMap = {
|
|
11
3
|
"binance-usd": "busd",
|
|
@@ -25,64 +17,25 @@ var coingeckoCoinToAssetMap = {
|
|
|
25
17
|
|
|
26
18
|
// src/lib/defaults.ts
|
|
27
19
|
var defaultCoins = [
|
|
28
|
-
{
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "dogecoin"
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: "ethereum"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
name: "polkadot"
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
name: "solana"
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: "tether"
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
name: "usd-coin"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "wrapped-bitcoin"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
name: "xrp"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: "xyo-network"
|
|
66
|
-
}
|
|
67
|
-
];
|
|
68
|
-
var defaultCurrencies = [
|
|
69
|
-
{
|
|
70
|
-
symbol: "usd"
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
symbol: "eur"
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
symbol: "btc"
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
symbol: "eth"
|
|
80
|
-
}
|
|
20
|
+
{ name: "bitcoin" },
|
|
21
|
+
{ name: "binance-usd" },
|
|
22
|
+
{ name: "bnb" },
|
|
23
|
+
{ name: "cardano" },
|
|
24
|
+
{ name: "dogecoin" },
|
|
25
|
+
{ name: "ethereum" },
|
|
26
|
+
{ name: "polkadot" },
|
|
27
|
+
{ name: "solana" },
|
|
28
|
+
{ name: "tether" },
|
|
29
|
+
{ name: "usd-coin" },
|
|
30
|
+
{ name: "wrapped-bitcoin" },
|
|
31
|
+
{ name: "xrp" },
|
|
32
|
+
{ name: "xyo-network" }
|
|
81
33
|
];
|
|
34
|
+
var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
|
|
82
35
|
|
|
83
36
|
// src/lib/pricesFromCoingecko.ts
|
|
84
37
|
import { axios } from "@xylabs/axios";
|
|
85
|
-
var pricesFromCoingecko =
|
|
38
|
+
var pricesFromCoingecko = async (coins, currencies) => {
|
|
86
39
|
const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
|
|
87
40
|
const coinGeckoSimplePrices = (await axios.get(url)).data;
|
|
88
41
|
const assets = {};
|
|
@@ -90,7 +43,7 @@ var pricesFromCoingecko = /* @__PURE__ */ __name(async (coins, currencies) => {
|
|
|
90
43
|
assets[coingeckoCoinToAssetMap[key]] = value;
|
|
91
44
|
}
|
|
92
45
|
return assets;
|
|
93
|
-
}
|
|
46
|
+
};
|
|
94
47
|
|
|
95
48
|
// src/Plugin.ts
|
|
96
49
|
import { CoingeckoCryptoMarketSchema as CoingeckoCryptoMarketSchema2 } from "@xyo-network/coingecko-crypto-market-payload-plugin";
|
|
@@ -105,7 +58,9 @@ import { CoingeckoCryptoMarketSchema } from "@xyo-network/coingecko-crypto-marke
|
|
|
105
58
|
var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coingecko.witness.config";
|
|
106
59
|
|
|
107
60
|
// src/Witness.ts
|
|
108
|
-
var
|
|
61
|
+
var CoingeckoCryptoMarketWitness = class extends AbstractWitness {
|
|
62
|
+
static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
|
|
63
|
+
static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
|
|
109
64
|
async observeHandler() {
|
|
110
65
|
var _a, _b;
|
|
111
66
|
const assets = await pricesFromCoingecko(((_a = this.config) == null ? void 0 : _a.coins) ?? [], ((_b = this.config) == null ? void 0 : _b.currencies) ?? []);
|
|
@@ -114,31 +69,20 @@ var _CoingeckoCryptoMarketWitness = class _CoingeckoCryptoMarketWitness extends
|
|
|
114
69
|
schema: CoingeckoCryptoMarketSchema,
|
|
115
70
|
timestamp: Date.now()
|
|
116
71
|
};
|
|
117
|
-
return [
|
|
118
|
-
payload
|
|
119
|
-
];
|
|
72
|
+
return [payload];
|
|
120
73
|
}
|
|
121
74
|
};
|
|
122
|
-
__name(_CoingeckoCryptoMarketWitness, "CoingeckoCryptoMarketWitness");
|
|
123
|
-
__publicField(_CoingeckoCryptoMarketWitness, "configSchemas", [
|
|
124
|
-
...__superGet(_CoingeckoCryptoMarketWitness, _CoingeckoCryptoMarketWitness, "configSchemas"),
|
|
125
|
-
CoingeckoCryptoMarketWitnessConfigSchema
|
|
126
|
-
]);
|
|
127
|
-
__publicField(_CoingeckoCryptoMarketWitness, "defaultConfigSchema", CoingeckoCryptoMarketWitnessConfigSchema);
|
|
128
|
-
var CoingeckoCryptoMarketWitness = _CoingeckoCryptoMarketWitness;
|
|
129
75
|
|
|
130
76
|
// src/Plugin.ts
|
|
131
|
-
var CoingeckoCryptoMarketPlugin =
|
|
132
|
-
required: {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}, "witness")
|
|
141
|
-
}), "CoingeckoCryptoMarketPlugin");
|
|
77
|
+
var CoingeckoCryptoMarketPlugin = () => createPayloadSetWitnessPlugin(
|
|
78
|
+
{ required: { [CoingeckoCryptoMarketSchema2]: 1 }, schema: PayloadSetSchema },
|
|
79
|
+
{
|
|
80
|
+
witness: async (params) => {
|
|
81
|
+
const result = await CoingeckoCryptoMarketWitness.create(params);
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
);
|
|
142
86
|
export {
|
|
143
87
|
CoingeckoCryptoMarketPlugin,
|
|
144
88
|
CoingeckoCryptoMarketWitness,
|