@xyo-network/uniswap-crypto-market-plugin 2.75.5 → 2.75.7

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 (117) hide show
  1. package/dist/browser/Plugin.cjs +12 -2
  2. package/dist/browser/Plugin.cjs.map +1 -1
  3. package/dist/browser/Plugin.js +2 -2
  4. package/dist/browser/Plugin.js.map +1 -1
  5. package/dist/browser/Witness.cjs +12 -2
  6. package/dist/browser/Witness.cjs.map +1 -1
  7. package/dist/browser/Witness.js +2 -2
  8. package/dist/browser/Witness.js.map +1 -1
  9. package/dist/browser/index.cjs +12 -2
  10. package/dist/browser/index.cjs.map +1 -1
  11. package/dist/browser/index.js +2 -2
  12. package/dist/browser/index.js.map +1 -1
  13. package/dist/browser/lib/Ethers/UniSwap3Pair.cjs +12 -2
  14. package/dist/browser/lib/Ethers/UniSwap3Pair.cjs.map +1 -1
  15. package/dist/browser/lib/Ethers/UniSwap3Pair.d.cts +2 -2
  16. package/dist/browser/lib/Ethers/UniSwap3Pair.d.cts.map +1 -1
  17. package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts +2 -2
  18. package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts.map +1 -1
  19. package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts +2 -2
  20. package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts.map +1 -1
  21. package/dist/browser/lib/Ethers/UniSwap3Pair.js +2 -2
  22. package/dist/browser/lib/Ethers/UniSwap3Pair.js.map +1 -1
  23. package/dist/browser/lib/Ethers/createUniswapPoolContracts.cjs +12 -2
  24. package/dist/browser/lib/Ethers/createUniswapPoolContracts.cjs.map +1 -1
  25. package/dist/browser/lib/Ethers/createUniswapPoolContracts.js +2 -2
  26. package/dist/browser/lib/Ethers/createUniswapPoolContracts.js.map +1 -1
  27. package/dist/browser/lib/Ethers/index.cjs +12 -2
  28. package/dist/browser/lib/Ethers/index.cjs.map +1 -1
  29. package/dist/browser/lib/Ethers/index.js +2 -2
  30. package/dist/browser/lib/Ethers/index.js.map +1 -1
  31. package/dist/browser/lib/index.cjs +12 -2
  32. package/dist/browser/lib/index.cjs.map +1 -1
  33. package/dist/browser/lib/index.js +2 -2
  34. package/dist/browser/lib/index.js.map +1 -1
  35. package/dist/docs.json +961 -927
  36. package/dist/node/Config.cjs +19 -0
  37. package/dist/node/Config.cjs.map +1 -0
  38. package/dist/node/Config.js +0 -18
  39. package/dist/node/Config.js.map +1 -1
  40. package/dist/node/{Plugin.mjs → Plugin.cjs} +71 -39
  41. package/dist/node/Plugin.cjs.map +1 -0
  42. package/dist/node/Plugin.js +38 -60
  43. package/dist/node/Plugin.js.map +1 -1
  44. package/dist/node/{Witness.mjs → Witness.cjs} +66 -34
  45. package/dist/node/Witness.cjs.map +1 -0
  46. package/dist/node/Witness.js +33 -55
  47. package/dist/node/Witness.js.map +1 -1
  48. package/dist/node/index.cjs +293 -0
  49. package/dist/node/index.cjs.map +1 -0
  50. package/dist/node/index.js +39 -69
  51. package/dist/node/index.js.map +1 -1
  52. package/dist/node/lib/Ethers/{UniSwap3Pair.mjs → UniSwap3Pair.cjs} +56 -21
  53. package/dist/node/lib/Ethers/UniSwap3Pair.cjs.map +1 -0
  54. package/dist/node/lib/Ethers/UniSwap3Pair.d.cts +2 -2
  55. package/dist/node/lib/Ethers/UniSwap3Pair.d.cts.map +1 -1
  56. package/dist/node/lib/Ethers/UniSwap3Pair.d.mts +2 -2
  57. package/dist/node/lib/Ethers/UniSwap3Pair.d.mts.map +1 -1
  58. package/dist/node/lib/Ethers/UniSwap3Pair.d.ts +2 -2
  59. package/dist/node/lib/Ethers/UniSwap3Pair.d.ts.map +1 -1
  60. package/dist/node/lib/Ethers/UniSwap3Pair.js +20 -45
  61. package/dist/node/lib/Ethers/UniSwap3Pair.js.map +1 -1
  62. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.cjs +57 -0
  63. package/dist/node/lib/Ethers/{Uniswap3PoolSlot0Wrapper.mjs.map → Uniswap3PoolSlot0Wrapper.cjs.map} +1 -1
  64. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +2 -27
  65. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +1 -1
  66. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.cjs +19 -0
  67. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.cjs.map +1 -0
  68. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.js +0 -18
  69. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.js.map +1 -1
  70. package/dist/node/lib/Ethers/{createUniswapPoolContracts.mjs → createUniswapPoolContracts.cjs} +58 -21
  71. package/dist/node/lib/Ethers/createUniswapPoolContracts.cjs.map +1 -0
  72. package/dist/node/lib/Ethers/createUniswapPoolContracts.js +20 -47
  73. package/dist/node/lib/Ethers/createUniswapPoolContracts.js.map +1 -1
  74. package/dist/node/lib/Ethers/{index.mjs → index.cjs} +60 -21
  75. package/dist/node/lib/Ethers/index.cjs.map +1 -0
  76. package/dist/node/lib/Ethers/index.js +20 -49
  77. package/dist/node/lib/Ethers/index.js.map +1 -1
  78. package/dist/node/lib/UniswapPoolContracts.cjs +58 -0
  79. package/dist/node/lib/{UniswapPoolContracts.mjs.map → UniswapPoolContracts.cjs.map} +1 -1
  80. package/dist/node/lib/UniswapPoolContracts.js +2 -27
  81. package/dist/node/lib/UniswapPoolContracts.js.map +1 -1
  82. package/dist/node/lib/UniswapV3Slot0Fields.cjs +19 -0
  83. package/dist/node/lib/UniswapV3Slot0Fields.cjs.map +1 -0
  84. package/dist/node/lib/UniswapV3Slot0Fields.js +0 -18
  85. package/dist/node/lib/UniswapV3Slot0Fields.js.map +1 -1
  86. package/dist/node/{index.mjs → lib/index.cjs} +62 -77
  87. package/dist/node/lib/index.cjs.map +1 -0
  88. package/dist/node/lib/index.js +22 -53
  89. package/dist/node/lib/index.js.map +1 -1
  90. package/dist/node/lib/logErrors.cjs +48 -0
  91. package/dist/node/lib/{logErrors.mjs.map → logErrors.cjs.map} +1 -1
  92. package/dist/node/lib/logErrors.js +2 -28
  93. package/dist/node/lib/logErrors.js.map +1 -1
  94. package/dist/node/lib/pricesFromUniswap3.cjs +54 -0
  95. package/dist/node/lib/{pricesFromUniswap3.mjs.map → pricesFromUniswap3.cjs.map} +1 -1
  96. package/dist/node/lib/pricesFromUniswap3.js +4 -29
  97. package/dist/node/lib/pricesFromUniswap3.js.map +1 -1
  98. package/package.json +16 -15
  99. package/src/lib/Ethers/UniSwap3Pair.ts +4 -4
  100. package/dist/node/Config.mjs +0 -1
  101. package/dist/node/Config.mjs.map +0 -1
  102. package/dist/node/Plugin.mjs.map +0 -1
  103. package/dist/node/Witness.mjs.map +0 -1
  104. package/dist/node/index.mjs.map +0 -1
  105. package/dist/node/lib/Ethers/UniSwap3Pair.mjs.map +0 -1
  106. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.mjs +0 -32
  107. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.mjs +0 -1
  108. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.mjs.map +0 -1
  109. package/dist/node/lib/Ethers/createUniswapPoolContracts.mjs.map +0 -1
  110. package/dist/node/lib/Ethers/index.mjs.map +0 -1
  111. package/dist/node/lib/UniswapPoolContracts.mjs +0 -33
  112. package/dist/node/lib/UniswapV3Slot0Fields.mjs +0 -1
  113. package/dist/node/lib/UniswapV3Slot0Fields.mjs.map +0 -1
  114. package/dist/node/lib/index.mjs +0 -197
  115. package/dist/node/lib/index.mjs.map +0 -1
  116. package/dist/node/lib/logErrors.mjs +0 -22
  117. package/dist/node/lib/pricesFromUniswap3.mjs +0 -29
@@ -1,31 +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/Ethers/index.ts
21
- var Ethers_exports = {};
22
- __export(Ethers_exports, {
23
- EthersUniSwap3Pair: () => EthersUniSwap3Pair,
24
- EthersUniswap3PoolSlot0Wrapper: () => EthersUniswap3PoolSlot0Wrapper,
25
- createUniswapPoolContracts: () => createUniswapPoolContracts
26
- });
27
- module.exports = __toCommonJS(Ethers_exports);
28
-
29
1
  // src/lib/logErrors.ts
30
2
  var logErrors = (func) => {
31
3
  try {
@@ -45,13 +17,13 @@ var logErrorsAsync = async (func) => {
45
17
  };
46
18
 
47
19
  // src/lib/Ethers/UniSwap3Pair.ts
48
- var import_sdk = require("@uniswap/sdk");
49
- var import_sdk_core = require("@uniswap/sdk-core");
50
- var import_v3_sdk = require("@uniswap/v3-sdk");
51
- var import_assert = require("@xylabs/assert");
52
- var import_delay = require("@xylabs/delay");
53
- var import_typechain = require("@xyo-network/typechain");
54
- 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 * as UniswapTypechain from "@xyo-network/uniswap-typechain";
55
27
 
56
28
  // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
57
29
  var EthersUniswap3PoolSlot0Wrapper = class {
@@ -85,7 +57,7 @@ var EthersUniswap3PoolSlot0Wrapper = class {
85
57
  // src/lib/Ethers/UniSwap3Pair.ts
86
58
  var waitNotNull = async (closure) => {
87
59
  while (closure() === null) {
88
- await (0, import_delay.delay)(10);
60
+ await delay(10);
89
61
  }
90
62
  };
91
63
  var EthersUniSwap3Pair = class {
@@ -105,7 +77,7 @@ var EthersUniSwap3Pair = class {
105
77
  await waitNotNull(() => this._pool);
106
78
  this._pool = this._pool || null;
107
79
  const slot0 = await this.slot0();
108
- this._pool = this._pool ?? new import_v3_sdk.Pool(
80
+ this._pool = this._pool ?? new Pool(
109
81
  await this.token(0),
110
82
  await this.token(1),
111
83
  slot0.feeProtocol,
@@ -113,13 +85,13 @@ var EthersUniSwap3Pair = class {
113
85
  (await this.poolContract().liquidity()).toHexString(),
114
86
  slot0.tick
115
87
  );
116
- return (0, import_assert.assertEx)(this._pool);
88
+ return assertEx(this._pool);
117
89
  });
118
90
  }
119
91
  poolContract() {
120
92
  return logErrors(() => {
121
- this._poolContract = this._poolContract ?? import_uniswap_typechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
122
- return (0, import_assert.assertEx)(this._poolContract);
93
+ this._poolContract = this._poolContract ?? UniswapTypechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
94
+ return assertEx(this._poolContract);
123
95
  });
124
96
  }
125
97
  async price() {
@@ -129,7 +101,7 @@ var EthersUniSwap3Pair = class {
129
101
  const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
130
102
  const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
131
103
  const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
132
- 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());
133
105
  const result = {
134
106
  tokens: tokenIndexes.map((value) => {
135
107
  return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
@@ -143,7 +115,7 @@ var EthersUniSwap3Pair = class {
143
115
  await waitNotNull(() => this._slot0);
144
116
  this._slot0 = this._slot0 || null;
145
117
  this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
146
- return (0, import_assert.assertEx)(this._slot0);
118
+ return assertEx(this._slot0);
147
119
  });
148
120
  }
149
121
  async token(index) {
@@ -151,16 +123,16 @@ var EthersUniSwap3Pair = class {
151
123
  await waitNotNull(() => this._tokens[index]);
152
124
  this._tokens[index] = this._tokens[index] || null;
153
125
  const tokenContract = await this.tokenContract(index);
154
- 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());
155
- 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]);
156
128
  });
157
129
  }
158
130
  async tokenContract(index) {
159
131
  return await logErrorsAsync(async () => {
160
132
  await waitNotNull(() => this._tokenContracts[index]);
161
133
  this._tokenContracts[index] = this._tokenContracts[index] || null;
162
- this._tokenContracts[index] = this._tokenContracts[index] ?? import_typechain.IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
163
- 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]);
164
136
  });
165
137
  }
166
138
  };
@@ -171,10 +143,9 @@ var createUniswapPoolContracts = (provider, contracts) => {
171
143
  return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
172
144
  });
173
145
  };
174
- // Annotate the CommonJS export names for ESM import in node:
175
- 0 && (module.exports = {
146
+ export {
176
147
  EthersUniSwap3Pair,
177
148
  EthersUniswap3PoolSlot0Wrapper,
178
149
  createUniswapPoolContracts
179
- });
150
+ };
180
151
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/Ethers/index.ts","../../../../src/lib/logErrors.ts","../../../../src/lib/Ethers/UniSwap3Pair.ts","../../../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../../../src/lib/Ethers/createUniswapPoolContracts.ts"],"sourcesContent":["export * from './createUniswapPoolContracts'\nexport * from './UniSwap3Pair'\nexport * from './Uniswap3PoolSlot0Wrapper'\nexport * from './UniswapV3Slot0Fields'\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"],"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"],"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 * as UniswapTypechain 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?: UniswapTypechain.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(): UniswapTypechain.IUniswapV3Pool {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? UniswapTypechain.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"],"mappings":"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","names":[]}
@@ -0,0 +1,58 @@
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/UniswapPoolContracts.ts
21
+ var UniswapPoolContracts_exports = {};
22
+ __export(UniswapPoolContracts_exports, {
23
+ UniswapPoolContracts: () => UniswapPoolContracts
24
+ });
25
+ module.exports = __toCommonJS(UniswapPoolContracts_exports);
26
+ var UniswapPoolContracts = [
27
+ /*xyo/weth*/
28
+ "0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA",
29
+ /*xyo/usdt*/
30
+ "0xd0AF1981f52146a6939385451dAeA0726e13a484",
31
+ /*xyo/dai*/
32
+ "0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe",
33
+ /*wbtc/xyo*/
34
+ "0x0cF7494c9dE661467403aBeE8454b3BBf0179a84",
35
+ /*link/xyo*/
36
+ "0x4693456599a8a4975862A0E720C5de7E1D09A1e4",
37
+ /*wbtc/weth*/
38
+ "0xCBCdF9626bC03E24f779434178A73a0B4bad62eD",
39
+ /*dai/usdc*/
40
+ "0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168",
41
+ /*usdc/weth*/
42
+ "0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8",
43
+ /*usdc/weth*/
44
+ "0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640",
45
+ /*dai/usdc*/
46
+ "0x6c6Bc977E13Df9b0de53b251522280BB72383700",
47
+ /*frax/usdc*/
48
+ "0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52",
49
+ /*wbtc/usdc*/
50
+ "0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35",
51
+ /*usdc/usdt*/
52
+ "0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
53
+ ];
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ UniswapPoolContracts
57
+ });
58
+ //# sourceMappingURL=UniswapPoolContracts.cjs.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":";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":";;;;;;;;;;;;;;;;;;;;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,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,15 +1,42 @@
1
- // src/Plugin.ts
2
- import { PayloadSetSchema } from "@xyo-network/payload-model";
3
- import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
4
- import { UniswapCryptoMarketSchema as UniswapCryptoMarketSchema2 } from "@xyo-network/uniswap-crypto-market-payload-plugin";
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
5
29
 
6
- // src/Witness.ts
7
- import { assertEx as assertEx2 } from "@xylabs/assert";
8
- import {
9
- UniswapCryptoMarketSchema,
10
- UniswapCryptoMarketWitnessConfigSchema
11
- } from "@xyo-network/uniswap-crypto-market-payload-plugin";
12
- import { AbstractWitness } from "@xyo-network/witness";
30
+ // src/lib/index.ts
31
+ var lib_exports = {};
32
+ __export(lib_exports, {
33
+ EthersUniSwap3Pair: () => EthersUniSwap3Pair,
34
+ EthersUniswap3PoolSlot0Wrapper: () => EthersUniswap3PoolSlot0Wrapper,
35
+ UniswapPoolContracts: () => UniswapPoolContracts,
36
+ createUniswapPoolContracts: () => createUniswapPoolContracts,
37
+ pricesFromUniswap3: () => pricesFromUniswap3
38
+ });
39
+ module.exports = __toCommonJS(lib_exports);
13
40
 
14
41
  // src/lib/logErrors.ts
15
42
  var logErrors = (func) => {
@@ -30,13 +57,13 @@ var logErrorsAsync = async (func) => {
30
57
  };
31
58
 
32
59
  // src/lib/Ethers/UniSwap3Pair.ts
33
- import { ChainId } from "@uniswap/sdk";
34
- import { Token } from "@uniswap/sdk-core";
35
- import { Pool } from "@uniswap/v3-sdk";
36
- import { assertEx } from "@xylabs/assert";
37
- import { delay } from "@xylabs/delay";
38
- import { IERC20Metadata__factory } from "@xyo-network/typechain";
39
- import { IUniswapV3Pool__factory } from "@xyo-network/uniswap-typechain";
60
+ var import_sdk = require("@uniswap/sdk");
61
+ var import_sdk_core = require("@uniswap/sdk-core");
62
+ var import_v3_sdk = require("@uniswap/v3-sdk");
63
+ var import_assert = require("@xylabs/assert");
64
+ var import_delay = require("@xylabs/delay");
65
+ var import_typechain = require("@xyo-network/typechain");
66
+ var UniswapTypechain = __toESM(require("@xyo-network/uniswap-typechain"), 1);
40
67
 
41
68
  // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
42
69
  var EthersUniswap3PoolSlot0Wrapper = class {
@@ -70,7 +97,7 @@ var EthersUniswap3PoolSlot0Wrapper = class {
70
97
  // src/lib/Ethers/UniSwap3Pair.ts
71
98
  var waitNotNull = async (closure) => {
72
99
  while (closure() === null) {
73
- await delay(10);
100
+ await (0, import_delay.delay)(10);
74
101
  }
75
102
  };
76
103
  var EthersUniSwap3Pair = class {
@@ -90,7 +117,7 @@ var EthersUniSwap3Pair = class {
90
117
  await waitNotNull(() => this._pool);
91
118
  this._pool = this._pool || null;
92
119
  const slot0 = await this.slot0();
93
- this._pool = this._pool ?? new Pool(
120
+ this._pool = this._pool ?? new import_v3_sdk.Pool(
94
121
  await this.token(0),
95
122
  await this.token(1),
96
123
  slot0.feeProtocol,
@@ -98,13 +125,13 @@ var EthersUniSwap3Pair = class {
98
125
  (await this.poolContract().liquidity()).toHexString(),
99
126
  slot0.tick
100
127
  );
101
- return assertEx(this._pool);
128
+ return (0, import_assert.assertEx)(this._pool);
102
129
  });
103
130
  }
104
131
  poolContract() {
105
132
  return logErrors(() => {
106
- this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider);
107
- return assertEx(this._poolContract);
133
+ this._poolContract = this._poolContract ?? UniswapTypechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
134
+ return (0, import_assert.assertEx)(this._poolContract);
108
135
  });
109
136
  }
110
137
  async price() {
@@ -114,7 +141,7 @@ var EthersUniSwap3Pair = class {
114
141
  const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
115
142
  const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
116
143
  const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
117
- const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
144
+ const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
118
145
  const result = {
119
146
  tokens: tokenIndexes.map((value) => {
120
147
  return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
@@ -128,7 +155,7 @@ var EthersUniSwap3Pair = class {
128
155
  await waitNotNull(() => this._slot0);
129
156
  this._slot0 = this._slot0 || null;
130
157
  this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
131
- return assertEx(this._slot0);
158
+ return (0, import_assert.assertEx)(this._slot0);
132
159
  });
133
160
  }
134
161
  async token(index) {
@@ -136,16 +163,16 @@ var EthersUniSwap3Pair = class {
136
163
  await waitNotNull(() => this._tokens[index]);
137
164
  this._tokens[index] = this._tokens[index] || null;
138
165
  const tokenContract = await this.tokenContract(index);
139
- this._tokens[index] = this._tokens[index] ?? new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name());
140
- return assertEx(this._tokens[index]);
166
+ 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());
167
+ return (0, import_assert.assertEx)(this._tokens[index]);
141
168
  });
142
169
  }
143
170
  async tokenContract(index) {
144
171
  return await logErrorsAsync(async () => {
145
172
  await waitNotNull(() => this._tokenContracts[index]);
146
173
  this._tokenContracts[index] = this._tokenContracts[index] || null;
147
- this._tokenContracts[index] = this._tokenContracts[index] ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
148
- return assertEx(this._tokenContracts[index]);
174
+ this._tokenContracts[index] = this._tokenContracts[index] ?? import_typechain.IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
175
+ return (0, import_assert.assertEx)(this._tokenContracts[index]);
149
176
  });
150
177
  }
151
178
  };
@@ -158,7 +185,7 @@ var createUniswapPoolContracts = (provider, contracts) => {
158
185
  };
159
186
 
160
187
  // src/lib/pricesFromUniswap3.ts
161
- import { fulfilled } from "@xylabs/promise";
188
+ var import_promise = require("@xylabs/promise");
162
189
  var pricesFromUniswap3 = async (pools) => {
163
190
  return await logErrorsAsync(async () => {
164
191
  const promiseResults = await Promise.allSettled(
@@ -167,7 +194,7 @@ var pricesFromUniswap3 = async (pools) => {
167
194
  return result;
168
195
  })
169
196
  );
170
- return promiseResults.filter(fulfilled).map((result) => result.value);
197
+ return promiseResults.filter(import_promise.fulfilled).map((result) => result.value);
171
198
  });
172
199
  };
173
200
 
@@ -200,54 +227,12 @@ var UniswapPoolContracts = [
200
227
  /*usdc/usdt*/
201
228
  "0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
202
229
  ];
203
-
204
- // src/Witness.ts
205
- var UniswapCryptoMarketWitness = class extends AbstractWitness {
206
- static configSchemas = [UniswapCryptoMarketWitnessConfigSchema];
207
- pairs;
208
- get provider() {
209
- return this.params.provider;
210
- }
211
- async observeHandler() {
212
- await this.started("throw");
213
- const pairs = await pricesFromUniswap3(assertEx2(this.pairs));
214
- const timestamp = Date.now();
215
- const payload = {
216
- pairs,
217
- schema: UniswapCryptoMarketSchema,
218
- timestamp
219
- };
220
- return [payload];
221
- }
222
- async startHandler() {
223
- var _a;
224
- await super.startHandler();
225
- this.pairs = createUniswapPoolContracts(assertEx2(this.provider, "Provider Required"), ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts);
226
- return true;
227
- }
228
- };
229
-
230
- // src/Plugin.ts
231
- var UniswapCryptoMarketPlugin = () => createPayloadSetWitnessPlugin(
232
- { required: { [UniswapCryptoMarketSchema2]: 1 }, schema: PayloadSetSchema },
233
- {
234
- witness: async (params) => {
235
- const result = await UniswapCryptoMarketWitness.create(params);
236
- return result;
237
- }
238
- }
239
- );
240
-
241
- // src/index.ts
242
- var src_default = UniswapCryptoMarketPlugin;
243
- export {
230
+ // Annotate the CommonJS export names for ESM import in node:
231
+ 0 && (module.exports = {
244
232
  EthersUniSwap3Pair,
245
233
  EthersUniswap3PoolSlot0Wrapper,
246
- UniswapCryptoMarketPlugin,
247
- UniswapCryptoMarketWitness,
248
234
  UniswapPoolContracts,
249
235
  createUniswapPoolContracts,
250
- src_default as default,
251
236
  pricesFromUniswap3
252
- };
253
- //# sourceMappingURL=index.mjs.map
237
+ });
238
+ //# 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 * as UniswapTypechain 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?: UniswapTypechain.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(): UniswapTypechain.IUniswapV3Pool {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? UniswapTypechain.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":[]}