@xyo-network/uniswap-crypto-market-plugin 2.75.5 → 2.75.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 (72) hide show
  1. package/dist/docs.json +86 -86
  2. package/dist/node/Config.cjs +19 -0
  3. package/dist/node/Config.cjs.map +1 -0
  4. package/dist/node/Config.js +0 -18
  5. package/dist/node/Config.js.map +1 -1
  6. package/dist/node/{Plugin.mjs → Plugin.cjs} +61 -39
  7. package/dist/node/{Plugin.mjs.map → Plugin.cjs.map} +1 -1
  8. package/dist/node/Plugin.js +38 -60
  9. package/dist/node/Plugin.js.map +1 -1
  10. package/dist/node/{Witness.mjs → Witness.cjs} +56 -34
  11. package/dist/node/{Witness.mjs.map → Witness.cjs.map} +1 -1
  12. package/dist/node/Witness.js +33 -55
  13. package/dist/node/Witness.js.map +1 -1
  14. package/dist/node/{index.mjs → index.cjs} +70 -40
  15. package/dist/node/index.cjs.map +1 -0
  16. package/dist/node/index.js +39 -69
  17. package/dist/node/index.js.map +1 -1
  18. package/dist/node/lib/Ethers/{UniSwap3Pair.mjs → UniSwap3Pair.cjs} +46 -21
  19. package/dist/node/lib/Ethers/{UniSwap3Pair.mjs.map → UniSwap3Pair.cjs.map} +1 -1
  20. package/dist/node/lib/Ethers/UniSwap3Pair.js +20 -45
  21. package/dist/node/lib/Ethers/UniSwap3Pair.js.map +1 -1
  22. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.cjs +57 -0
  23. package/dist/node/lib/Ethers/{Uniswap3PoolSlot0Wrapper.mjs.map → Uniswap3PoolSlot0Wrapper.cjs.map} +1 -1
  24. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +2 -27
  25. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +1 -1
  26. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.cjs +19 -0
  27. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.cjs.map +1 -0
  28. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.js +0 -18
  29. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.js.map +1 -1
  30. package/dist/node/lib/Ethers/{createUniswapPoolContracts.mjs → createUniswapPoolContracts.cjs} +48 -21
  31. package/dist/node/lib/Ethers/createUniswapPoolContracts.cjs.map +1 -0
  32. package/dist/node/lib/Ethers/createUniswapPoolContracts.js +20 -47
  33. package/dist/node/lib/Ethers/createUniswapPoolContracts.js.map +1 -1
  34. package/dist/node/lib/Ethers/{index.mjs → index.cjs} +50 -21
  35. package/dist/node/lib/Ethers/index.cjs.map +1 -0
  36. package/dist/node/lib/Ethers/index.js +20 -49
  37. package/dist/node/lib/Ethers/index.js.map +1 -1
  38. package/dist/node/lib/UniswapPoolContracts.cjs +58 -0
  39. package/dist/node/lib/{UniswapPoolContracts.mjs.map → UniswapPoolContracts.cjs.map} +1 -1
  40. package/dist/node/lib/UniswapPoolContracts.js +2 -27
  41. package/dist/node/lib/UniswapPoolContracts.js.map +1 -1
  42. package/dist/node/lib/UniswapV3Slot0Fields.cjs +19 -0
  43. package/dist/node/lib/UniswapV3Slot0Fields.cjs.map +1 -0
  44. package/dist/node/lib/UniswapV3Slot0Fields.js +0 -18
  45. package/dist/node/lib/UniswapV3Slot0Fields.js.map +1 -1
  46. package/dist/node/lib/{index.mjs → index.cjs} +54 -23
  47. package/dist/node/lib/index.cjs.map +1 -0
  48. package/dist/node/lib/index.js +22 -53
  49. package/dist/node/lib/index.js.map +1 -1
  50. package/dist/node/lib/logErrors.cjs +48 -0
  51. package/dist/node/lib/{logErrors.mjs.map → logErrors.cjs.map} +1 -1
  52. package/dist/node/lib/logErrors.js +2 -28
  53. package/dist/node/lib/logErrors.js.map +1 -1
  54. package/dist/node/lib/pricesFromUniswap3.cjs +54 -0
  55. package/dist/node/lib/{pricesFromUniswap3.mjs.map → pricesFromUniswap3.cjs.map} +1 -1
  56. package/dist/node/lib/pricesFromUniswap3.js +4 -29
  57. package/dist/node/lib/pricesFromUniswap3.js.map +1 -1
  58. package/package.json +16 -15
  59. package/dist/node/Config.mjs +0 -1
  60. package/dist/node/Config.mjs.map +0 -1
  61. package/dist/node/index.mjs.map +0 -1
  62. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.mjs +0 -32
  63. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.mjs +0 -1
  64. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.mjs.map +0 -1
  65. package/dist/node/lib/Ethers/createUniswapPoolContracts.mjs.map +0 -1
  66. package/dist/node/lib/Ethers/index.mjs.map +0 -1
  67. package/dist/node/lib/UniswapPoolContracts.mjs +0 -33
  68. package/dist/node/lib/UniswapV3Slot0Fields.mjs +0 -1
  69. package/dist/node/lib/UniswapV3Slot0Fields.mjs.map +0 -1
  70. package/dist/node/lib/index.mjs.map +0 -1
  71. package/dist/node/lib/logErrors.mjs +0 -22
  72. package/dist/node/lib/pricesFromUniswap3.mjs +0 -29
@@ -1,28 +1,4 @@
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
1
  // src/lib/UniswapPoolContracts.ts
21
- var UniswapPoolContracts_exports = {};
22
- __export(UniswapPoolContracts_exports, {
23
- UniswapPoolContracts: () => UniswapPoolContracts
24
- });
25
- module.exports = __toCommonJS(UniswapPoolContracts_exports);
26
2
  var UniswapPoolContracts = [
27
3
  /*xyo/weth*/
28
4
  "0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA",
@@ -51,8 +27,7 @@ var UniswapPoolContracts = [
51
27
  /*usdc/usdt*/
52
28
  "0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
53
29
  ];
54
- // Annotate the CommonJS export names for ESM import in node:
55
- 0 && (module.exports = {
30
+ export {
56
31
  UniswapPoolContracts
57
- });
32
+ };
58
33
  //# sourceMappingURL=UniswapPoolContracts.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/UniswapPoolContracts.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,uBAAuB;AAAA;AAAA,EACrB;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;AAChB;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/UniswapPoolContracts.ts"],"sourcesContent":["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"],"mappings":";AAAO,IAAM,uBAAuB;AAAA;AAAA,EACrB;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;AAChB;","names":[]}
@@ -0,0 +1,19 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/lib/UniswapV3Slot0Fields.ts
17
+ var UniswapV3Slot0Fields_exports = {};
18
+ module.exports = __toCommonJS(UniswapV3Slot0Fields_exports);
19
+ //# sourceMappingURL=UniswapV3Slot0Fields.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/UniswapV3Slot0Fields.ts"],"sourcesContent":["import { BigNumber } from '@xylabs/bignumber'\n\n//we do not export any EthersBigNumber fields\nexport type UniswapV3Slot0Fields = [BigNumber, number, number, number, number, number, boolean]\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1,19 +1 @@
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 __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
-
16
- // src/lib/UniswapV3Slot0Fields.ts
17
- var UniswapV3Slot0Fields_exports = {};
18
- module.exports = __toCommonJS(UniswapV3Slot0Fields_exports);
19
1
  //# sourceMappingURL=UniswapV3Slot0Fields.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/UniswapV3Slot0Fields.ts"],"sourcesContent":["import { BigNumber } from '@xylabs/bignumber'\n\n//we do not export any EthersBigNumber fields\nexport type UniswapV3Slot0Fields = [BigNumber, number, number, number, number, number, boolean]\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,3 +1,33 @@
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/lib/index.ts
21
+ var lib_exports = {};
22
+ __export(lib_exports, {
23
+ EthersUniSwap3Pair: () => EthersUniSwap3Pair,
24
+ EthersUniswap3PoolSlot0Wrapper: () => EthersUniswap3PoolSlot0Wrapper,
25
+ UniswapPoolContracts: () => UniswapPoolContracts,
26
+ createUniswapPoolContracts: () => createUniswapPoolContracts,
27
+ pricesFromUniswap3: () => pricesFromUniswap3
28
+ });
29
+ module.exports = __toCommonJS(lib_exports);
30
+
1
31
  // src/lib/logErrors.ts
2
32
  var logErrors = (func) => {
3
33
  try {
@@ -17,13 +47,13 @@ var logErrorsAsync = async (func) => {
17
47
  };
18
48
 
19
49
  // src/lib/Ethers/UniSwap3Pair.ts
20
- import { ChainId } from "@uniswap/sdk";
21
- import { Token } from "@uniswap/sdk-core";
22
- import { Pool } from "@uniswap/v3-sdk";
23
- import { assertEx } from "@xylabs/assert";
24
- import { delay } from "@xylabs/delay";
25
- import { IERC20Metadata__factory } from "@xyo-network/typechain";
26
- import { IUniswapV3Pool__factory } from "@xyo-network/uniswap-typechain";
50
+ var import_sdk = require("@uniswap/sdk");
51
+ var import_sdk_core = require("@uniswap/sdk-core");
52
+ var import_v3_sdk = require("@uniswap/v3-sdk");
53
+ var import_assert = require("@xylabs/assert");
54
+ var import_delay = require("@xylabs/delay");
55
+ var import_typechain = require("@xyo-network/typechain");
56
+ var import_uniswap_typechain = require("@xyo-network/uniswap-typechain");
27
57
 
28
58
  // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
29
59
  var EthersUniswap3PoolSlot0Wrapper = class {
@@ -57,7 +87,7 @@ var EthersUniswap3PoolSlot0Wrapper = class {
57
87
  // src/lib/Ethers/UniSwap3Pair.ts
58
88
  var waitNotNull = async (closure) => {
59
89
  while (closure() === null) {
60
- await delay(10);
90
+ await (0, import_delay.delay)(10);
61
91
  }
62
92
  };
63
93
  var EthersUniSwap3Pair = class {
@@ -77,7 +107,7 @@ var EthersUniSwap3Pair = class {
77
107
  await waitNotNull(() => this._pool);
78
108
  this._pool = this._pool || null;
79
109
  const slot0 = await this.slot0();
80
- this._pool = this._pool ?? new Pool(
110
+ this._pool = this._pool ?? new import_v3_sdk.Pool(
81
111
  await this.token(0),
82
112
  await this.token(1),
83
113
  slot0.feeProtocol,
@@ -85,13 +115,13 @@ var EthersUniSwap3Pair = class {
85
115
  (await this.poolContract().liquidity()).toHexString(),
86
116
  slot0.tick
87
117
  );
88
- return assertEx(this._pool);
118
+ return (0, import_assert.assertEx)(this._pool);
89
119
  });
90
120
  }
91
121
  poolContract() {
92
122
  return logErrors(() => {
93
- this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider);
94
- return assertEx(this._poolContract);
123
+ this._poolContract = this._poolContract ?? import_uniswap_typechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
124
+ return (0, import_assert.assertEx)(this._poolContract);
95
125
  });
96
126
  }
97
127
  async price() {
@@ -101,7 +131,7 @@ var EthersUniSwap3Pair = class {
101
131
  const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
102
132
  const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
103
133
  const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
104
- const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
134
+ const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
105
135
  const result = {
106
136
  tokens: tokenIndexes.map((value) => {
107
137
  return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
@@ -115,7 +145,7 @@ var EthersUniSwap3Pair = class {
115
145
  await waitNotNull(() => this._slot0);
116
146
  this._slot0 = this._slot0 || null;
117
147
  this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
118
- return assertEx(this._slot0);
148
+ return (0, import_assert.assertEx)(this._slot0);
119
149
  });
120
150
  }
121
151
  async token(index) {
@@ -123,16 +153,16 @@ var EthersUniSwap3Pair = class {
123
153
  await waitNotNull(() => this._tokens[index]);
124
154
  this._tokens[index] = this._tokens[index] || null;
125
155
  const tokenContract = await this.tokenContract(index);
126
- this._tokens[index] = this._tokens[index] ?? new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name());
127
- return assertEx(this._tokens[index]);
156
+ this._tokens[index] = this._tokens[index] ?? new import_sdk_core.Token(import_sdk.ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name());
157
+ return (0, import_assert.assertEx)(this._tokens[index]);
128
158
  });
129
159
  }
130
160
  async tokenContract(index) {
131
161
  return await logErrorsAsync(async () => {
132
162
  await waitNotNull(() => this._tokenContracts[index]);
133
163
  this._tokenContracts[index] = this._tokenContracts[index] || null;
134
- this._tokenContracts[index] = this._tokenContracts[index] ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
135
- return assertEx(this._tokenContracts[index]);
164
+ this._tokenContracts[index] = this._tokenContracts[index] ?? import_typechain.IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
165
+ return (0, import_assert.assertEx)(this._tokenContracts[index]);
136
166
  });
137
167
  }
138
168
  };
@@ -145,7 +175,7 @@ var createUniswapPoolContracts = (provider, contracts) => {
145
175
  };
146
176
 
147
177
  // src/lib/pricesFromUniswap3.ts
148
- import { fulfilled } from "@xylabs/promise";
178
+ var import_promise = require("@xylabs/promise");
149
179
  var pricesFromUniswap3 = async (pools) => {
150
180
  return await logErrorsAsync(async () => {
151
181
  const promiseResults = await Promise.allSettled(
@@ -154,7 +184,7 @@ var pricesFromUniswap3 = async (pools) => {
154
184
  return result;
155
185
  })
156
186
  );
157
- return promiseResults.filter(fulfilled).map((result) => result.value);
187
+ return promiseResults.filter(import_promise.fulfilled).map((result) => result.value);
158
188
  });
159
189
  };
160
190
 
@@ -187,11 +217,12 @@ var UniswapPoolContracts = [
187
217
  /*usdc/usdt*/
188
218
  "0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
189
219
  ];
190
- export {
220
+ // Annotate the CommonJS export names for ESM import in node:
221
+ 0 && (module.exports = {
191
222
  EthersUniSwap3Pair,
192
223
  EthersUniswap3PoolSlot0Wrapper,
193
224
  UniswapPoolContracts,
194
225
  createUniswapPoolContracts,
195
226
  pricesFromUniswap3
196
- };
197
- //# sourceMappingURL=index.mjs.map
227
+ });
228
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/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"],"sourcesContent":["export * from './Ethers'\nexport * from './pricesFromUniswap3'\nexport * from './UniswapPoolContracts'\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 { Provider } from '@ethersproject/providers'\nimport { ChainId } from '@uniswap/sdk'\nimport { Token } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\n\nimport { logErrors, logErrorsAsync } from '../logErrors'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper'\n\n//null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) {\n await delay(10)\n }\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 ??\n new Pool(\n await this.token(0),\n await this.token(1),\n slot0.feeProtocol,\n slot0.sqrtPriceX96.toHexString(),\n (await this.poolContract().liquidity()).toHexString(),\n slot0.tick,\n )\n return assertEx(this._pool)\n })\n }\n\n poolContract(): IUniswapV3Pool {\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) => 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: tokenIndexes.map((value) => {\n return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] }\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 this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0())\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(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name())\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'\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 '@ethersproject/providers'\n\nimport { logErrors } from '../logErrors'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair'\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'\nimport { logErrorsAsync } from './logErrors'\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"],"mappings":"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","names":[]}
@@ -1,33 +1,3 @@
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/lib/index.ts
21
- var lib_exports = {};
22
- __export(lib_exports, {
23
- EthersUniSwap3Pair: () => EthersUniSwap3Pair,
24
- EthersUniswap3PoolSlot0Wrapper: () => EthersUniswap3PoolSlot0Wrapper,
25
- UniswapPoolContracts: () => UniswapPoolContracts,
26
- createUniswapPoolContracts: () => createUniswapPoolContracts,
27
- pricesFromUniswap3: () => pricesFromUniswap3
28
- });
29
- module.exports = __toCommonJS(lib_exports);
30
-
31
1
  // src/lib/logErrors.ts
32
2
  var logErrors = (func) => {
33
3
  try {
@@ -47,13 +17,13 @@ var logErrorsAsync = async (func) => {
47
17
  };
48
18
 
49
19
  // src/lib/Ethers/UniSwap3Pair.ts
50
- var import_sdk = require("@uniswap/sdk");
51
- var import_sdk_core = require("@uniswap/sdk-core");
52
- var import_v3_sdk = require("@uniswap/v3-sdk");
53
- var import_assert = require("@xylabs/assert");
54
- var import_delay = require("@xylabs/delay");
55
- var import_typechain = require("@xyo-network/typechain");
56
- var import_uniswap_typechain = require("@xyo-network/uniswap-typechain");
20
+ import { ChainId } from "@uniswap/sdk";
21
+ import { Token } from "@uniswap/sdk-core";
22
+ import { Pool } from "@uniswap/v3-sdk";
23
+ import { assertEx } from "@xylabs/assert";
24
+ import { delay } from "@xylabs/delay";
25
+ import { IERC20Metadata__factory } from "@xyo-network/typechain";
26
+ import { IUniswapV3Pool__factory } from "@xyo-network/uniswap-typechain";
57
27
 
58
28
  // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
59
29
  var EthersUniswap3PoolSlot0Wrapper = class {
@@ -87,7 +57,7 @@ var EthersUniswap3PoolSlot0Wrapper = class {
87
57
  // src/lib/Ethers/UniSwap3Pair.ts
88
58
  var waitNotNull = async (closure) => {
89
59
  while (closure() === null) {
90
- await (0, import_delay.delay)(10);
60
+ await delay(10);
91
61
  }
92
62
  };
93
63
  var EthersUniSwap3Pair = class {
@@ -107,7 +77,7 @@ var EthersUniSwap3Pair = class {
107
77
  await waitNotNull(() => this._pool);
108
78
  this._pool = this._pool || null;
109
79
  const slot0 = await this.slot0();
110
- this._pool = this._pool ?? new import_v3_sdk.Pool(
80
+ this._pool = this._pool ?? new Pool(
111
81
  await this.token(0),
112
82
  await this.token(1),
113
83
  slot0.feeProtocol,
@@ -115,13 +85,13 @@ var EthersUniSwap3Pair = class {
115
85
  (await this.poolContract().liquidity()).toHexString(),
116
86
  slot0.tick
117
87
  );
118
- return (0, import_assert.assertEx)(this._pool);
88
+ return assertEx(this._pool);
119
89
  });
120
90
  }
121
91
  poolContract() {
122
92
  return logErrors(() => {
123
- this._poolContract = this._poolContract ?? import_uniswap_typechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
124
- return (0, import_assert.assertEx)(this._poolContract);
93
+ this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider);
94
+ return assertEx(this._poolContract);
125
95
  });
126
96
  }
127
97
  async price() {
@@ -131,7 +101,7 @@ var EthersUniSwap3Pair = class {
131
101
  const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
132
102
  const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
133
103
  const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
134
- const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
104
+ const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
135
105
  const result = {
136
106
  tokens: tokenIndexes.map((value) => {
137
107
  return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
@@ -145,7 +115,7 @@ var EthersUniSwap3Pair = class {
145
115
  await waitNotNull(() => this._slot0);
146
116
  this._slot0 = this._slot0 || null;
147
117
  this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
148
- return (0, import_assert.assertEx)(this._slot0);
118
+ return assertEx(this._slot0);
149
119
  });
150
120
  }
151
121
  async token(index) {
@@ -153,16 +123,16 @@ var EthersUniSwap3Pair = class {
153
123
  await waitNotNull(() => this._tokens[index]);
154
124
  this._tokens[index] = this._tokens[index] || null;
155
125
  const tokenContract = await this.tokenContract(index);
156
- this._tokens[index] = this._tokens[index] ?? new import_sdk_core.Token(import_sdk.ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name());
157
- return (0, import_assert.assertEx)(this._tokens[index]);
126
+ this._tokens[index] = this._tokens[index] ?? new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name());
127
+ return assertEx(this._tokens[index]);
158
128
  });
159
129
  }
160
130
  async tokenContract(index) {
161
131
  return await logErrorsAsync(async () => {
162
132
  await waitNotNull(() => this._tokenContracts[index]);
163
133
  this._tokenContracts[index] = this._tokenContracts[index] || null;
164
- this._tokenContracts[index] = this._tokenContracts[index] ?? import_typechain.IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
165
- return (0, import_assert.assertEx)(this._tokenContracts[index]);
134
+ this._tokenContracts[index] = this._tokenContracts[index] ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
135
+ return assertEx(this._tokenContracts[index]);
166
136
  });
167
137
  }
168
138
  };
@@ -175,7 +145,7 @@ var createUniswapPoolContracts = (provider, contracts) => {
175
145
  };
176
146
 
177
147
  // src/lib/pricesFromUniswap3.ts
178
- var import_promise = require("@xylabs/promise");
148
+ import { fulfilled } from "@xylabs/promise";
179
149
  var pricesFromUniswap3 = async (pools) => {
180
150
  return await logErrorsAsync(async () => {
181
151
  const promiseResults = await Promise.allSettled(
@@ -184,7 +154,7 @@ var pricesFromUniswap3 = async (pools) => {
184
154
  return result;
185
155
  })
186
156
  );
187
- return promiseResults.filter(import_promise.fulfilled).map((result) => result.value);
157
+ return promiseResults.filter(fulfilled).map((result) => result.value);
188
158
  });
189
159
  };
190
160
 
@@ -217,12 +187,11 @@ var UniswapPoolContracts = [
217
187
  /*usdc/usdt*/
218
188
  "0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
219
189
  ];
220
- // Annotate the CommonJS export names for ESM import in node:
221
- 0 && (module.exports = {
190
+ export {
222
191
  EthersUniSwap3Pair,
223
192
  EthersUniswap3PoolSlot0Wrapper,
224
193
  UniswapPoolContracts,
225
194
  createUniswapPoolContracts,
226
195
  pricesFromUniswap3
227
- });
196
+ };
228
197
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/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"],"sourcesContent":["export * from './Ethers'\nexport * from './pricesFromUniswap3'\nexport * from './UniswapPoolContracts'\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 { Provider } from '@ethersproject/providers'\nimport { ChainId } from '@uniswap/sdk'\nimport { Token } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\n\nimport { logErrors, logErrorsAsync } from '../logErrors'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper'\n\n//null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) {\n await delay(10)\n }\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 ??\n new Pool(\n await this.token(0),\n await this.token(1),\n slot0.feeProtocol,\n slot0.sqrtPriceX96.toHexString(),\n (await this.poolContract().liquidity()).toHexString(),\n slot0.tick,\n )\n return assertEx(this._pool)\n })\n }\n\n poolContract(): IUniswapV3Pool {\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) => 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: tokenIndexes.map((value) => {\n return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] }\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 this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0())\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(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name())\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'\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 '@ethersproject/providers'\n\nimport { logErrors } from '../logErrors'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair'\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'\nimport { logErrorsAsync } from './logErrors'\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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../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"],"sourcesContent":["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 { Provider } from '@ethersproject/providers'\nimport { ChainId } from '@uniswap/sdk'\nimport { Token } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\n\nimport { logErrors, logErrorsAsync } from '../logErrors'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper'\n\n//null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) {\n await delay(10)\n }\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 ??\n new Pool(\n await this.token(0),\n await this.token(1),\n slot0.feeProtocol,\n slot0.sqrtPriceX96.toHexString(),\n (await this.poolContract().liquidity()).toHexString(),\n slot0.tick,\n )\n return assertEx(this._pool)\n })\n }\n\n poolContract(): IUniswapV3Pool {\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) => 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: tokenIndexes.map((value) => {\n return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] }\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 this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0())\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(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name())\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'\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 '@ethersproject/providers'\n\nimport { logErrors } from '../logErrors'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair'\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'\nimport { logErrorsAsync } from './logErrors'\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"],"mappings":"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","names":[]}
@@ -0,0 +1,48 @@
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/lib/logErrors.ts
21
+ var logErrors_exports = {};
22
+ __export(logErrors_exports, {
23
+ logErrors: () => logErrors,
24
+ logErrorsAsync: () => logErrorsAsync
25
+ });
26
+ module.exports = __toCommonJS(logErrors_exports);
27
+ var logErrors = (func) => {
28
+ try {
29
+ return func();
30
+ } catch (ex) {
31
+ console.error(ex);
32
+ throw ex;
33
+ }
34
+ };
35
+ var logErrorsAsync = async (func) => {
36
+ try {
37
+ return await func();
38
+ } catch (ex) {
39
+ console.error(ex);
40
+ throw ex;
41
+ }
42
+ };
43
+ // Annotate the CommonJS export names for ESM import in node:
44
+ 0 && (module.exports = {
45
+ logErrors,
46
+ logErrorsAsync
47
+ });
48
+ //# sourceMappingURL=logErrors.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/logErrors.ts"],"sourcesContent":["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"],"mappings":";AAAO,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;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/logErrors.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,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;","names":[]}
@@ -1,29 +1,4 @@
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
1
  // src/lib/logErrors.ts
21
- var logErrors_exports = {};
22
- __export(logErrors_exports, {
23
- logErrors: () => logErrors,
24
- logErrorsAsync: () => logErrorsAsync
25
- });
26
- module.exports = __toCommonJS(logErrors_exports);
27
2
  var logErrors = (func) => {
28
3
  try {
29
4
  return func();
@@ -40,9 +15,8 @@ var logErrorsAsync = async (func) => {
40
15
  throw ex;
41
16
  }
42
17
  };
43
- // Annotate the CommonJS export names for ESM import in node:
44
- 0 && (module.exports = {
18
+ export {
45
19
  logErrors,
46
20
  logErrorsAsync
47
- });
21
+ };
48
22
  //# sourceMappingURL=logErrors.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/logErrors.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,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;","names":[]}
1
+ {"version":3,"sources":["../../../src/lib/logErrors.ts"],"sourcesContent":["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"],"mappings":";AAAO,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;","names":[]}