@xyo-network/uniswap-crypto-market-plugin 2.99.5 → 2.99.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/browser/Plugin.d.cts +3 -3
  2. package/dist/browser/Plugin.d.mts +3 -3
  3. package/dist/browser/Plugin.d.ts +3 -3
  4. package/dist/browser/index.cjs +57 -67
  5. package/dist/browser/index.cjs.map +1 -1
  6. package/dist/browser/index.mjs +61 -70
  7. package/dist/browser/index.mjs.map +1 -1
  8. package/dist/browser/lib/Ethers/UniSwap3Pair.d.cts +3 -2
  9. package/dist/browser/lib/Ethers/UniSwap3Pair.d.cts.map +1 -1
  10. package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts +3 -2
  11. package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts.map +1 -1
  12. package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts +3 -2
  13. package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts.map +1 -1
  14. package/dist/neutral/Plugin.d.cts +3 -3
  15. package/dist/neutral/Plugin.d.mts +3 -3
  16. package/dist/neutral/Plugin.d.ts +3 -3
  17. package/dist/neutral/index.cjs +57 -67
  18. package/dist/neutral/index.cjs.map +1 -1
  19. package/dist/neutral/index.mjs +61 -70
  20. package/dist/neutral/index.mjs.map +1 -1
  21. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.cts +3 -2
  22. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.cts.map +1 -1
  23. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.mts +3 -2
  24. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.mts.map +1 -1
  25. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.ts +3 -2
  26. package/dist/neutral/lib/Ethers/UniSwap3Pair.d.ts.map +1 -1
  27. package/dist/node/Plugin.d.cts +3 -3
  28. package/dist/node/Plugin.d.mts +3 -3
  29. package/dist/node/Plugin.d.ts +3 -3
  30. package/dist/node/index.cjs +61 -73
  31. package/dist/node/index.cjs.map +1 -1
  32. package/dist/node/index.mjs +65 -76
  33. package/dist/node/index.mjs.map +1 -1
  34. package/dist/node/lib/Ethers/UniSwap3Pair.d.cts +3 -2
  35. package/dist/node/lib/Ethers/UniSwap3Pair.d.cts.map +1 -1
  36. package/dist/node/lib/Ethers/UniSwap3Pair.d.mts +3 -2
  37. package/dist/node/lib/Ethers/UniSwap3Pair.d.mts.map +1 -1
  38. package/dist/node/lib/Ethers/UniSwap3Pair.d.ts +3 -2
  39. package/dist/node/lib/Ethers/UniSwap3Pair.d.ts.map +1 -1
  40. package/package.json +17 -17
@@ -2,11 +2,7 @@
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __reflectGet = Reflect.get;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
6
  var __export = (target, all) => {
11
7
  for (var name in all)
12
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -20,8 +16,6 @@ var __copyProps = (to, from, except, desc) => {
20
16
  return to;
21
17
  };
22
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
24
- var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
25
19
 
26
20
  // src/index.ts
27
21
  var src_exports = {};
@@ -39,22 +33,22 @@ __export(src_exports, {
39
33
  module.exports = __toCommonJS(src_exports);
40
34
 
41
35
  // src/lib/logErrors.ts
42
- var logErrors = /* @__PURE__ */ __name((func) => {
36
+ var logErrors = (func) => {
43
37
  try {
44
38
  return func();
45
39
  } catch (ex) {
46
40
  console.error(ex);
47
41
  throw ex;
48
42
  }
49
- }, "logErrors");
50
- var logErrorsAsync = /* @__PURE__ */ __name(async (func) => {
43
+ };
44
+ var logErrorsAsync = async (func) => {
51
45
  try {
52
46
  return await func();
53
47
  } catch (ex) {
54
48
  console.error(ex);
55
49
  throw ex;
56
50
  }
57
- }, "logErrorsAsync");
51
+ };
58
52
 
59
53
  // src/lib/Ethers/UniSwap3Pair.ts
60
54
  var import_assert = require("@xylabs/assert");
@@ -65,7 +59,7 @@ var import_uniswap_typechain = require("@xyo-network/uniswap-typechain");
65
59
  var import_uniswap_v3_sdk = require("@xyo-network/uniswap-v3-sdk");
66
60
 
67
61
  // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
68
- var _EthersUniswap3PoolSlot0Wrapper = class _EthersUniswap3PoolSlot0Wrapper {
62
+ var EthersUniswap3PoolSlot0Wrapper = class {
69
63
  values;
70
64
  constructor(values) {
71
65
  this.values = values;
@@ -92,35 +86,27 @@ var _EthersUniswap3PoolSlot0Wrapper = class _EthersUniswap3PoolSlot0Wrapper {
92
86
  return this.values[6];
93
87
  }
94
88
  };
95
- __name(_EthersUniswap3PoolSlot0Wrapper, "EthersUniswap3PoolSlot0Wrapper");
96
- var EthersUniswap3PoolSlot0Wrapper = _EthersUniswap3PoolSlot0Wrapper;
97
89
 
98
90
  // src/lib/Ethers/UniSwap3Pair.ts
99
- var ChainId;
100
- (function(ChainId2) {
91
+ var ChainId = /* @__PURE__ */ ((ChainId2) => {
101
92
  ChainId2[ChainId2["MAINNET"] = 1] = "MAINNET";
102
93
  ChainId2[ChainId2["ROPSTEN"] = 3] = "ROPSTEN";
103
94
  ChainId2[ChainId2["RINKEBY"] = 4] = "RINKEBY";
104
95
  ChainId2[ChainId2["G\xD6RLI"] = 5] = "G\xD6RLI";
105
96
  ChainId2[ChainId2["KOVAN"] = 42] = "KOVAN";
106
- })(ChainId || (ChainId = {}));
107
- var waitNotNull = /* @__PURE__ */ __name(async (closure) => {
97
+ return ChainId2;
98
+ })(ChainId || {});
99
+ var waitNotNull = async (closure) => {
108
100
  while (closure() === null) await (0, import_delay.delay)(10);
109
- }, "waitNotNull");
110
- var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
101
+ };
102
+ var EthersUniSwap3Pair = class {
111
103
  address;
112
104
  provider;
113
105
  _pool;
114
106
  _poolContract;
115
107
  _slot0;
116
- _tokenContracts = [
117
- void 0,
118
- void 0
119
- ];
120
- _tokens = [
121
- void 0,
122
- void 0
123
- ];
108
+ _tokenContracts = [void 0, void 0];
109
+ _tokens = [void 0, void 0];
124
110
  constructor(address, provider) {
125
111
  this.address = address;
126
112
  this.provider = provider;
@@ -130,7 +116,14 @@ var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
130
116
  await waitNotNull(() => this._pool);
131
117
  this._pool = this._pool || null;
132
118
  const slot0 = await this.slot0();
133
- this._pool = this._pool === null ? new import_uniswap_v3_sdk.Pool(await this.token(0), await this.token(1), Number(slot0.feeProtocol), `0x${slot0.sqrtPriceX96.toString(16)}`, `0x${(await this.poolContract().liquidity()).toString(16)}`, Number(slot0.tick)) : this._pool;
119
+ this._pool = this._pool === null ? new import_uniswap_v3_sdk.Pool(
120
+ await this.token(0),
121
+ await this.token(1),
122
+ Number(slot0.feeProtocol),
123
+ `0x${slot0.sqrtPriceX96.toString(16)}`,
124
+ `0x${(await this.poolContract().liquidity()).toString(16)}`,
125
+ Number(slot0.tick)
126
+ ) : this._pool;
134
127
  return (0, import_assert.assertEx)(this._pool);
135
128
  });
136
129
  }
@@ -142,23 +135,18 @@ var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
142
135
  }
143
136
  async price() {
144
137
  return await logErrorsAsync(async () => {
145
- const tokenIndexes = [
146
- 0,
147
- 1
148
- ];
138
+ const tokenIndexes = [0, 1];
149
139
  const pool = await this.pool();
150
140
  const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
151
141
  const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
152
142
  const tokenPrices = tokens.map((token) => Number.parseFloat(pool.priceOf(token).toSignificant()));
153
143
  const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase());
154
144
  const result = {
155
- tokens: await Promise.all(tokenIndexes.map(async (value) => {
156
- return {
157
- address: await tokenContracts[value].getAddress(),
158
- symbol: tokenSymbols[value],
159
- value: tokenPrices[value]
160
- };
161
- }))
145
+ tokens: await Promise.all(
146
+ tokenIndexes.map(async (value) => {
147
+ return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] };
148
+ })
149
+ )
162
150
  };
163
151
  return result;
164
152
  });
@@ -180,7 +168,13 @@ var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
180
168
  await waitNotNull(() => this._tokens[index]);
181
169
  this._tokens[index] = this._tokens[index] || null;
182
170
  const tokenContract = await this.tokenContract(index);
183
- this._tokens[index] = this._tokens[index] ?? new import_uniswap_sdk_core.Token(1, await tokenContract.getAddress(), Number(await tokenContract.decimals()), await tokenContract.symbol(), await tokenContract.name());
171
+ this._tokens[index] = this._tokens[index] ?? new import_uniswap_sdk_core.Token(
172
+ 1 /* MAINNET */,
173
+ await tokenContract.getAddress(),
174
+ Number(await tokenContract.decimals()),
175
+ await tokenContract.symbol(),
176
+ await tokenContract.name()
177
+ );
184
178
  return (0, import_assert.assertEx)(this._tokens[index]);
185
179
  });
186
180
  }
@@ -193,27 +187,27 @@ var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
193
187
  });
194
188
  }
195
189
  };
196
- __name(_EthersUniSwap3Pair, "EthersUniSwap3Pair");
197
- var EthersUniSwap3Pair = _EthersUniSwap3Pair;
198
190
 
199
191
  // src/lib/Ethers/createUniswapPoolContracts.ts
200
- var createUniswapPoolContracts = /* @__PURE__ */ __name((provider, contracts) => {
192
+ var createUniswapPoolContracts = (provider, contracts) => {
201
193
  return logErrors(() => {
202
194
  return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
203
195
  });
204
- }, "createUniswapPoolContracts");
196
+ };
205
197
 
206
198
  // src/lib/pricesFromUniswap3.ts
207
199
  var import_promise = require("@xylabs/promise");
208
- var pricesFromUniswap3 = /* @__PURE__ */ __name(async (pools) => {
200
+ var pricesFromUniswap3 = async (pools) => {
209
201
  return await logErrorsAsync(async () => {
210
- const promiseResults = await Promise.allSettled(pools.map(async (pool) => {
211
- const result = await pool.price();
212
- return result;
213
- }));
202
+ const promiseResults = await Promise.allSettled(
203
+ pools.map(async (pool) => {
204
+ const result = await pool.price();
205
+ return result;
206
+ })
207
+ );
214
208
  return promiseResults.filter(import_promise.fulfilled).map((result) => result.value);
215
209
  });
216
- }, "pricesFromUniswap3");
210
+ };
217
211
 
218
212
  // src/lib/UniswapPoolContracts.ts
219
213
  var UniswapPoolContracts = [
@@ -254,7 +248,9 @@ var import_uniswap_crypto_market_payload_plugin2 = require("@xyo-network/uniswap
254
248
  var import_assert2 = require("@xylabs/assert");
255
249
  var import_abstract_witness = require("@xyo-network/abstract-witness");
256
250
  var import_uniswap_crypto_market_payload_plugin = require("@xyo-network/uniswap-crypto-market-payload-plugin");
257
- var _UniswapCryptoMarketWitness = class _UniswapCryptoMarketWitness extends import_abstract_witness.AbstractWitness {
251
+ var UniswapCryptoMarketWitness = class extends import_abstract_witness.AbstractWitness {
252
+ static configSchemas = [...super.configSchemas, import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema];
253
+ static defaultConfigSchema = import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema;
258
254
  pairs;
259
255
  get provider() {
260
256
  return this.params.provider;
@@ -268,37 +264,29 @@ var _UniswapCryptoMarketWitness = class _UniswapCryptoMarketWitness extends impo
268
264
  schema: import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketSchema,
269
265
  timestamp
270
266
  };
271
- return [
272
- payload
273
- ];
267
+ return [payload];
274
268
  }
275
269
  async startHandler() {
276
270
  var _a;
277
271
  await super.startHandler();
278
- this.pairs = createUniswapPoolContracts((0, import_assert2.assertEx)(this.provider, () => "Provider Required"), ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts);
272
+ this.pairs = createUniswapPoolContracts(
273
+ (0, import_assert2.assertEx)(this.provider, () => "Provider Required"),
274
+ ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts
275
+ );
279
276
  return true;
280
277
  }
281
278
  };
282
- __name(_UniswapCryptoMarketWitness, "UniswapCryptoMarketWitness");
283
- __publicField(_UniswapCryptoMarketWitness, "configSchemas", [
284
- ...__superGet(_UniswapCryptoMarketWitness, _UniswapCryptoMarketWitness, "configSchemas"),
285
- import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema
286
- ]);
287
- __publicField(_UniswapCryptoMarketWitness, "defaultConfigSchema", import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema);
288
- var UniswapCryptoMarketWitness = _UniswapCryptoMarketWitness;
289
279
 
290
280
  // src/Plugin.ts
291
- var UniswapCryptoMarketPlugin = /* @__PURE__ */ __name(() => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)({
292
- required: {
293
- [import_uniswap_crypto_market_payload_plugin2.UniswapCryptoMarketSchema]: 1
294
- },
295
- schema: import_payload_model.PayloadSetSchema
296
- }, {
297
- witness: /* @__PURE__ */ __name(async (params) => {
298
- const result = await UniswapCryptoMarketWitness.create(params);
299
- return result;
300
- }, "witness")
301
- }), "UniswapCryptoMarketPlugin");
281
+ var UniswapCryptoMarketPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
282
+ { required: { [import_uniswap_crypto_market_payload_plugin2.UniswapCryptoMarketSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
283
+ {
284
+ witness: async (params) => {
285
+ const result = await UniswapCryptoMarketWitness.create(params);
286
+ return result;
287
+ }
288
+ }
289
+ );
302
290
  // Annotate the CommonJS export names for ESM import in node:
303
291
  0 && (module.exports = {
304
292
  ChainId,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["export * from './Config.ts'\nexport * from './lib/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts'\nexport * from './Witness.ts'\n","export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { Token } from '@xyo-network/uniswap-sdk-core'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\nimport { Pool } from '@xyo-network/uniswap-v3-sdk'\nimport { Provider } from 'ethers'\n\nimport { logErrors, logErrorsAsync } from '../logErrors.ts'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts'\n\nexport enum ChainId {\n MAINNET = 1,\n ROPSTEN = 3,\n RINKEBY = 4,\n GÖRLI = 5,\n KOVAN = 42,\n}\n\n// null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) await delay(10)\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool\n = this._pool === null\n ? new Pool(\n await this.token(0),\n await this.token(1),\n Number(slot0.feeProtocol),\n `0x${slot0.sqrtPriceX96.toString(16)}`,\n `0x${(await this.poolContract().liquidity()).toString(16)}`,\n Number(slot0.tick),\n )\n : this._pool\n return assertEx(this._pool)\n })\n }\n\n poolContract() {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map(value => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map(value => this.tokenContract(value)))\n const tokenPrices = tokens.map(token => Number.parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: await Promise.all(\n tokenIndexes.map(async (value) => {\n return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n ),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n if (this._slot0 === null) {\n const poolContract = this.poolContract()\n const slot = await poolContract.slot0()\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(slot)\n }\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index]\n = this._tokens[index]\n ?? new Token(\n ChainId.MAINNET,\n await tokenContract.getAddress(),\n Number(await tokenContract.decimals()),\n await tokenContract.symbol(),\n await tokenContract.name(),\n )\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index]\n = this._tokenContracts[index]\n ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from 'ethers'\n\nimport { logErrors } from '../logErrors.ts'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair.ts'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map(contract => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers/index.ts'\nimport { logErrorsAsync } from './logErrors.ts'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map(result => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /* xyo/weth */ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /* xyo/usdt */ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /* xyo/dai */ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /* wbtc/xyo */ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /* link/xyo */ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /* wbtc/weth */ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /* dai/usdc */ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /* usdc/weth */ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /* usdc/weth */ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /* dai/usdc */ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /* frax/usdc */ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /* wbtc/usdc */ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /* usdc/usdt */ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { UniswapCryptoMarketWitness } from './Witness.ts'\n\nexport const UniswapCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<UniswapCryptoMarketWitness>(\n { required: { [UniswapCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UniswapCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport {\n UniswapCryptoMarketPayload,\n UniswapCryptoMarketSchema,\n UniswapCryptoMarketWitnessConfigSchema,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Provider } from 'ethers'\n\nimport { UniswapCryptoMarketWitnessConfig } from './Config.ts'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.ts'\n\nexport type UniswapCryptoMarketWitnessParams = WitnessParams<\n AnyConfigSchema<UniswapCryptoMarketWitnessConfig>,\n {\n provider?: Provider\n }\n>\n\nexport class UniswapCryptoMarketWitness<\n TParams extends UniswapCryptoMarketWitnessParams = UniswapCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UniswapCryptoMarketWitnessConfigSchema\n\n protected pairs?: EthersUniSwap3Pair[]\n protected get provider() {\n return this.params.provider\n }\n\n protected override async observeHandler(): Promise<Payload[]> {\n await this.started('throw')\n const pairs = await pricesFromUniswap3(assertEx(this.pairs))\n const timestamp = Date.now()\n\n const payload: UniswapCryptoMarketPayload = {\n pairs,\n schema: UniswapCryptoMarketSchema,\n timestamp,\n }\n\n return [payload]\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this.pairs = createUniswapPoolContracts(\n assertEx(this.provider, () => 'Provider Required'),\n this.config?.pools ?? UniswapPoolContracts,\n )\n return true\n }\n}\n"],"mappings":"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","names":["logErrors","func","ex","console","error","logErrorsAsync","EthersUniswap3PoolSlot0Wrapper","values","constructor","feeProtocol","observationCardinality","observationCardinalityNext","observationIndex","sqrtPriceX96","tick","unlocked","ChainId","waitNotNull","closure","delay","EthersUniSwap3Pair","address","provider","_pool","_poolContract","_slot0","_tokenContracts","undefined","_tokens","constructor","pool","logErrorsAsync","slot0","Pool","token","Number","feeProtocol","sqrtPriceX96","toString","poolContract","liquidity","tick","assertEx","logErrors","IUniswapV3Pool__factory","connect","price","tokenIndexes","tokens","Promise","all","map","value","tokenContracts","tokenContract","tokenPrices","parseFloat","priceOf","toSignificant","tokenSymbols","index","symbol","toLowerCase","result","getAddress","slot","EthersUniswap3PoolSlot0Wrapper","Token","decimals","name","IERC20Metadata__factory","token0","token1","createUniswapPoolContracts","provider","contracts","logErrors","map","contract","EthersUniSwap3Pair","pricesFromUniswap3","pools","logErrorsAsync","promiseResults","Promise","allSettled","map","pool","result","price","filter","fulfilled","value","UniswapPoolContracts","import_uniswap_crypto_market_payload_plugin","import_assert","UniswapCryptoMarketWitness","AbstractWitness","pairs","provider","params","observeHandler","started","pricesFromUniswap3","assertEx","timestamp","Date","now","payload","schema","UniswapCryptoMarketSchema","startHandler","createUniswapPoolContracts","config","pools","UniswapPoolContracts","configSchemas","UniswapCryptoMarketWitnessConfigSchema","defaultConfigSchema","UniswapCryptoMarketPlugin","createPayloadSetWitnessPlugin","required","UniswapCryptoMarketSchema","schema","PayloadSetSchema","witness","params","result","UniswapCryptoMarketWitness","create"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["export * from './Config.ts'\nexport * from './lib/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts'\nexport * from './Witness.ts'\n","export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { Token } from '@xyo-network/uniswap-sdk-core'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\nimport { Pool } from '@xyo-network/uniswap-v3-sdk'\nimport { Provider } from 'ethers'\n\nimport { logErrors, logErrorsAsync } from '../logErrors.ts'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts'\n\nexport enum ChainId {\n MAINNET = 1,\n ROPSTEN = 3,\n RINKEBY = 4,\n GÖRLI = 5,\n KOVAN = 42,\n}\n\n// null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) await delay(10)\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool\n = this._pool === null\n ? new Pool(\n await this.token(0),\n await this.token(1),\n Number(slot0.feeProtocol),\n `0x${slot0.sqrtPriceX96.toString(16)}`,\n `0x${(await this.poolContract().liquidity()).toString(16)}`,\n Number(slot0.tick),\n )\n : this._pool\n return assertEx(this._pool)\n })\n }\n\n poolContract() {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map(value => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map(value => this.tokenContract(value)))\n const tokenPrices = tokens.map(token => Number.parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: await Promise.all(\n tokenIndexes.map(async (value) => {\n return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n ),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n if (this._slot0 === null) {\n const poolContract = this.poolContract()\n const slot = await poolContract.slot0()\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(slot)\n }\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index]\n = this._tokens[index]\n ?? new Token(\n ChainId.MAINNET,\n await tokenContract.getAddress(),\n Number(await tokenContract.decimals()),\n await tokenContract.symbol(),\n await tokenContract.name(),\n )\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index]\n = this._tokenContracts[index]\n ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from 'ethers'\n\nimport { logErrors } from '../logErrors.ts'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair.ts'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map(contract => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers/index.ts'\nimport { logErrorsAsync } from './logErrors.ts'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map(result => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /* xyo/weth */ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /* xyo/usdt */ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /* xyo/dai */ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /* wbtc/xyo */ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /* link/xyo */ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /* wbtc/weth */ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /* dai/usdc */ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /* usdc/weth */ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /* usdc/weth */ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /* dai/usdc */ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /* frax/usdc */ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /* wbtc/usdc */ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /* usdc/usdt */ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { UniswapCryptoMarketWitness } from './Witness.ts'\n\nexport const UniswapCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<UniswapCryptoMarketWitness>(\n { required: { [UniswapCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UniswapCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport {\n UniswapCryptoMarketPayload,\n UniswapCryptoMarketSchema,\n UniswapCryptoMarketWitnessConfigSchema,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Provider } from 'ethers'\n\nimport { UniswapCryptoMarketWitnessConfig } from './Config.ts'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.ts'\n\nexport type UniswapCryptoMarketWitnessParams = WitnessParams<\n AnyConfigSchema<UniswapCryptoMarketWitnessConfig>,\n {\n provider?: Provider\n }\n>\n\nexport class UniswapCryptoMarketWitness<\n TParams extends UniswapCryptoMarketWitnessParams = UniswapCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UniswapCryptoMarketWitnessConfigSchema\n\n protected pairs?: EthersUniSwap3Pair[]\n protected get provider() {\n return this.params.provider\n }\n\n protected override async observeHandler(): Promise<Payload[]> {\n await this.started('throw')\n const pairs = await pricesFromUniswap3(assertEx(this.pairs))\n const timestamp = Date.now()\n\n const payload: UniswapCryptoMarketPayload = {\n pairs,\n schema: UniswapCryptoMarketSchema,\n timestamp,\n }\n\n return [payload]\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this.pairs = createUniswapPoolContracts(\n assertEx(this.provider, () => 'Provider Required'),\n this.config?.pools ?? UniswapPoolContracts,\n )\n return true\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,YAAY,CAAI,SAAkB;AAC7C,MAAI;AACF,WAAO,KAAK;AAAA,EACd,SAAS,IAAI;AACX,YAAQ,MAAM,EAAE;AAChB,UAAM;AAAA,EACR;AACF;AAEO,IAAM,iBAAiB,OAAU,SAA2B;AACjE,MAAI;AACF,WAAO,MAAM,KAAK;AAAA,EACpB,SAAS,IAAI;AACX,YAAQ,MAAM,EAAE;AAChB,UAAM;AAAA,EACR;AACF;;;AChBA,oBAAyB;AACzB,mBAAsB;AACtB,uBAAwD;AACxD,8BAAsB;AACtB,+BAAwD;AACxD,4BAAqB;;;ACHd,IAAM,iCAAN,MAAqC;AAAA,EAChC;AAAA,EACV,YAAY,QAAoC;AAC9C,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,yBAAyB;AAC3B,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,6BAA6B;AAC/B,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,mBAAmB;AACrB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AACF;;;ADxBO,IAAK,UAAL,kBAAKA,aAAL;AACL,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,cAAQ,KAAR;AACA,EAAAA,kBAAA,WAAQ,MAAR;AALU,SAAAA;AAAA,GAAA;AASZ,IAAM,cAAc,OAAO,YAA2B;AACpD,SAAO,QAAQ,MAAM,KAAM,WAAM,oBAAM,EAAE;AAC3C;AAEO,IAAM,qBAAN,MAAyB;AAAA,EACpB;AAAA,EACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAyD,CAAC,QAAW,MAAS;AAAA,EAC9E,UAAwC,CAAC,QAAW,MAAS;AAAA,EAErE,YAAY,SAAiB,UAAoB;AAC/C,SAAK,UAAU;AACf,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAM,OAAsB;AAC1B,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,KAAK;AAClC,WAAK,QAAQ,KAAK,SAAS;AAC3B,YAAM,QAAQ,MAAM,KAAK,MAAM;AAC/B,WAAK,QACD,KAAK,UAAU,OACb,IAAI;AAAA,QACJ,MAAM,KAAK,MAAM,CAAC;AAAA,QAClB,MAAM,KAAK,MAAM,CAAC;AAAA,QAClB,OAAO,MAAM,WAAW;AAAA,QACxB,KAAK,MAAM,aAAa,SAAS,EAAE,CAAC;AAAA,QACpC,MAAM,MAAM,KAAK,aAAa,EAAE,UAAU,GAAG,SAAS,EAAE,CAAC;AAAA,QACzD,OAAO,MAAM,IAAI;AAAA,MACnB,IACE,KAAK;AACX,iBAAO,wBAAS,KAAK,KAAK;AAAA,IAC5B,CAAC;AAAA,EACH;AAAA,EAEA,eAAe;AACb,WAAO,UAAU,MAAM;AACrB,WAAK,gBAAgB,KAAK,iBAAiB,iDAAwB,QAAQ,KAAK,SAAS,KAAK,QAAQ;AACtG,iBAAO,wBAAS,KAAK,aAAa;AAAA,IACpC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAAQ;AACZ,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,eAA0B,CAAC,GAAG,CAAC;AACrC,YAAM,OAAO,MAAM,KAAK,KAAK;AAC7B,YAAM,SAAS,MAAM,QAAQ,IAAI,aAAa,IAAI,WAAS,KAAK,MAAM,KAAK,CAAC,CAAC;AAC7E,YAAM,iBAAiB,MAAM,QAAQ,IAAI,aAAa,IAAI,WAAS,KAAK,cAAc,KAAK,CAAC,CAAC;AAC7F,YAAM,cAAc,OAAO,IAAI,WAAS,OAAO,WAAW,KAAK,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC;AAC9F,YAAM,eAAe,OAAO,IAAI,CAAC,OAAO,cAAU,wBAAS,MAAM,QAAQ,MAAM,SAAS,KAAK,mBAAmB,EAAE,YAAY,CAAC;AAC/H,YAAM,SAAS;AAAA,QACb,QAAQ,MAAM,QAAQ;AAAA,UACpB,aAAa,IAAI,OAAO,UAAU;AAChC,mBAAO,EAAE,SAAS,MAAM,eAAe,KAAK,EAAE,WAAW,GAAG,QAAQ,aAAa,KAAK,GAAG,OAAO,YAAY,KAAK,EAAE;AAAA,UACrH,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAAiD;AACrD,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,MAAM;AACnC,WAAK,SAAS,KAAK,UAAU;AAC7B,UAAI,KAAK,WAAW,MAAM;AACxB,cAAM,eAAe,KAAK,aAAa;AACvC,cAAM,OAAO,MAAM,aAAa,MAAM;AACtC,aAAK,SAAS,KAAK,UAAU,IAAI,+BAA+B,IAAI;AAAA,MACtE;AACA,iBAAO,wBAAS,KAAK,MAAM;AAAA,IAC7B,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAM,OAA8B;AACxC,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,QAAQ,KAAK,CAAC;AAC3C,WAAK,QAAQ,KAAK,IAAI,KAAK,QAAQ,KAAK,KAAK;AAC7C,YAAM,gBAAgB,MAAM,KAAK,cAAc,KAAK;AACpD,WAAK,QAAQ,KAAK,IACd,KAAK,QAAQ,KAAK,KACjB,IAAI;AAAA,QACL;AAAA,QACA,MAAM,cAAc,WAAW;AAAA,QAC/B,OAAO,MAAM,cAAc,SAAS,CAAC;AAAA,QACrC,MAAM,cAAc,OAAO;AAAA,QAC3B,MAAM,cAAc,KAAK;AAAA,MAC3B;AACF,iBAAO,wBAAS,KAAK,QAAQ,KAAK,CAAC;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,cAAc,OAAuC;AACzD,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,gBAAgB,KAAK,CAAC;AACnD,WAAK,gBAAgB,KAAK,IAAI,KAAK,gBAAgB,KAAK,KAAK;AAC7D,WAAK,gBAAgB,KAAK,IACtB,KAAK,gBAAgB,KAAK,KACzB,yCAAwB,QAAQ,OAAO,UAAU,IAAI,KAAK,aAAa,EAAE,OAAO,IAAI,KAAK,aAAa,EAAE,OAAO,IAAI,KAAK,QAAQ;AACrI,iBAAO,wBAAS,KAAK,gBAAgB,KAAK,CAAC;AAAA,IAC7C,CAAC;AAAA,EACH;AACF;;;AEzHO,IAAM,6BAA6B,CAAC,UAAoB,cAAwB;AACrF,SAAO,UAAU,MAAM;AACrB,WAAO,UAAU,IAAI,cAAY,IAAI,mBAAmB,UAAU,QAAQ,CAAC;AAAA,EAC7E,CAAC;AACH;;;ACTA,qBAA0B;AAMnB,IAAM,qBAAqB,OAAO,UAA8D;AACrG,SAAO,MAAM,eAAe,YAAY;AACtC,UAAM,iBAAiB,MAAM,QAAQ;AAAA,MACnC,MAAM,IAAI,OAAO,SAAqC;AACpD,cAAM,SAAS,MAAM,KAAK,MAAM;AAChC,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AACA,WAAO,eAAe,OAAO,wBAAS,EAAE,IAAI,YAAU,OAAO,KAAK;AAAA,EACpE,CAAC;AACH;;;AChBO,IAAM,uBAAuB;AAAA;AAAA,EACnB;AAAA;AAAA,EACA;AAAA;AAAA,EACD;AAAA;AAAA,EACC;AAAA;AAAA,EACA;AAAA;AAAA,EACC;AAAA;AAAA,EACD;AAAA;AAAA,EACC;AAAA;AAAA,EACA;AAAA;AAAA,EACD;AAAA;AAAA,EACC;AAAA;AAAA,EACA;AAAA;AAAA,EACA;AAClB;;;ACdA,2BAAiC;AACjC,+BAA8C;AAC9C,IAAAC,+CAA0C;;;ACF1C,IAAAC,iBAAyB;AACzB,8BAAgC;AAGhC,kDAIO;AAcA,IAAM,6BAAN,cAEG,wCAAyB;AAAA,EACjC,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,kFAAsC;AAAA,EAClH,OAAyB,sBAA8B;AAAA,EAE7C;AAAA,EACV,IAAc,WAAW;AACvB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,MAAyB,iBAAqC;AAC5D,UAAM,KAAK,QAAQ,OAAO;AAC1B,UAAM,QAAQ,MAAM,uBAAmB,yBAAS,KAAK,KAAK,CAAC;AAC3D,UAAM,YAAY,KAAK,IAAI;AAE3B,UAAM,UAAsC;AAAA,MAC1C;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AAEA,WAAO,CAAC,OAAO;AAAA,EACjB;AAAA,EAEA,MAAyB,eAAe;AA/C1C;AAgDI,UAAM,MAAM,aAAa;AACzB,SAAK,QAAQ;AAAA,UACX,yBAAS,KAAK,UAAU,MAAM,mBAAmB;AAAA,QACjD,UAAK,WAAL,mBAAa,UAAS;AAAA,IACxB;AACA,WAAO;AAAA,EACT;AACF;;;ADjDO,IAAM,4BAA4B,UACvC;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,sEAAyB,GAAG,EAAE,GAAG,QAAQ,sCAAiB;AAAA,EACzE;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,2BAA2B,OAAO,MAAM;AAC7D,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["ChainId","import_uniswap_crypto_market_payload_plugin","import_assert"]}
@@ -1,28 +1,20 @@
1
- var __defProp = Object.defineProperty;
2
- var __getProtoOf = Object.getPrototypeOf;
3
- var __reflectGet = Reflect.get;
4
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
- var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
8
-
9
1
  // src/lib/logErrors.ts
10
- var logErrors = /* @__PURE__ */ __name((func) => {
2
+ var logErrors = (func) => {
11
3
  try {
12
4
  return func();
13
5
  } catch (ex) {
14
6
  console.error(ex);
15
7
  throw ex;
16
8
  }
17
- }, "logErrors");
18
- var logErrorsAsync = /* @__PURE__ */ __name(async (func) => {
9
+ };
10
+ var logErrorsAsync = async (func) => {
19
11
  try {
20
12
  return await func();
21
13
  } catch (ex) {
22
14
  console.error(ex);
23
15
  throw ex;
24
16
  }
25
- }, "logErrorsAsync");
17
+ };
26
18
 
27
19
  // src/lib/Ethers/UniSwap3Pair.ts
28
20
  import { assertEx } from "@xylabs/assert";
@@ -33,7 +25,7 @@ import { IUniswapV3Pool__factory } from "@xyo-network/uniswap-typechain";
33
25
  import { Pool } from "@xyo-network/uniswap-v3-sdk";
34
26
 
35
27
  // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
36
- var _EthersUniswap3PoolSlot0Wrapper = class _EthersUniswap3PoolSlot0Wrapper {
28
+ var EthersUniswap3PoolSlot0Wrapper = class {
37
29
  values;
38
30
  constructor(values) {
39
31
  this.values = values;
@@ -60,35 +52,27 @@ var _EthersUniswap3PoolSlot0Wrapper = class _EthersUniswap3PoolSlot0Wrapper {
60
52
  return this.values[6];
61
53
  }
62
54
  };
63
- __name(_EthersUniswap3PoolSlot0Wrapper, "EthersUniswap3PoolSlot0Wrapper");
64
- var EthersUniswap3PoolSlot0Wrapper = _EthersUniswap3PoolSlot0Wrapper;
65
55
 
66
56
  // src/lib/Ethers/UniSwap3Pair.ts
67
- var ChainId;
68
- (function(ChainId2) {
57
+ var ChainId = /* @__PURE__ */ ((ChainId2) => {
69
58
  ChainId2[ChainId2["MAINNET"] = 1] = "MAINNET";
70
59
  ChainId2[ChainId2["ROPSTEN"] = 3] = "ROPSTEN";
71
60
  ChainId2[ChainId2["RINKEBY"] = 4] = "RINKEBY";
72
61
  ChainId2[ChainId2["G\xD6RLI"] = 5] = "G\xD6RLI";
73
62
  ChainId2[ChainId2["KOVAN"] = 42] = "KOVAN";
74
- })(ChainId || (ChainId = {}));
75
- var waitNotNull = /* @__PURE__ */ __name(async (closure) => {
63
+ return ChainId2;
64
+ })(ChainId || {});
65
+ var waitNotNull = async (closure) => {
76
66
  while (closure() === null) await delay(10);
77
- }, "waitNotNull");
78
- var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
67
+ };
68
+ var EthersUniSwap3Pair = class {
79
69
  address;
80
70
  provider;
81
71
  _pool;
82
72
  _poolContract;
83
73
  _slot0;
84
- _tokenContracts = [
85
- void 0,
86
- void 0
87
- ];
88
- _tokens = [
89
- void 0,
90
- void 0
91
- ];
74
+ _tokenContracts = [void 0, void 0];
75
+ _tokens = [void 0, void 0];
92
76
  constructor(address, provider) {
93
77
  this.address = address;
94
78
  this.provider = provider;
@@ -98,7 +82,14 @@ var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
98
82
  await waitNotNull(() => this._pool);
99
83
  this._pool = this._pool || null;
100
84
  const slot0 = await this.slot0();
101
- this._pool = this._pool === null ? new Pool(await this.token(0), await this.token(1), Number(slot0.feeProtocol), `0x${slot0.sqrtPriceX96.toString(16)}`, `0x${(await this.poolContract().liquidity()).toString(16)}`, Number(slot0.tick)) : this._pool;
85
+ this._pool = this._pool === null ? new Pool(
86
+ await this.token(0),
87
+ await this.token(1),
88
+ Number(slot0.feeProtocol),
89
+ `0x${slot0.sqrtPriceX96.toString(16)}`,
90
+ `0x${(await this.poolContract().liquidity()).toString(16)}`,
91
+ Number(slot0.tick)
92
+ ) : this._pool;
102
93
  return assertEx(this._pool);
103
94
  });
104
95
  }
@@ -110,23 +101,18 @@ var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
110
101
  }
111
102
  async price() {
112
103
  return await logErrorsAsync(async () => {
113
- const tokenIndexes = [
114
- 0,
115
- 1
116
- ];
104
+ const tokenIndexes = [0, 1];
117
105
  const pool = await this.pool();
118
106
  const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
119
107
  const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
120
108
  const tokenPrices = tokens.map((token) => Number.parseFloat(pool.priceOf(token).toSignificant()));
121
109
  const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase());
122
110
  const result = {
123
- tokens: await Promise.all(tokenIndexes.map(async (value) => {
124
- return {
125
- address: await tokenContracts[value].getAddress(),
126
- symbol: tokenSymbols[value],
127
- value: tokenPrices[value]
128
- };
129
- }))
111
+ tokens: await Promise.all(
112
+ tokenIndexes.map(async (value) => {
113
+ return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] };
114
+ })
115
+ )
130
116
  };
131
117
  return result;
132
118
  });
@@ -148,7 +134,13 @@ var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
148
134
  await waitNotNull(() => this._tokens[index]);
149
135
  this._tokens[index] = this._tokens[index] || null;
150
136
  const tokenContract = await this.tokenContract(index);
151
- this._tokens[index] = this._tokens[index] ?? new Token(1, await tokenContract.getAddress(), Number(await tokenContract.decimals()), await tokenContract.symbol(), await tokenContract.name());
137
+ this._tokens[index] = this._tokens[index] ?? new Token(
138
+ 1 /* MAINNET */,
139
+ await tokenContract.getAddress(),
140
+ Number(await tokenContract.decimals()),
141
+ await tokenContract.symbol(),
142
+ await tokenContract.name()
143
+ );
152
144
  return assertEx(this._tokens[index]);
153
145
  });
154
146
  }
@@ -161,27 +153,27 @@ var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
161
153
  });
162
154
  }
163
155
  };
164
- __name(_EthersUniSwap3Pair, "EthersUniSwap3Pair");
165
- var EthersUniSwap3Pair = _EthersUniSwap3Pair;
166
156
 
167
157
  // src/lib/Ethers/createUniswapPoolContracts.ts
168
- var createUniswapPoolContracts = /* @__PURE__ */ __name((provider, contracts) => {
158
+ var createUniswapPoolContracts = (provider, contracts) => {
169
159
  return logErrors(() => {
170
160
  return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
171
161
  });
172
- }, "createUniswapPoolContracts");
162
+ };
173
163
 
174
164
  // src/lib/pricesFromUniswap3.ts
175
165
  import { fulfilled } from "@xylabs/promise";
176
- var pricesFromUniswap3 = /* @__PURE__ */ __name(async (pools) => {
166
+ var pricesFromUniswap3 = async (pools) => {
177
167
  return await logErrorsAsync(async () => {
178
- const promiseResults = await Promise.allSettled(pools.map(async (pool) => {
179
- const result = await pool.price();
180
- return result;
181
- }));
168
+ const promiseResults = await Promise.allSettled(
169
+ pools.map(async (pool) => {
170
+ const result = await pool.price();
171
+ return result;
172
+ })
173
+ );
182
174
  return promiseResults.filter(fulfilled).map((result) => result.value);
183
175
  });
184
- }, "pricesFromUniswap3");
176
+ };
185
177
 
186
178
  // src/lib/UniswapPoolContracts.ts
187
179
  var UniswapPoolContracts = [
@@ -221,8 +213,13 @@ import { UniswapCryptoMarketSchema as UniswapCryptoMarketSchema2 } from "@xyo-ne
221
213
  // src/Witness.ts
222
214
  import { assertEx as assertEx2 } from "@xylabs/assert";
223
215
  import { AbstractWitness } from "@xyo-network/abstract-witness";
224
- import { UniswapCryptoMarketSchema, UniswapCryptoMarketWitnessConfigSchema } from "@xyo-network/uniswap-crypto-market-payload-plugin";
225
- var _UniswapCryptoMarketWitness = class _UniswapCryptoMarketWitness extends AbstractWitness {
216
+ import {
217
+ UniswapCryptoMarketSchema,
218
+ UniswapCryptoMarketWitnessConfigSchema
219
+ } from "@xyo-network/uniswap-crypto-market-payload-plugin";
220
+ var UniswapCryptoMarketWitness = class extends AbstractWitness {
221
+ static configSchemas = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema];
222
+ static defaultConfigSchema = UniswapCryptoMarketWitnessConfigSchema;
226
223
  pairs;
227
224
  get provider() {
228
225
  return this.params.provider;
@@ -236,37 +233,29 @@ var _UniswapCryptoMarketWitness = class _UniswapCryptoMarketWitness extends Abst
236
233
  schema: UniswapCryptoMarketSchema,
237
234
  timestamp
238
235
  };
239
- return [
240
- payload
241
- ];
236
+ return [payload];
242
237
  }
243
238
  async startHandler() {
244
239
  var _a;
245
240
  await super.startHandler();
246
- this.pairs = createUniswapPoolContracts(assertEx2(this.provider, () => "Provider Required"), ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts);
241
+ this.pairs = createUniswapPoolContracts(
242
+ assertEx2(this.provider, () => "Provider Required"),
243
+ ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts
244
+ );
247
245
  return true;
248
246
  }
249
247
  };
250
- __name(_UniswapCryptoMarketWitness, "UniswapCryptoMarketWitness");
251
- __publicField(_UniswapCryptoMarketWitness, "configSchemas", [
252
- ...__superGet(_UniswapCryptoMarketWitness, _UniswapCryptoMarketWitness, "configSchemas"),
253
- UniswapCryptoMarketWitnessConfigSchema
254
- ]);
255
- __publicField(_UniswapCryptoMarketWitness, "defaultConfigSchema", UniswapCryptoMarketWitnessConfigSchema);
256
- var UniswapCryptoMarketWitness = _UniswapCryptoMarketWitness;
257
248
 
258
249
  // src/Plugin.ts
259
- var UniswapCryptoMarketPlugin = /* @__PURE__ */ __name(() => createPayloadSetWitnessPlugin({
260
- required: {
261
- [UniswapCryptoMarketSchema2]: 1
262
- },
263
- schema: PayloadSetSchema
264
- }, {
265
- witness: /* @__PURE__ */ __name(async (params) => {
266
- const result = await UniswapCryptoMarketWitness.create(params);
267
- return result;
268
- }, "witness")
269
- }), "UniswapCryptoMarketPlugin");
250
+ var UniswapCryptoMarketPlugin = () => createPayloadSetWitnessPlugin(
251
+ { required: { [UniswapCryptoMarketSchema2]: 1 }, schema: PayloadSetSchema },
252
+ {
253
+ witness: async (params) => {
254
+ const result = await UniswapCryptoMarketWitness.create(params);
255
+ return result;
256
+ }
257
+ }
258
+ );
270
259
  export {
271
260
  ChainId,
272
261
  EthersUniSwap3Pair,