@xyo-network/coingecko-crypto-market-plugin 2.97.0 → 2.97.1

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.
@@ -1,2 +1,118 @@
1
- "use strict";var c=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var S=(e,o)=>{for(var r in o)c(e,r,{get:o[r],enumerable:!0})},x=(e,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of P(o))!h.call(e,t)&&t!==r&&c(e,t,{get:()=>o[t],enumerable:!(n=b(o,t))||n.enumerable});return e};var M=e=>x(c({},"__esModule",{value:!0}),e);var W={};S(W,{CoingeckoCryptoMarketPlugin:()=>C,CoingeckoCryptoMarketWitness:()=>i,CoingeckoCryptoMarketWitnessConfigSchema:()=>a,coingeckoCoinToAssetMap:()=>m,default:()=>C,defaultCoins:()=>A,defaultCurrencies:()=>w,pricesFromCoingecko:()=>p});module.exports=M(W);var m={"binance-usd":"busd",bitcoin:"btc",bnb:"bnb",cardano:"ada",dogecoin:"doge",ethereum:"eth",polkadot:"dot",solana:"sol",tether:"usdt","usd-coin":"usdc","wrapped-bitcoin":"wbtc",xrp:"xrp","xyo-network":"xyo"};var A=[{name:"bitcoin"},{name:"binance-usd"},{name:"bnb"},{name:"cardano"},{name:"dogecoin"},{name:"ethereum"},{name:"polkadot"},{name:"solana"},{name:"tether"},{name:"usd-coin"},{name:"wrapped-bitcoin"},{name:"xrp"},{name:"xyo-network"}],w=[{symbol:"usd"},{symbol:"eur"},{symbol:"btc"},{symbol:"eth"}];var y=require("@xylabs/axios");var p=async(e,o)=>{let r=`https://api.coingecko.com/api/v3/simple/price?ids=${e.map(({name:s})=>s).join(",")}&vs_currencies=${o.map(({symbol:s})=>s).join(",")}`,n=(await y.axios.get(r)).data,t={};for(let[s,u]of Object.entries(n))t[m[s]]=u;return t};var d=require("@xyo-network/coingecko-crypto-market-payload-plugin"),l=require("@xyo-network/payload-model"),f=require("@xyo-network/payloadset-plugin");var k=require("@xyo-network/abstract-witness"),g=require("@xyo-network/coingecko-crypto-market-payload-plugin");var a="network.xyo.crypto.market.coingecko.witness.config";var i=class extends k.AbstractWitness{static configSchemas=[...super.configSchemas,a];static defaultConfigSchema=a;async observeHandler(){return[{assets:await p(this.config?.coins??[],this.config?.currencies??[]),schema:g.CoingeckoCryptoMarketSchema,timestamp:Date.now()}]}};var C=()=>(0,f.createPayloadSetWitnessPlugin)({required:{[d.CoingeckoCryptoMarketSchema]:1},schema:l.PayloadSetSchema},{witness:async e=>await i.create(e)});
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/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ CoingeckoCryptoMarketPlugin: () => CoingeckoCryptoMarketPlugin,
24
+ CoingeckoCryptoMarketWitness: () => CoingeckoCryptoMarketWitness,
25
+ CoingeckoCryptoMarketWitnessConfigSchema: () => CoingeckoCryptoMarketWitnessConfigSchema,
26
+ coingeckoCoinToAssetMap: () => coingeckoCoinToAssetMap,
27
+ default: () => CoingeckoCryptoMarketPlugin,
28
+ defaultCoins: () => defaultCoins,
29
+ defaultCurrencies: () => defaultCurrencies,
30
+ pricesFromCoingecko: () => pricesFromCoingecko
31
+ });
32
+ module.exports = __toCommonJS(src_exports);
33
+
34
+ // src/lib/coinGeckoCoinToAssetMap.ts
35
+ var coingeckoCoinToAssetMap = {
36
+ "binance-usd": "busd",
37
+ bitcoin: "btc",
38
+ bnb: "bnb",
39
+ cardano: "ada",
40
+ dogecoin: "doge",
41
+ ethereum: "eth",
42
+ polkadot: "dot",
43
+ solana: "sol",
44
+ tether: "usdt",
45
+ "usd-coin": "usdc",
46
+ "wrapped-bitcoin": "wbtc",
47
+ xrp: "xrp",
48
+ "xyo-network": "xyo"
49
+ };
50
+
51
+ // src/lib/defaults.ts
52
+ var defaultCoins = [
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" }
66
+ ];
67
+ var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
68
+
69
+ // src/lib/pricesFromCoingecko.ts
70
+ var import_axios = require("@xylabs/axios");
71
+ var pricesFromCoingecko = async (coins, currencies) => {
72
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
73
+ const coinGeckoSimplePrices = (await import_axios.axios.get(url)).data;
74
+ const assets = {};
75
+ for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {
76
+ assets[coingeckoCoinToAssetMap[key]] = value;
77
+ }
78
+ return assets;
79
+ };
80
+
81
+ // src/Plugin.ts
82
+ var import_coingecko_crypto_market_payload_plugin2 = require("@xyo-network/coingecko-crypto-market-payload-plugin");
83
+ var import_payload_model = require("@xyo-network/payload-model");
84
+ var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
85
+
86
+ // src/Witness.ts
87
+ var import_abstract_witness = require("@xyo-network/abstract-witness");
88
+ var import_coingecko_crypto_market_payload_plugin = require("@xyo-network/coingecko-crypto-market-payload-plugin");
89
+
90
+ // src/Schema.ts
91
+ var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coingecko.witness.config";
92
+
93
+ // src/Witness.ts
94
+ var CoingeckoCryptoMarketWitness = class extends import_abstract_witness.AbstractWitness {
95
+ static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
96
+ static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
97
+ async observeHandler() {
98
+ const assets = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? []);
99
+ const payload = {
100
+ assets,
101
+ schema: import_coingecko_crypto_market_payload_plugin.CoingeckoCryptoMarketSchema,
102
+ timestamp: Date.now()
103
+ };
104
+ return [payload];
105
+ }
106
+ };
107
+
108
+ // src/Plugin.ts
109
+ var CoingeckoCryptoMarketPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
110
+ { required: { [import_coingecko_crypto_market_payload_plugin2.CoingeckoCryptoMarketSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
111
+ {
112
+ witness: async (params) => {
113
+ const result = await CoingeckoCryptoMarketWitness.create(params);
114
+ return result;
115
+ }
116
+ }
117
+ );
2
118
  //# sourceMappingURL=index.cjs.map
@@ -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'\nexport * from './lib'\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin'\nexport * from './Schema'\nexport * from './Witness'\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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,EAAA,iCAAAC,EAAA,6CAAAC,EAAA,4BAAAC,EAAA,YAAAH,EAAA,iBAAAI,EAAA,sBAAAC,EAAA,wBAAAC,IAAA,eAAAC,EAAAT,GCEO,IAAMU,EAAuD,CAClE,cAAe,OACf,QAAS,MACT,IAAK,MACL,QAAS,MACT,SAAU,OACV,SAAU,MACV,SAAU,MACV,OAAQ,MACR,OAAQ,OACR,WAAY,OACZ,kBAAmB,OACnB,IAAK,MACL,cAAe,KACjB,ECdO,IAAMC,EAA8B,CACzC,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,aAAc,EACtB,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,iBAAkB,EAC1B,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,aAAc,CACxB,EAEaC,EAAmC,CAAC,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,CAAC,EClB3H,IAAAC,EAAsB,yBAQf,IAAMC,EAAsB,MAAOC,EAAsBC,IAA8B,CAC5F,IAAMC,EAAM,qDAAqDF,EAAM,IAAI,CAAC,CAAE,KAAAG,CAAK,IAAMA,CAAI,EAAE,KAAK,GAAG,CAAC,kBAAkBF,EACvH,IAAI,CAAC,CAAE,OAAAG,CAAO,IAAMA,CAAM,EAC1B,KAAK,GAAG,CAAC,GACNC,GAAyB,MAAM,QAAM,IAA2BH,CAAG,GAAG,KACtEI,EAA4B,CAAC,EACnC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAqB,EAC7DC,EAAOG,EAAwBF,CAAG,CAAC,EAAIC,EAEzC,OAAOF,CACT,EClBA,IAAAI,EAA4C,+DAC5CC,EAAiC,sCACjCC,EAA8C,0CCF9C,IAAAC,EAAgC,yCAChCC,EAA0E,+DCAnE,IAAMC,EAAqF,qDDW3F,IAAMC,EAAN,cAEG,iBAAyB,CACjC,OAAyB,cAA0B,CAAC,GAAG,MAAM,cAAeC,CAAwC,EACpH,OAAyB,oBAA8BA,EAEvD,MAAyB,gBAAqC,CAQ5D,MAAO,CANuC,CAC5C,OAFqD,MAAMC,EAAoB,KAAK,QAAQ,OAAS,CAAC,EAAG,KAAK,QAAQ,YAAc,CAAC,CAAC,EAGtI,OAAQ,8BACR,UAAW,KAAK,IAAI,CACtB,CAEe,CACjB,CACF,EDtBO,IAAMC,EAA8B,OACzC,iCACE,CAAE,SAAU,CAAE,CAAC,6BAA2B,EAAG,CAAE,EAAG,OAAQ,kBAAiB,EAC3E,CACE,QAAS,MAAOC,GACC,MAAMC,EAA6B,OAAOD,CAAM,CAGnE,CACF","names":["src_exports","__export","CoingeckoCryptoMarketPlugin","CoingeckoCryptoMarketWitness","CoingeckoCryptoMarketWitnessConfigSchema","coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","pricesFromCoingecko","__toCommonJS","coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","import_axios","pricesFromCoingecko","coins","currencies","url","name","symbol","coinGeckoSimplePrices","assets","key","value","coingeckoCoinToAssetMap","import_coingecko_crypto_market_payload_plugin","import_payload_model","import_payloadset_plugin","import_abstract_witness","import_coingecko_crypto_market_payload_plugin","CoingeckoCryptoMarketWitnessConfigSchema","CoingeckoCryptoMarketWitness","CoingeckoCryptoMarketWitnessConfigSchema","pricesFromCoingecko","CoingeckoCryptoMarketPlugin","params","CoingeckoCryptoMarketWitness"]}
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'\nexport * from './lib'\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin'\nexport * from './Schema'\nexport * from './Witness'\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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,SAAS;AAAA,EACT,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,KAAK;AAAA,EACL,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"]}
@@ -1,2 +1,95 @@
1
- var a={"binance-usd":"busd",bitcoin:"btc",bnb:"bnb",cardano:"ada",dogecoin:"doge",ethereum:"eth",polkadot:"dot",solana:"sol",tether:"usdt","usd-coin":"usdc","wrapped-bitcoin":"wbtc",xrp:"xrp","xyo-network":"xyo"};var b=[{name:"bitcoin"},{name:"binance-usd"},{name:"bnb"},{name:"cardano"},{name:"dogecoin"},{name:"ethereum"},{name:"polkadot"},{name:"solana"},{name:"tether"},{name:"usd-coin"},{name:"wrapped-bitcoin"},{name:"xrp"},{name:"xyo-network"}],P=[{symbol:"usd"},{symbol:"eur"},{symbol:"btc"},{symbol:"eth"}];import{axios as y}from"@xylabs/axios";var c=async(e,r)=>{let i=`https://api.coingecko.com/api/v3/simple/price?ids=${e.map(({name:o})=>o).join(",")}&vs_currencies=${r.map(({symbol:o})=>o).join(",")}`,p=(await y.get(i)).data,n={};for(let[o,C]of Object.entries(p))n[a[o]]=C;return n};import{CoingeckoCryptoMarketSchema as d}from"@xyo-network/coingecko-crypto-market-payload-plugin";import{PayloadSetSchema as l}from"@xyo-network/payload-model";import{createPayloadSetWitnessPlugin as f}from"@xyo-network/payloadset-plugin";import{AbstractWitness as k}from"@xyo-network/abstract-witness";import{CoingeckoCryptoMarketSchema as g}from"@xyo-network/coingecko-crypto-market-payload-plugin";var s="network.xyo.crypto.market.coingecko.witness.config";var t=class extends k{static configSchemas=[...super.configSchemas,s];static defaultConfigSchema=s;async observeHandler(){return[{assets:await c(this.config?.coins??[],this.config?.currencies??[]),schema:g,timestamp:Date.now()}]}};var m=()=>f({required:{[d]:1},schema:l},{witness:async e=>await t.create(e)});export{m as CoingeckoCryptoMarketPlugin,t as CoingeckoCryptoMarketWitness,s as CoingeckoCryptoMarketWitnessConfigSchema,a as coingeckoCoinToAssetMap,m as default,b as defaultCoins,P as defaultCurrencies,c as pricesFromCoingecko};
1
+ // src/lib/coinGeckoCoinToAssetMap.ts
2
+ var coingeckoCoinToAssetMap = {
3
+ "binance-usd": "busd",
4
+ bitcoin: "btc",
5
+ bnb: "bnb",
6
+ cardano: "ada",
7
+ dogecoin: "doge",
8
+ ethereum: "eth",
9
+ polkadot: "dot",
10
+ solana: "sol",
11
+ tether: "usdt",
12
+ "usd-coin": "usdc",
13
+ "wrapped-bitcoin": "wbtc",
14
+ xrp: "xrp",
15
+ "xyo-network": "xyo"
16
+ };
17
+
18
+ // src/lib/defaults.ts
19
+ var defaultCoins = [
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" }
33
+ ];
34
+ var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
35
+
36
+ // src/lib/pricesFromCoingecko.ts
37
+ import { axios } from "@xylabs/axios";
38
+ var pricesFromCoingecko = async (coins, currencies) => {
39
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
40
+ const coinGeckoSimplePrices = (await axios.get(url)).data;
41
+ const assets = {};
42
+ for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {
43
+ assets[coingeckoCoinToAssetMap[key]] = value;
44
+ }
45
+ return assets;
46
+ };
47
+
48
+ // src/Plugin.ts
49
+ import { CoingeckoCryptoMarketSchema as CoingeckoCryptoMarketSchema2 } from "@xyo-network/coingecko-crypto-market-payload-plugin";
50
+ import { PayloadSetSchema } from "@xyo-network/payload-model";
51
+ import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
52
+
53
+ // src/Witness.ts
54
+ import { AbstractWitness } from "@xyo-network/abstract-witness";
55
+ import { CoingeckoCryptoMarketSchema } from "@xyo-network/coingecko-crypto-market-payload-plugin";
56
+
57
+ // src/Schema.ts
58
+ var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coingecko.witness.config";
59
+
60
+ // src/Witness.ts
61
+ var CoingeckoCryptoMarketWitness = class extends AbstractWitness {
62
+ static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
63
+ static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
64
+ async observeHandler() {
65
+ const assets = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? []);
66
+ const payload = {
67
+ assets,
68
+ schema: CoingeckoCryptoMarketSchema,
69
+ timestamp: Date.now()
70
+ };
71
+ return [payload];
72
+ }
73
+ };
74
+
75
+ // src/Plugin.ts
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
+ );
85
+ export {
86
+ CoingeckoCryptoMarketPlugin,
87
+ CoingeckoCryptoMarketWitness,
88
+ CoingeckoCryptoMarketWitnessConfigSchema,
89
+ coingeckoCoinToAssetMap,
90
+ CoingeckoCryptoMarketPlugin as default,
91
+ defaultCoins,
92
+ defaultCurrencies,
93
+ pricesFromCoingecko
94
+ };
2
95
  //# sourceMappingURL=index.js.map
@@ -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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,IAAMA,EAAuD,CAClE,cAAe,OACf,QAAS,MACT,IAAK,MACL,QAAS,MACT,SAAU,OACV,SAAU,MACV,SAAU,MACV,OAAQ,MACR,OAAQ,OACR,WAAY,OACZ,kBAAmB,OACnB,IAAK,MACL,cAAe,KACjB,ECdO,IAAMC,EAA8B,CACzC,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,aAAc,EACtB,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,iBAAkB,EAC1B,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,aAAc,CACxB,EAEaC,EAAmC,CAAC,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,CAAC,EClB3H,OAAS,SAAAC,MAAa,gBAQf,IAAMC,EAAsB,MAAOC,EAAsBC,IAA8B,CAC5F,IAAMC,EAAM,qDAAqDF,EAAM,IAAI,CAAC,CAAE,KAAAG,CAAK,IAAMA,CAAI,EAAE,KAAK,GAAG,CAAC,kBAAkBF,EACvH,IAAI,CAAC,CAAE,OAAAG,CAAO,IAAMA,CAAM,EAC1B,KAAK,GAAG,CAAC,GACNC,GAAyB,MAAMC,EAAM,IAA2BJ,CAAG,GAAG,KACtEK,EAA4B,CAAC,EACnC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQJ,CAAqB,EAC7DE,EAAOG,EAAwBF,CAAG,CAAC,EAAIC,EAEzC,OAAOF,CACT,EClBA,OAAS,+BAAAI,MAAmC,sDAC5C,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,iCAAAC,MAAqC,iCCF9C,OAAS,mBAAAC,MAAuB,gCAChC,OAAuC,+BAAAC,MAAmC,sDCAnE,IAAMC,EAAqF,qDDW3F,IAAMC,EAAN,cAEGC,CAAyB,CACjC,OAAyB,cAA0B,CAAC,GAAG,MAAM,cAAeC,CAAwC,EACpH,OAAyB,oBAA8BA,EAEvD,MAAyB,gBAAqC,CAQ5D,MAAO,CANuC,CAC5C,OAFqD,MAAMC,EAAoB,KAAK,QAAQ,OAAS,CAAC,EAAG,KAAK,QAAQ,YAAc,CAAC,CAAC,EAGtI,OAAQC,EACR,UAAW,KAAK,IAAI,CACtB,CAEe,CACjB,CACF,EDtBO,IAAMC,EAA8B,IACzCC,EACE,CAAE,SAAU,CAAE,CAACC,CAA2B,EAAG,CAAE,EAAG,OAAQC,CAAiB,EAC3E,CACE,QAAS,MAAOC,GACC,MAAMC,EAA6B,OAAOD,CAAM,CAGnE,CACF","names":["coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","axios","pricesFromCoingecko","coins","currencies","url","name","symbol","coinGeckoSimplePrices","axios","assets","key","value","coingeckoCoinToAssetMap","CoingeckoCryptoMarketSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","AbstractWitness","CoingeckoCryptoMarketSchema","CoingeckoCryptoMarketWitnessConfigSchema","CoingeckoCryptoMarketWitness","AbstractWitness","CoingeckoCryptoMarketWitnessConfigSchema","pricesFromCoingecko","CoingeckoCryptoMarketSchema","CoingeckoCryptoMarketPlugin","createPayloadSetWitnessPlugin","CoingeckoCryptoMarketSchema","PayloadSetSchema","params","CoingeckoCryptoMarketWitness"]}
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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,SAAS;AAAA,EACT,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,KAAK;AAAA,EACL,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"]}
@@ -1,2 +1,118 @@
1
- "use strict";var c=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var S=(e,o)=>{for(var r in o)c(e,r,{get:o[r],enumerable:!0})},x=(e,o,r,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of P(o))!h.call(e,t)&&t!==r&&c(e,t,{get:()=>o[t],enumerable:!(n=b(o,t))||n.enumerable});return e};var M=e=>x(c({},"__esModule",{value:!0}),e);var W={};S(W,{CoingeckoCryptoMarketPlugin:()=>C,CoingeckoCryptoMarketWitness:()=>i,CoingeckoCryptoMarketWitnessConfigSchema:()=>a,coingeckoCoinToAssetMap:()=>m,default:()=>C,defaultCoins:()=>A,defaultCurrencies:()=>w,pricesFromCoingecko:()=>p});module.exports=M(W);var m={"binance-usd":"busd",bitcoin:"btc",bnb:"bnb",cardano:"ada",dogecoin:"doge",ethereum:"eth",polkadot:"dot",solana:"sol",tether:"usdt","usd-coin":"usdc","wrapped-bitcoin":"wbtc",xrp:"xrp","xyo-network":"xyo"};var A=[{name:"bitcoin"},{name:"binance-usd"},{name:"bnb"},{name:"cardano"},{name:"dogecoin"},{name:"ethereum"},{name:"polkadot"},{name:"solana"},{name:"tether"},{name:"usd-coin"},{name:"wrapped-bitcoin"},{name:"xrp"},{name:"xyo-network"}],w=[{symbol:"usd"},{symbol:"eur"},{symbol:"btc"},{symbol:"eth"}];var y=require("@xylabs/axios");var p=async(e,o)=>{let r=`https://api.coingecko.com/api/v3/simple/price?ids=${e.map(({name:s})=>s).join(",")}&vs_currencies=${o.map(({symbol:s})=>s).join(",")}`,n=(await y.axios.get(r)).data,t={};for(let[s,u]of Object.entries(n))t[m[s]]=u;return t};var d=require("@xyo-network/coingecko-crypto-market-payload-plugin"),l=require("@xyo-network/payload-model"),f=require("@xyo-network/payloadset-plugin");var k=require("@xyo-network/abstract-witness"),g=require("@xyo-network/coingecko-crypto-market-payload-plugin");var a="network.xyo.crypto.market.coingecko.witness.config";var i=class extends k.AbstractWitness{static configSchemas=[...super.configSchemas,a];static defaultConfigSchema=a;async observeHandler(){return[{assets:await p(this.config?.coins??[],this.config?.currencies??[]),schema:g.CoingeckoCryptoMarketSchema,timestamp:Date.now()}]}};var C=()=>(0,f.createPayloadSetWitnessPlugin)({required:{[d.CoingeckoCryptoMarketSchema]:1},schema:l.PayloadSetSchema},{witness:async e=>await i.create(e)});
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/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ CoingeckoCryptoMarketPlugin: () => CoingeckoCryptoMarketPlugin,
24
+ CoingeckoCryptoMarketWitness: () => CoingeckoCryptoMarketWitness,
25
+ CoingeckoCryptoMarketWitnessConfigSchema: () => CoingeckoCryptoMarketWitnessConfigSchema,
26
+ coingeckoCoinToAssetMap: () => coingeckoCoinToAssetMap,
27
+ default: () => CoingeckoCryptoMarketPlugin,
28
+ defaultCoins: () => defaultCoins,
29
+ defaultCurrencies: () => defaultCurrencies,
30
+ pricesFromCoingecko: () => pricesFromCoingecko
31
+ });
32
+ module.exports = __toCommonJS(src_exports);
33
+
34
+ // src/lib/coinGeckoCoinToAssetMap.ts
35
+ var coingeckoCoinToAssetMap = {
36
+ "binance-usd": "busd",
37
+ bitcoin: "btc",
38
+ bnb: "bnb",
39
+ cardano: "ada",
40
+ dogecoin: "doge",
41
+ ethereum: "eth",
42
+ polkadot: "dot",
43
+ solana: "sol",
44
+ tether: "usdt",
45
+ "usd-coin": "usdc",
46
+ "wrapped-bitcoin": "wbtc",
47
+ xrp: "xrp",
48
+ "xyo-network": "xyo"
49
+ };
50
+
51
+ // src/lib/defaults.ts
52
+ var defaultCoins = [
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" }
66
+ ];
67
+ var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
68
+
69
+ // src/lib/pricesFromCoingecko.ts
70
+ var import_axios = require("@xylabs/axios");
71
+ var pricesFromCoingecko = async (coins, currencies) => {
72
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
73
+ const coinGeckoSimplePrices = (await import_axios.axios.get(url)).data;
74
+ const assets = {};
75
+ for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {
76
+ assets[coingeckoCoinToAssetMap[key]] = value;
77
+ }
78
+ return assets;
79
+ };
80
+
81
+ // src/Plugin.ts
82
+ var import_coingecko_crypto_market_payload_plugin2 = require("@xyo-network/coingecko-crypto-market-payload-plugin");
83
+ var import_payload_model = require("@xyo-network/payload-model");
84
+ var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
85
+
86
+ // src/Witness.ts
87
+ var import_abstract_witness = require("@xyo-network/abstract-witness");
88
+ var import_coingecko_crypto_market_payload_plugin = require("@xyo-network/coingecko-crypto-market-payload-plugin");
89
+
90
+ // src/Schema.ts
91
+ var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coingecko.witness.config";
92
+
93
+ // src/Witness.ts
94
+ var CoingeckoCryptoMarketWitness = class extends import_abstract_witness.AbstractWitness {
95
+ static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
96
+ static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
97
+ async observeHandler() {
98
+ const assets = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? []);
99
+ const payload = {
100
+ assets,
101
+ schema: import_coingecko_crypto_market_payload_plugin.CoingeckoCryptoMarketSchema,
102
+ timestamp: Date.now()
103
+ };
104
+ return [payload];
105
+ }
106
+ };
107
+
108
+ // src/Plugin.ts
109
+ var CoingeckoCryptoMarketPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
110
+ { required: { [import_coingecko_crypto_market_payload_plugin2.CoingeckoCryptoMarketSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
111
+ {
112
+ witness: async (params) => {
113
+ const result = await CoingeckoCryptoMarketWitness.create(params);
114
+ return result;
115
+ }
116
+ }
117
+ );
2
118
  //# sourceMappingURL=index.cjs.map
@@ -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'\nexport * from './lib'\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin'\nexport * from './Schema'\nexport * from './Witness'\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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,EAAA,iCAAAC,EAAA,6CAAAC,EAAA,4BAAAC,EAAA,YAAAH,EAAA,iBAAAI,EAAA,sBAAAC,EAAA,wBAAAC,IAAA,eAAAC,EAAAT,GCEO,IAAMU,EAAuD,CAClE,cAAe,OACf,QAAS,MACT,IAAK,MACL,QAAS,MACT,SAAU,OACV,SAAU,MACV,SAAU,MACV,OAAQ,MACR,OAAQ,OACR,WAAY,OACZ,kBAAmB,OACnB,IAAK,MACL,cAAe,KACjB,ECdO,IAAMC,EAA8B,CACzC,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,aAAc,EACtB,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,iBAAkB,EAC1B,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,aAAc,CACxB,EAEaC,EAAmC,CAAC,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,CAAC,EClB3H,IAAAC,EAAsB,yBAQf,IAAMC,EAAsB,MAAOC,EAAsBC,IAA8B,CAC5F,IAAMC,EAAM,qDAAqDF,EAAM,IAAI,CAAC,CAAE,KAAAG,CAAK,IAAMA,CAAI,EAAE,KAAK,GAAG,CAAC,kBAAkBF,EACvH,IAAI,CAAC,CAAE,OAAAG,CAAO,IAAMA,CAAM,EAC1B,KAAK,GAAG,CAAC,GACNC,GAAyB,MAAM,QAAM,IAA2BH,CAAG,GAAG,KACtEI,EAA4B,CAAC,EACnC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAqB,EAC7DC,EAAOG,EAAwBF,CAAG,CAAC,EAAIC,EAEzC,OAAOF,CACT,EClBA,IAAAI,EAA4C,+DAC5CC,EAAiC,sCACjCC,EAA8C,0CCF9C,IAAAC,EAAgC,yCAChCC,EAA0E,+DCAnE,IAAMC,EAAqF,qDDW3F,IAAMC,EAAN,cAEG,iBAAyB,CACjC,OAAyB,cAA0B,CAAC,GAAG,MAAM,cAAeC,CAAwC,EACpH,OAAyB,oBAA8BA,EAEvD,MAAyB,gBAAqC,CAQ5D,MAAO,CANuC,CAC5C,OAFqD,MAAMC,EAAoB,KAAK,QAAQ,OAAS,CAAC,EAAG,KAAK,QAAQ,YAAc,CAAC,CAAC,EAGtI,OAAQ,8BACR,UAAW,KAAK,IAAI,CACtB,CAEe,CACjB,CACF,EDtBO,IAAMC,EAA8B,OACzC,iCACE,CAAE,SAAU,CAAE,CAAC,6BAA2B,EAAG,CAAE,EAAG,OAAQ,kBAAiB,EAC3E,CACE,QAAS,MAAOC,GACC,MAAMC,EAA6B,OAAOD,CAAM,CAGnE,CACF","names":["src_exports","__export","CoingeckoCryptoMarketPlugin","CoingeckoCryptoMarketWitness","CoingeckoCryptoMarketWitnessConfigSchema","coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","pricesFromCoingecko","__toCommonJS","coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","import_axios","pricesFromCoingecko","coins","currencies","url","name","symbol","coinGeckoSimplePrices","assets","key","value","coingeckoCoinToAssetMap","import_coingecko_crypto_market_payload_plugin","import_payload_model","import_payloadset_plugin","import_abstract_witness","import_coingecko_crypto_market_payload_plugin","CoingeckoCryptoMarketWitnessConfigSchema","CoingeckoCryptoMarketWitness","CoingeckoCryptoMarketWitnessConfigSchema","pricesFromCoingecko","CoingeckoCryptoMarketPlugin","params","CoingeckoCryptoMarketWitness"]}
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'\nexport * from './lib'\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin'\nexport * from './Schema'\nexport * from './Witness'\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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,SAAS;AAAA,EACT,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,KAAK;AAAA,EACL,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"]}
@@ -1,2 +1,95 @@
1
- var a={"binance-usd":"busd",bitcoin:"btc",bnb:"bnb",cardano:"ada",dogecoin:"doge",ethereum:"eth",polkadot:"dot",solana:"sol",tether:"usdt","usd-coin":"usdc","wrapped-bitcoin":"wbtc",xrp:"xrp","xyo-network":"xyo"};var b=[{name:"bitcoin"},{name:"binance-usd"},{name:"bnb"},{name:"cardano"},{name:"dogecoin"},{name:"ethereum"},{name:"polkadot"},{name:"solana"},{name:"tether"},{name:"usd-coin"},{name:"wrapped-bitcoin"},{name:"xrp"},{name:"xyo-network"}],P=[{symbol:"usd"},{symbol:"eur"},{symbol:"btc"},{symbol:"eth"}];import{axios as y}from"@xylabs/axios";var c=async(e,r)=>{let i=`https://api.coingecko.com/api/v3/simple/price?ids=${e.map(({name:o})=>o).join(",")}&vs_currencies=${r.map(({symbol:o})=>o).join(",")}`,p=(await y.get(i)).data,n={};for(let[o,C]of Object.entries(p))n[a[o]]=C;return n};import{CoingeckoCryptoMarketSchema as d}from"@xyo-network/coingecko-crypto-market-payload-plugin";import{PayloadSetSchema as l}from"@xyo-network/payload-model";import{createPayloadSetWitnessPlugin as f}from"@xyo-network/payloadset-plugin";import{AbstractWitness as k}from"@xyo-network/abstract-witness";import{CoingeckoCryptoMarketSchema as g}from"@xyo-network/coingecko-crypto-market-payload-plugin";var s="network.xyo.crypto.market.coingecko.witness.config";var t=class extends k{static configSchemas=[...super.configSchemas,s];static defaultConfigSchema=s;async observeHandler(){return[{assets:await c(this.config?.coins??[],this.config?.currencies??[]),schema:g,timestamp:Date.now()}]}};var m=()=>f({required:{[d]:1},schema:l},{witness:async e=>await t.create(e)});export{m as CoingeckoCryptoMarketPlugin,t as CoingeckoCryptoMarketWitness,s as CoingeckoCryptoMarketWitnessConfigSchema,a as coingeckoCoinToAssetMap,m as default,b as defaultCoins,P as defaultCurrencies,c as pricesFromCoingecko};
1
+ // src/lib/coinGeckoCoinToAssetMap.ts
2
+ var coingeckoCoinToAssetMap = {
3
+ "binance-usd": "busd",
4
+ bitcoin: "btc",
5
+ bnb: "bnb",
6
+ cardano: "ada",
7
+ dogecoin: "doge",
8
+ ethereum: "eth",
9
+ polkadot: "dot",
10
+ solana: "sol",
11
+ tether: "usdt",
12
+ "usd-coin": "usdc",
13
+ "wrapped-bitcoin": "wbtc",
14
+ xrp: "xrp",
15
+ "xyo-network": "xyo"
16
+ };
17
+
18
+ // src/lib/defaults.ts
19
+ var defaultCoins = [
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" }
33
+ ];
34
+ var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
35
+
36
+ // src/lib/pricesFromCoingecko.ts
37
+ import { axios } from "@xylabs/axios";
38
+ var pricesFromCoingecko = async (coins, currencies) => {
39
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
40
+ const coinGeckoSimplePrices = (await axios.get(url)).data;
41
+ const assets = {};
42
+ for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {
43
+ assets[coingeckoCoinToAssetMap[key]] = value;
44
+ }
45
+ return assets;
46
+ };
47
+
48
+ // src/Plugin.ts
49
+ import { CoingeckoCryptoMarketSchema as CoingeckoCryptoMarketSchema2 } from "@xyo-network/coingecko-crypto-market-payload-plugin";
50
+ import { PayloadSetSchema } from "@xyo-network/payload-model";
51
+ import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
52
+
53
+ // src/Witness.ts
54
+ import { AbstractWitness } from "@xyo-network/abstract-witness";
55
+ import { CoingeckoCryptoMarketSchema } from "@xyo-network/coingecko-crypto-market-payload-plugin";
56
+
57
+ // src/Schema.ts
58
+ var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coingecko.witness.config";
59
+
60
+ // src/Witness.ts
61
+ var CoingeckoCryptoMarketWitness = class extends AbstractWitness {
62
+ static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
63
+ static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
64
+ async observeHandler() {
65
+ const assets = await pricesFromCoingecko(this.config?.coins ?? [], this.config?.currencies ?? []);
66
+ const payload = {
67
+ assets,
68
+ schema: CoingeckoCryptoMarketSchema,
69
+ timestamp: Date.now()
70
+ };
71
+ return [payload];
72
+ }
73
+ };
74
+
75
+ // src/Plugin.ts
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
+ );
85
+ export {
86
+ CoingeckoCryptoMarketPlugin,
87
+ CoingeckoCryptoMarketWitness,
88
+ CoingeckoCryptoMarketWitnessConfigSchema,
89
+ coingeckoCoinToAssetMap,
90
+ CoingeckoCryptoMarketPlugin as default,
91
+ defaultCoins,
92
+ defaultCurrencies,
93
+ pricesFromCoingecko
94
+ };
2
95
  //# sourceMappingURL=index.js.map
@@ -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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,IAAMA,EAAuD,CAClE,cAAe,OACf,QAAS,MACT,IAAK,MACL,QAAS,MACT,SAAU,OACV,SAAU,MACV,SAAU,MACV,OAAQ,MACR,OAAQ,OACR,WAAY,OACZ,kBAAmB,OACnB,IAAK,MACL,cAAe,KACjB,ECdO,IAAMC,EAA8B,CACzC,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,aAAc,EACtB,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,iBAAkB,EAC1B,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,aAAc,CACxB,EAEaC,EAAmC,CAAC,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,CAAC,EClB3H,OAAS,SAAAC,MAAa,gBAQf,IAAMC,EAAsB,MAAOC,EAAsBC,IAA8B,CAC5F,IAAMC,EAAM,qDAAqDF,EAAM,IAAI,CAAC,CAAE,KAAAG,CAAK,IAAMA,CAAI,EAAE,KAAK,GAAG,CAAC,kBAAkBF,EACvH,IAAI,CAAC,CAAE,OAAAG,CAAO,IAAMA,CAAM,EAC1B,KAAK,GAAG,CAAC,GACNC,GAAyB,MAAMC,EAAM,IAA2BJ,CAAG,GAAG,KACtEK,EAA4B,CAAC,EACnC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQJ,CAAqB,EAC7DE,EAAOG,EAAwBF,CAAG,CAAC,EAAIC,EAEzC,OAAOF,CACT,EClBA,OAAS,+BAAAI,MAAmC,sDAC5C,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,iCAAAC,MAAqC,iCCF9C,OAAS,mBAAAC,MAAuB,gCAChC,OAAuC,+BAAAC,MAAmC,sDCAnE,IAAMC,EAAqF,qDDW3F,IAAMC,EAAN,cAEGC,CAAyB,CACjC,OAAyB,cAA0B,CAAC,GAAG,MAAM,cAAeC,CAAwC,EACpH,OAAyB,oBAA8BA,EAEvD,MAAyB,gBAAqC,CAQ5D,MAAO,CANuC,CAC5C,OAFqD,MAAMC,EAAoB,KAAK,QAAQ,OAAS,CAAC,EAAG,KAAK,QAAQ,YAAc,CAAC,CAAC,EAGtI,OAAQC,EACR,UAAW,KAAK,IAAI,CACtB,CAEe,CACjB,CACF,EDtBO,IAAMC,EAA8B,IACzCC,EACE,CAAE,SAAU,CAAE,CAACC,CAA2B,EAAG,CAAE,EAAG,OAAQC,CAAiB,EAC3E,CACE,QAAS,MAAOC,GACC,MAAMC,EAA6B,OAAOD,CAAM,CAGnE,CACF","names":["coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","axios","pricesFromCoingecko","coins","currencies","url","name","symbol","coinGeckoSimplePrices","axios","assets","key","value","coingeckoCoinToAssetMap","CoingeckoCryptoMarketSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","AbstractWitness","CoingeckoCryptoMarketSchema","CoingeckoCryptoMarketWitnessConfigSchema","CoingeckoCryptoMarketWitness","AbstractWitness","CoingeckoCryptoMarketWitnessConfigSchema","pricesFromCoingecko","CoingeckoCryptoMarketSchema","CoingeckoCryptoMarketPlugin","createPayloadSetWitnessPlugin","CoingeckoCryptoMarketSchema","PayloadSetSchema","params","CoingeckoCryptoMarketWitness"]}
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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,SAAS;AAAA,EACT,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,KAAK;AAAA,EACL,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"]}
@@ -1,2 +1,129 @@
1
- "use strict";var c=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var S=(e,o)=>{for(var r in o)c(e,r,{get:o[r],enumerable:!0})},x=(e,o,r,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of P(o))!h.call(e,t)&&t!==r&&c(e,t,{get:()=>o[t],enumerable:!(s=b(o,t))||s.enumerable});return e};var M=e=>x(c({},"__esModule",{value:!0}),e);var W={};S(W,{CoingeckoCryptoMarketPlugin:()=>C,CoingeckoCryptoMarketWitness:()=>n,CoingeckoCryptoMarketWitnessConfigSchema:()=>a,coingeckoCoinToAssetMap:()=>m,default:()=>C,defaultCoins:()=>A,defaultCurrencies:()=>w,pricesFromCoingecko:()=>p});module.exports=M(W);var m={"binance-usd":"busd",bitcoin:"btc",bnb:"bnb",cardano:"ada",dogecoin:"doge",ethereum:"eth",polkadot:"dot",solana:"sol",tether:"usdt","usd-coin":"usdc","wrapped-bitcoin":"wbtc",xrp:"xrp","xyo-network":"xyo"};var A=[{name:"bitcoin"},{name:"binance-usd"},{name:"bnb"},{name:"cardano"},{name:"dogecoin"},{name:"ethereum"},{name:"polkadot"},{name:"solana"},{name:"tether"},{name:"usd-coin"},{name:"wrapped-bitcoin"},{name:"xrp"},{name:"xyo-network"}],w=[{symbol:"usd"},{symbol:"eur"},{symbol:"btc"},{symbol:"eth"}];var y=require("@xylabs/axios");var p=async(e,o)=>{let r=`https://api.coingecko.com/api/v3/simple/price?ids=${e.map(({name:i})=>i).join(",")}&vs_currencies=${o.map(({symbol:i})=>i).join(",")}`,s=(await y.axios.get(r)).data,t={};for(let[i,u]of Object.entries(s))t[m[i]]=u;return t};var d=require("@xyo-network/coingecko-crypto-market-payload-plugin"),l=require("@xyo-network/payload-model"),f=require("@xyo-network/payloadset-plugin");var k=require("@xyo-network/abstract-witness"),g=require("@xyo-network/coingecko-crypto-market-payload-plugin");var a="network.xyo.crypto.market.coingecko.witness.config";var n=class extends k.AbstractWitness{static configSchemas=[...super.configSchemas,a];static defaultConfigSchema=a;async observeHandler(){var s,t;return[{assets:await p(((s=this.config)==null?void 0:s.coins)??[],((t=this.config)==null?void 0:t.currencies)??[]),schema:g.CoingeckoCryptoMarketSchema,timestamp:Date.now()}]}};var C=()=>(0,f.createPayloadSetWitnessPlugin)({required:{[d.CoingeckoCryptoMarketSchema]:1},schema:l.PayloadSetSchema},{witness:async e=>await n.create(e)});0&&(module.exports={CoingeckoCryptoMarketPlugin,CoingeckoCryptoMarketWitness,CoingeckoCryptoMarketWitnessConfigSchema,coingeckoCoinToAssetMap,defaultCoins,defaultCurrencies,pricesFromCoingecko});
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/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ CoingeckoCryptoMarketPlugin: () => CoingeckoCryptoMarketPlugin,
24
+ CoingeckoCryptoMarketWitness: () => CoingeckoCryptoMarketWitness,
25
+ CoingeckoCryptoMarketWitnessConfigSchema: () => CoingeckoCryptoMarketWitnessConfigSchema,
26
+ coingeckoCoinToAssetMap: () => coingeckoCoinToAssetMap,
27
+ default: () => CoingeckoCryptoMarketPlugin,
28
+ defaultCoins: () => defaultCoins,
29
+ defaultCurrencies: () => defaultCurrencies,
30
+ pricesFromCoingecko: () => pricesFromCoingecko
31
+ });
32
+ module.exports = __toCommonJS(src_exports);
33
+
34
+ // src/lib/coinGeckoCoinToAssetMap.ts
35
+ var coingeckoCoinToAssetMap = {
36
+ "binance-usd": "busd",
37
+ bitcoin: "btc",
38
+ bnb: "bnb",
39
+ cardano: "ada",
40
+ dogecoin: "doge",
41
+ ethereum: "eth",
42
+ polkadot: "dot",
43
+ solana: "sol",
44
+ tether: "usdt",
45
+ "usd-coin": "usdc",
46
+ "wrapped-bitcoin": "wbtc",
47
+ xrp: "xrp",
48
+ "xyo-network": "xyo"
49
+ };
50
+
51
+ // src/lib/defaults.ts
52
+ var defaultCoins = [
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" }
66
+ ];
67
+ var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
68
+
69
+ // src/lib/pricesFromCoingecko.ts
70
+ var import_axios = require("@xylabs/axios");
71
+ var pricesFromCoingecko = async (coins, currencies) => {
72
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
73
+ const coinGeckoSimplePrices = (await import_axios.axios.get(url)).data;
74
+ const assets = {};
75
+ for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {
76
+ assets[coingeckoCoinToAssetMap[key]] = value;
77
+ }
78
+ return assets;
79
+ };
80
+
81
+ // src/Plugin.ts
82
+ var import_coingecko_crypto_market_payload_plugin2 = require("@xyo-network/coingecko-crypto-market-payload-plugin");
83
+ var import_payload_model = require("@xyo-network/payload-model");
84
+ var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
85
+
86
+ // src/Witness.ts
87
+ var import_abstract_witness = require("@xyo-network/abstract-witness");
88
+ var import_coingecko_crypto_market_payload_plugin = require("@xyo-network/coingecko-crypto-market-payload-plugin");
89
+
90
+ // src/Schema.ts
91
+ var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coingecko.witness.config";
92
+
93
+ // src/Witness.ts
94
+ var CoingeckoCryptoMarketWitness = class extends import_abstract_witness.AbstractWitness {
95
+ static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
96
+ static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
97
+ async observeHandler() {
98
+ var _a, _b;
99
+ const assets = await pricesFromCoingecko(((_a = this.config) == null ? void 0 : _a.coins) ?? [], ((_b = this.config) == null ? void 0 : _b.currencies) ?? []);
100
+ const payload = {
101
+ assets,
102
+ schema: import_coingecko_crypto_market_payload_plugin.CoingeckoCryptoMarketSchema,
103
+ timestamp: Date.now()
104
+ };
105
+ return [payload];
106
+ }
107
+ };
108
+
109
+ // src/Plugin.ts
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
+ );
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ CoingeckoCryptoMarketPlugin,
122
+ CoingeckoCryptoMarketWitness,
123
+ CoingeckoCryptoMarketWitnessConfigSchema,
124
+ coingeckoCoinToAssetMap,
125
+ defaultCoins,
126
+ defaultCurrencies,
127
+ pricesFromCoingecko
128
+ });
2
129
  //# sourceMappingURL=index.cjs.map
@@ -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'\nexport * from './lib'\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin'\nexport * from './Schema'\nexport * from './Witness'\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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,EAAA,iCAAAC,EAAA,6CAAAC,EAAA,4BAAAC,EAAA,YAAAH,EAAA,iBAAAI,EAAA,sBAAAC,EAAA,wBAAAC,IAAA,eAAAC,EAAAT,GCEO,IAAMU,EAAuD,CAClE,cAAe,OACf,QAAS,MACT,IAAK,MACL,QAAS,MACT,SAAU,OACV,SAAU,MACV,SAAU,MACV,OAAQ,MACR,OAAQ,OACR,WAAY,OACZ,kBAAmB,OACnB,IAAK,MACL,cAAe,KACjB,ECdO,IAAMC,EAA8B,CACzC,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,aAAc,EACtB,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,iBAAkB,EAC1B,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,aAAc,CACxB,EAEaC,EAAmC,CAAC,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,CAAC,EClB3H,IAAAC,EAAsB,yBAQf,IAAMC,EAAsB,MAAOC,EAAsBC,IAA8B,CAC5F,IAAMC,EAAM,qDAAqDF,EAAM,IAAI,CAAC,CAAE,KAAAG,CAAK,IAAMA,CAAI,EAAE,KAAK,GAAG,CAAC,kBAAkBF,EACvH,IAAI,CAAC,CAAE,OAAAG,CAAO,IAAMA,CAAM,EAC1B,KAAK,GAAG,CAAC,GACNC,GAAyB,MAAM,QAAM,IAA2BH,CAAG,GAAG,KACtEI,EAA4B,CAAC,EACnC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAqB,EAC7DC,EAAOG,EAAwBF,CAAG,CAAC,EAAIC,EAEzC,OAAOF,CACT,EClBA,IAAAI,EAA4C,+DAC5CC,EAAiC,sCACjCC,EAA8C,0CCF9C,IAAAC,EAAgC,yCAChCC,EAA0E,+DCAnE,IAAMC,EAAqF,qDDW3F,IAAMC,EAAN,cAEG,iBAAyB,CACjC,OAAyB,cAA0B,CAAC,GAAG,MAAM,cAAeC,CAAwC,EACpH,OAAyB,oBAA8BA,EAEvD,MAAyB,gBAAqC,CAlBhE,IAAAC,EAAAC,EA0BI,MAAO,CANuC,CAC5C,OAFqD,MAAMC,IAAoBF,EAAA,KAAK,SAAL,YAAAA,EAAa,QAAS,CAAC,IAAGC,EAAA,KAAK,SAAL,YAAAA,EAAa,aAAc,CAAC,CAAC,EAGtI,OAAQ,8BACR,UAAW,KAAK,IAAI,CACtB,CAEe,CACjB,CACF,EDtBO,IAAME,EAA8B,OACzC,iCACE,CAAE,SAAU,CAAE,CAAC,6BAA2B,EAAG,CAAE,EAAG,OAAQ,kBAAiB,EAC3E,CACE,QAAS,MAAOC,GACC,MAAMC,EAA6B,OAAOD,CAAM,CAGnE,CACF","names":["src_exports","__export","CoingeckoCryptoMarketPlugin","CoingeckoCryptoMarketWitness","CoingeckoCryptoMarketWitnessConfigSchema","coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","pricesFromCoingecko","__toCommonJS","coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","import_axios","pricesFromCoingecko","coins","currencies","url","name","symbol","coinGeckoSimplePrices","assets","key","value","coingeckoCoinToAssetMap","import_coingecko_crypto_market_payload_plugin","import_payload_model","import_payloadset_plugin","import_abstract_witness","import_coingecko_crypto_market_payload_plugin","CoingeckoCryptoMarketWitnessConfigSchema","CoingeckoCryptoMarketWitness","CoingeckoCryptoMarketWitnessConfigSchema","_a","_b","pricesFromCoingecko","CoingeckoCryptoMarketPlugin","params","CoingeckoCryptoMarketWitness"]}
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'\nexport * from './lib'\nexport { CoingeckoCryptoMarketPlugin, CoingeckoCryptoMarketPlugin as default } from './Plugin'\nexport * from './Schema'\nexport * from './Witness'\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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,SAAS;AAAA,EACT,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,KAAK;AAAA,EACL,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"]}
@@ -1,2 +1,96 @@
1
- var c={"binance-usd":"busd",bitcoin:"btc",bnb:"bnb",cardano:"ada",dogecoin:"doge",ethereum:"eth",polkadot:"dot",solana:"sol",tether:"usdt","usd-coin":"usdc","wrapped-bitcoin":"wbtc",xrp:"xrp","xyo-network":"xyo"};var b=[{name:"bitcoin"},{name:"binance-usd"},{name:"bnb"},{name:"cardano"},{name:"dogecoin"},{name:"ethereum"},{name:"polkadot"},{name:"solana"},{name:"tether"},{name:"usd-coin"},{name:"wrapped-bitcoin"},{name:"xrp"},{name:"xyo-network"}],P=[{symbol:"usd"},{symbol:"eur"},{symbol:"btc"},{symbol:"eth"}];import{axios as y}from"@xylabs/axios";var m=async(t,i)=>{let a=`https://api.coingecko.com/api/v3/simple/price?ids=${t.map(({name:e})=>e).join(",")}&vs_currencies=${i.map(({symbol:e})=>e).join(",")}`,r=(await y.get(a)).data,o={};for(let[e,C]of Object.entries(r))o[c[e]]=C;return o};import{CoingeckoCryptoMarketSchema as d}from"@xyo-network/coingecko-crypto-market-payload-plugin";import{PayloadSetSchema as l}from"@xyo-network/payload-model";import{createPayloadSetWitnessPlugin as f}from"@xyo-network/payloadset-plugin";import{AbstractWitness as k}from"@xyo-network/abstract-witness";import{CoingeckoCryptoMarketSchema as g}from"@xyo-network/coingecko-crypto-market-payload-plugin";var n="network.xyo.crypto.market.coingecko.witness.config";var s=class extends k{static configSchemas=[...super.configSchemas,n];static defaultConfigSchema=n;async observeHandler(){var r,o;return[{assets:await m(((r=this.config)==null?void 0:r.coins)??[],((o=this.config)==null?void 0:o.currencies)??[]),schema:g,timestamp:Date.now()}]}};var p=()=>f({required:{[d]:1},schema:l},{witness:async t=>await s.create(t)});export{p as CoingeckoCryptoMarketPlugin,s as CoingeckoCryptoMarketWitness,n as CoingeckoCryptoMarketWitnessConfigSchema,c as coingeckoCoinToAssetMap,p as default,b as defaultCoins,P as defaultCurrencies,m as pricesFromCoingecko};
1
+ // src/lib/coinGeckoCoinToAssetMap.ts
2
+ var coingeckoCoinToAssetMap = {
3
+ "binance-usd": "busd",
4
+ bitcoin: "btc",
5
+ bnb: "bnb",
6
+ cardano: "ada",
7
+ dogecoin: "doge",
8
+ ethereum: "eth",
9
+ polkadot: "dot",
10
+ solana: "sol",
11
+ tether: "usdt",
12
+ "usd-coin": "usdc",
13
+ "wrapped-bitcoin": "wbtc",
14
+ xrp: "xrp",
15
+ "xyo-network": "xyo"
16
+ };
17
+
18
+ // src/lib/defaults.ts
19
+ var defaultCoins = [
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" }
33
+ ];
34
+ var defaultCurrencies = [{ symbol: "usd" }, { symbol: "eur" }, { symbol: "btc" }, { symbol: "eth" }];
35
+
36
+ // src/lib/pricesFromCoingecko.ts
37
+ import { axios } from "@xylabs/axios";
38
+ var pricesFromCoingecko = async (coins, currencies) => {
39
+ const url = `https://api.coingecko.com/api/v3/simple/price?ids=${coins.map(({ name }) => name).join(",")}&vs_currencies=${currencies.map(({ symbol }) => symbol).join(",")}`;
40
+ const coinGeckoSimplePrices = (await axios.get(url)).data;
41
+ const assets = {};
42
+ for (const [key, value] of Object.entries(coinGeckoSimplePrices)) {
43
+ assets[coingeckoCoinToAssetMap[key]] = value;
44
+ }
45
+ return assets;
46
+ };
47
+
48
+ // src/Plugin.ts
49
+ import { CoingeckoCryptoMarketSchema as CoingeckoCryptoMarketSchema2 } from "@xyo-network/coingecko-crypto-market-payload-plugin";
50
+ import { PayloadSetSchema } from "@xyo-network/payload-model";
51
+ import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
52
+
53
+ // src/Witness.ts
54
+ import { AbstractWitness } from "@xyo-network/abstract-witness";
55
+ import { CoingeckoCryptoMarketSchema } from "@xyo-network/coingecko-crypto-market-payload-plugin";
56
+
57
+ // src/Schema.ts
58
+ var CoingeckoCryptoMarketWitnessConfigSchema = "network.xyo.crypto.market.coingecko.witness.config";
59
+
60
+ // src/Witness.ts
61
+ var CoingeckoCryptoMarketWitness = class extends AbstractWitness {
62
+ static configSchemas = [...super.configSchemas, CoingeckoCryptoMarketWitnessConfigSchema];
63
+ static defaultConfigSchema = CoingeckoCryptoMarketWitnessConfigSchema;
64
+ async observeHandler() {
65
+ var _a, _b;
66
+ const assets = await pricesFromCoingecko(((_a = this.config) == null ? void 0 : _a.coins) ?? [], ((_b = this.config) == null ? void 0 : _b.currencies) ?? []);
67
+ const payload = {
68
+ assets,
69
+ schema: CoingeckoCryptoMarketSchema,
70
+ timestamp: Date.now()
71
+ };
72
+ return [payload];
73
+ }
74
+ };
75
+
76
+ // src/Plugin.ts
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
+ );
86
+ export {
87
+ CoingeckoCryptoMarketPlugin,
88
+ CoingeckoCryptoMarketWitness,
89
+ CoingeckoCryptoMarketWitnessConfigSchema,
90
+ coingeckoCoinToAssetMap,
91
+ CoingeckoCryptoMarketPlugin as default,
92
+ defaultCoins,
93
+ defaultCurrencies,
94
+ pricesFromCoingecko
95
+ };
2
96
  //# sourceMappingURL=index.js.map
@@ -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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,IAAMA,EAAuD,CAClE,cAAe,OACf,QAAS,MACT,IAAK,MACL,QAAS,MACT,SAAU,OACV,SAAU,MACV,SAAU,MACV,OAAQ,MACR,OAAQ,OACR,WAAY,OACZ,kBAAmB,OACnB,IAAK,MACL,cAAe,KACjB,ECdO,IAAMC,EAA8B,CACzC,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,aAAc,EACtB,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,SAAU,EAClB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,QAAS,EACjB,CAAE,KAAM,UAAW,EACnB,CAAE,KAAM,iBAAkB,EAC1B,CAAE,KAAM,KAAM,EACd,CAAE,KAAM,aAAc,CACxB,EAEaC,EAAmC,CAAC,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,EAAG,CAAE,OAAQ,KAAM,CAAC,EClB3H,OAAS,SAAAC,MAAa,gBAQf,IAAMC,EAAsB,MAAOC,EAAsBC,IAA8B,CAC5F,IAAMC,EAAM,qDAAqDF,EAAM,IAAI,CAAC,CAAE,KAAAG,CAAK,IAAMA,CAAI,EAAE,KAAK,GAAG,CAAC,kBAAkBF,EACvH,IAAI,CAAC,CAAE,OAAAG,CAAO,IAAMA,CAAM,EAC1B,KAAK,GAAG,CAAC,GACNC,GAAyB,MAAMC,EAAM,IAA2BJ,CAAG,GAAG,KACtEK,EAA4B,CAAC,EACnC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQJ,CAAqB,EAC7DE,EAAOG,EAAwBF,CAAG,CAAC,EAAIC,EAEzC,OAAOF,CACT,EClBA,OAAS,+BAAAI,MAAmC,sDAC5C,OAAS,oBAAAC,MAAwB,6BACjC,OAAS,iCAAAC,MAAqC,iCCF9C,OAAS,mBAAAC,MAAuB,gCAChC,OAAuC,+BAAAC,MAAmC,sDCAnE,IAAMC,EAAqF,qDDW3F,IAAMC,EAAN,cAEGC,CAAyB,CACjC,OAAyB,cAA0B,CAAC,GAAG,MAAM,cAAeC,CAAwC,EACpH,OAAyB,oBAA8BA,EAEvD,MAAyB,gBAAqC,CAlBhE,IAAAC,EAAAC,EA0BI,MAAO,CANuC,CAC5C,OAFqD,MAAMC,IAAoBF,EAAA,KAAK,SAAL,YAAAA,EAAa,QAAS,CAAC,IAAGC,EAAA,KAAK,SAAL,YAAAA,EAAa,aAAc,CAAC,CAAC,EAGtI,OAAQE,EACR,UAAW,KAAK,IAAI,CACtB,CAEe,CACjB,CACF,EDtBO,IAAMC,EAA8B,IACzCC,EACE,CAAE,SAAU,CAAE,CAACC,CAA2B,EAAG,CAAE,EAAG,OAAQC,CAAiB,EAC3E,CACE,QAAS,MAAOC,GACC,MAAMC,EAA6B,OAAOD,CAAM,CAGnE,CACF","names":["coingeckoCoinToAssetMap","defaultCoins","defaultCurrencies","axios","pricesFromCoingecko","coins","currencies","url","name","symbol","coinGeckoSimplePrices","axios","assets","key","value","coingeckoCoinToAssetMap","CoingeckoCryptoMarketSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","AbstractWitness","CoingeckoCryptoMarketSchema","CoingeckoCryptoMarketWitnessConfigSchema","CoingeckoCryptoMarketWitness","AbstractWitness","CoingeckoCryptoMarketWitnessConfigSchema","_a","_b","pricesFromCoingecko","CoingeckoCryptoMarketSchema","CoingeckoCryptoMarketPlugin","createPayloadSetWitnessPlugin","CoingeckoCryptoMarketSchema","PayloadSetSchema","params","CoingeckoCryptoMarketWitness"]}
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'\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'\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'\nimport { pricesFromCoingecko } from './lib'\nimport { CoingeckoCryptoMarketWitnessConfigSchema } from './Schema'\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,SAAS;AAAA,EACT,KAAK;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,KAAK;AAAA,EACL,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;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,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/package.json CHANGED
@@ -11,18 +11,18 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/axios": "^3.5.1",
14
- "@xyo-network/abstract-witness": "^2.107.0",
15
- "@xyo-network/coingecko-crypto-market-payload-plugin": "~2.97.0",
16
- "@xyo-network/module-model": "^2.107.0",
17
- "@xyo-network/payload-model": "^2.107.0",
18
- "@xyo-network/payloadset-plugin": "^2.107.0",
19
- "@xyo-network/witness-model": "^2.107.0"
14
+ "@xyo-network/abstract-witness": "^2.107.4",
15
+ "@xyo-network/coingecko-crypto-market-payload-plugin": "~2.97.1",
16
+ "@xyo-network/module-model": "^2.107.4",
17
+ "@xyo-network/payload-model": "^2.107.4",
18
+ "@xyo-network/payloadset-plugin": "^2.107.4",
19
+ "@xyo-network/witness-model": "^2.107.4"
20
20
  },
21
21
  "devDependencies": {
22
- "@xylabs/ts-scripts-yarn3": "^3.11.8",
23
- "@xylabs/tsconfig": "^3.11.8",
24
- "@xyo-network/account": "^2.107.0",
25
- "@xyo-network/payload-wrapper": "^2.107.0",
22
+ "@xylabs/ts-scripts-yarn3": "^3.11.10",
23
+ "@xylabs/tsconfig": "^3.11.10",
24
+ "@xyo-network/account": "^2.107.4",
25
+ "@xyo-network/payload-wrapper": "^2.107.4",
26
26
  "typescript": "^5.5.2"
27
27
  },
28
28
  "description": "Typescript/Javascript Plugins for XYO Platform",
@@ -64,6 +64,6 @@
64
64
  "url": "https://github.com/XYOracleNetwork/plugins.git"
65
65
  },
66
66
  "sideEffects": false,
67
- "version": "2.97.0",
67
+ "version": "2.97.1",
68
68
  "type": "module"
69
69
  }