@xyo-network/uniswap-crypto-market-plugin 2.75.14 → 2.75.16

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 (146) hide show
  1. package/dist/browser/Config.d.cts +1 -1
  2. package/dist/browser/Config.d.cts.map +1 -1
  3. package/dist/browser/Config.d.mts +1 -1
  4. package/dist/browser/Config.d.mts.map +1 -1
  5. package/dist/browser/Config.d.ts +1 -1
  6. package/dist/browser/Config.d.ts.map +1 -1
  7. package/dist/browser/Plugin.d.cts +2 -2
  8. package/dist/browser/Plugin.d.mts +2 -2
  9. package/dist/browser/Plugin.d.ts +2 -2
  10. package/dist/browser/Witness.d.cts +2 -1
  11. package/dist/browser/Witness.d.cts.map +1 -1
  12. package/dist/browser/Witness.d.mts +2 -1
  13. package/dist/browser/Witness.d.mts.map +1 -1
  14. package/dist/browser/Witness.d.ts +2 -1
  15. package/dist/browser/Witness.d.ts.map +1 -1
  16. package/dist/browser/index.cjs +2 -2
  17. package/dist/browser/index.cjs.map +1 -1
  18. package/dist/browser/index.js +1 -1
  19. package/dist/browser/index.js.map +1 -1
  20. package/dist/docs.json +858 -461
  21. package/dist/node/Config.d.cts +1 -1
  22. package/dist/node/Config.d.cts.map +1 -1
  23. package/dist/node/Config.d.mts +1 -1
  24. package/dist/node/Config.d.mts.map +1 -1
  25. package/dist/node/Config.d.ts +1 -1
  26. package/dist/node/Config.d.ts.map +1 -1
  27. package/dist/node/Plugin.d.cts +2 -2
  28. package/dist/node/Plugin.d.mts +2 -2
  29. package/dist/node/Plugin.d.ts +2 -2
  30. package/dist/node/Witness.d.cts +2 -1
  31. package/dist/node/Witness.d.cts.map +1 -1
  32. package/dist/node/Witness.d.mts +2 -1
  33. package/dist/node/Witness.d.mts.map +1 -1
  34. package/dist/node/Witness.d.ts +2 -1
  35. package/dist/node/Witness.d.ts.map +1 -1
  36. package/dist/node/index.cjs +2 -2
  37. package/dist/node/index.cjs.map +1 -1
  38. package/dist/node/index.js +1 -1
  39. package/dist/node/index.js.map +1 -1
  40. package/package.json +18 -17
  41. package/src/Config.ts +1 -1
  42. package/src/Witness.ts +2 -1
  43. package/dist/browser/Config.cjs +0 -19
  44. package/dist/browser/Config.cjs.map +0 -1
  45. package/dist/browser/Config.js +0 -1
  46. package/dist/browser/Config.js.map +0 -1
  47. package/dist/browser/Plugin.cjs +0 -270
  48. package/dist/browser/Plugin.cjs.map +0 -1
  49. package/dist/browser/Plugin.js +0 -242
  50. package/dist/browser/Plugin.js.map +0 -1
  51. package/dist/browser/Witness.cjs +0 -254
  52. package/dist/browser/Witness.cjs.map +0 -1
  53. package/dist/browser/Witness.js +0 -226
  54. package/dist/browser/Witness.js.map +0 -1
  55. package/dist/browser/lib/Ethers/UniSwap3Pair.cjs +0 -173
  56. package/dist/browser/lib/Ethers/UniSwap3Pair.cjs.map +0 -1
  57. package/dist/browser/lib/Ethers/UniSwap3Pair.js +0 -142
  58. package/dist/browser/lib/Ethers/UniSwap3Pair.js.map +0 -1
  59. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.cjs +0 -53
  60. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.cjs.map +0 -1
  61. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +0 -32
  62. package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +0 -1
  63. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.cjs +0 -19
  64. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.cjs.map +0 -1
  65. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.js +0 -1
  66. package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.js.map +0 -1
  67. package/dist/browser/lib/Ethers/createUniswapPoolContracts.cjs +0 -182
  68. package/dist/browser/lib/Ethers/createUniswapPoolContracts.cjs.map +0 -1
  69. package/dist/browser/lib/Ethers/createUniswapPoolContracts.js +0 -149
  70. package/dist/browser/lib/Ethers/createUniswapPoolContracts.js.map +0 -1
  71. package/dist/browser/lib/Ethers/index.cjs +0 -184
  72. package/dist/browser/lib/Ethers/index.cjs.map +0 -1
  73. package/dist/browser/lib/Ethers/index.js +0 -151
  74. package/dist/browser/lib/Ethers/index.js.map +0 -1
  75. package/dist/browser/lib/UniswapPoolContracts.cjs +0 -54
  76. package/dist/browser/lib/UniswapPoolContracts.cjs.map +0 -1
  77. package/dist/browser/lib/UniswapPoolContracts.js +0 -33
  78. package/dist/browser/lib/UniswapPoolContracts.js.map +0 -1
  79. package/dist/browser/lib/UniswapV3Slot0Fields.cjs +0 -19
  80. package/dist/browser/lib/UniswapV3Slot0Fields.cjs.map +0 -1
  81. package/dist/browser/lib/UniswapV3Slot0Fields.js +0 -1
  82. package/dist/browser/lib/UniswapV3Slot0Fields.js.map +0 -1
  83. package/dist/browser/lib/index.cjs +0 -230
  84. package/dist/browser/lib/index.cjs.map +0 -1
  85. package/dist/browser/lib/index.js +0 -197
  86. package/dist/browser/lib/index.js.map +0 -1
  87. package/dist/browser/lib/logErrors.cjs +0 -43
  88. package/dist/browser/lib/logErrors.cjs.map +0 -1
  89. package/dist/browser/lib/logErrors.js +0 -22
  90. package/dist/browser/lib/logErrors.js.map +0 -1
  91. package/dist/browser/lib/pricesFromUniswap3.cjs +0 -50
  92. package/dist/browser/lib/pricesFromUniswap3.cjs.map +0 -1
  93. package/dist/browser/lib/pricesFromUniswap3.js +0 -29
  94. package/dist/browser/lib/pricesFromUniswap3.js.map +0 -1
  95. package/dist/node/Config.cjs +0 -19
  96. package/dist/node/Config.cjs.map +0 -1
  97. package/dist/node/Config.js +0 -1
  98. package/dist/node/Config.js.map +0 -1
  99. package/dist/node/Plugin.cjs +0 -275
  100. package/dist/node/Plugin.cjs.map +0 -1
  101. package/dist/node/Plugin.js +0 -243
  102. package/dist/node/Plugin.js.map +0 -1
  103. package/dist/node/Witness.cjs +0 -259
  104. package/dist/node/Witness.cjs.map +0 -1
  105. package/dist/node/Witness.js +0 -227
  106. package/dist/node/Witness.js.map +0 -1
  107. package/dist/node/lib/Ethers/UniSwap3Pair.cjs +0 -177
  108. package/dist/node/lib/Ethers/UniSwap3Pair.cjs.map +0 -1
  109. package/dist/node/lib/Ethers/UniSwap3Pair.js +0 -142
  110. package/dist/node/lib/Ethers/UniSwap3Pair.js.map +0 -1
  111. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.cjs +0 -57
  112. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.cjs.map +0 -1
  113. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +0 -32
  114. package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +0 -1
  115. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.cjs +0 -19
  116. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.cjs.map +0 -1
  117. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.js +0 -1
  118. package/dist/node/lib/Ethers/UniswapV3Slot0Fields.js.map +0 -1
  119. package/dist/node/lib/Ethers/createUniswapPoolContracts.cjs +0 -186
  120. package/dist/node/lib/Ethers/createUniswapPoolContracts.cjs.map +0 -1
  121. package/dist/node/lib/Ethers/createUniswapPoolContracts.js +0 -149
  122. package/dist/node/lib/Ethers/createUniswapPoolContracts.js.map +0 -1
  123. package/dist/node/lib/Ethers/index.cjs +0 -190
  124. package/dist/node/lib/Ethers/index.cjs.map +0 -1
  125. package/dist/node/lib/Ethers/index.js +0 -151
  126. package/dist/node/lib/Ethers/index.js.map +0 -1
  127. package/dist/node/lib/UniswapPoolContracts.cjs +0 -58
  128. package/dist/node/lib/UniswapPoolContracts.cjs.map +0 -1
  129. package/dist/node/lib/UniswapPoolContracts.js +0 -33
  130. package/dist/node/lib/UniswapPoolContracts.js.map +0 -1
  131. package/dist/node/lib/UniswapV3Slot0Fields.cjs +0 -19
  132. package/dist/node/lib/UniswapV3Slot0Fields.cjs.map +0 -1
  133. package/dist/node/lib/UniswapV3Slot0Fields.js +0 -1
  134. package/dist/node/lib/UniswapV3Slot0Fields.js.map +0 -1
  135. package/dist/node/lib/index.cjs +0 -238
  136. package/dist/node/lib/index.cjs.map +0 -1
  137. package/dist/node/lib/index.js +0 -197
  138. package/dist/node/lib/index.js.map +0 -1
  139. package/dist/node/lib/logErrors.cjs +0 -48
  140. package/dist/node/lib/logErrors.cjs.map +0 -1
  141. package/dist/node/lib/logErrors.js +0 -22
  142. package/dist/node/lib/logErrors.js.map +0 -1
  143. package/dist/node/lib/pricesFromUniswap3.cjs +0 -54
  144. package/dist/node/lib/pricesFromUniswap3.cjs.map +0 -1
  145. package/dist/node/lib/pricesFromUniswap3.js +0 -29
  146. package/dist/node/lib/pricesFromUniswap3.js.map +0 -1
@@ -1,173 +0,0 @@
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);
29
-
30
- // src/lib/Ethers/UniSwap3Pair.ts
31
- var UniSwap3Pair_exports = {};
32
- __export(UniSwap3Pair_exports, {
33
- EthersUniSwap3Pair: () => EthersUniSwap3Pair
34
- });
35
- module.exports = __toCommonJS(UniSwap3Pair_exports);
36
- var import_sdk = require("@uniswap/sdk");
37
- var import_sdk_core = require("@uniswap/sdk-core");
38
- var import_v3_sdk = require("@uniswap/v3-sdk");
39
- var import_assert = require("@xylabs/assert");
40
- var import_delay = require("@xylabs/delay");
41
- var import_typechain = require("@xyo-network/typechain");
42
- var UniswapTypechain = __toESM(require("@xyo-network/uniswap-typechain"), 1);
43
-
44
- // src/lib/logErrors.ts
45
- var logErrors = (func) => {
46
- try {
47
- return func();
48
- } catch (ex) {
49
- console.error(ex);
50
- throw ex;
51
- }
52
- };
53
- var logErrorsAsync = async (func) => {
54
- try {
55
- return await func();
56
- } catch (ex) {
57
- console.error(ex);
58
- throw ex;
59
- }
60
- };
61
-
62
- // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
63
- var EthersUniswap3PoolSlot0Wrapper = class {
64
- values;
65
- constructor(values) {
66
- this.values = values;
67
- }
68
- get feeProtocol() {
69
- return this.values[5];
70
- }
71
- get observationCardinality() {
72
- return this.values[3];
73
- }
74
- get observationCardinalityNext() {
75
- return this.values[4];
76
- }
77
- get observationIndex() {
78
- return this.values[2];
79
- }
80
- get sqrtPriceX96() {
81
- return this.values[0];
82
- }
83
- get tick() {
84
- return this.values[1];
85
- }
86
- get unlocked() {
87
- return this.values[6];
88
- }
89
- };
90
-
91
- // src/lib/Ethers/UniSwap3Pair.ts
92
- var waitNotNull = async (closure) => {
93
- while (closure() === null) {
94
- await (0, import_delay.delay)(10);
95
- }
96
- };
97
- var EthersUniSwap3Pair = class {
98
- address;
99
- provider;
100
- _pool;
101
- _poolContract;
102
- _slot0;
103
- _tokenContracts = [void 0, void 0];
104
- _tokens = [void 0, void 0];
105
- constructor(address, provider) {
106
- this.address = address;
107
- this.provider = provider;
108
- }
109
- async pool() {
110
- return await logErrorsAsync(async () => {
111
- await waitNotNull(() => this._pool);
112
- this._pool = this._pool || null;
113
- const slot0 = await this.slot0();
114
- this._pool = this._pool ?? new import_v3_sdk.Pool(
115
- await this.token(0),
116
- await this.token(1),
117
- slot0.feeProtocol,
118
- slot0.sqrtPriceX96.toHexString(),
119
- (await this.poolContract().liquidity()).toHexString(),
120
- slot0.tick
121
- );
122
- return (0, import_assert.assertEx)(this._pool);
123
- });
124
- }
125
- poolContract() {
126
- return logErrors(() => {
127
- this._poolContract = this._poolContract ?? UniswapTypechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
128
- return (0, import_assert.assertEx)(this._poolContract);
129
- });
130
- }
131
- async price() {
132
- return await logErrorsAsync(async () => {
133
- const tokenIndexes = [0, 1];
134
- const pool = await this.pool();
135
- const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
136
- const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
137
- const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
138
- const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
139
- const result = {
140
- tokens: tokenIndexes.map((value) => {
141
- return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
142
- })
143
- };
144
- return result;
145
- });
146
- }
147
- async slot0() {
148
- return await logErrorsAsync(async () => {
149
- await waitNotNull(() => this._slot0);
150
- this._slot0 = this._slot0 || null;
151
- this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
152
- return (0, import_assert.assertEx)(this._slot0);
153
- });
154
- }
155
- async token(index) {
156
- return await logErrorsAsync(async () => {
157
- await waitNotNull(() => this._tokens[index]);
158
- this._tokens[index] = this._tokens[index] || null;
159
- const tokenContract = await this.tokenContract(index);
160
- 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());
161
- return (0, import_assert.assertEx)(this._tokens[index]);
162
- });
163
- }
164
- async tokenContract(index) {
165
- return await logErrorsAsync(async () => {
166
- await waitNotNull(() => this._tokenContracts[index]);
167
- this._tokenContracts[index] = this._tokenContracts[index] || null;
168
- this._tokenContracts[index] = this._tokenContracts[index] ?? import_typechain.IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
169
- return (0, import_assert.assertEx)(this._tokenContracts[index]);
170
- });
171
- }
172
- };
173
- //# sourceMappingURL=UniSwap3Pair.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/Ethers/UniSwap3Pair.ts","../../../../src/lib/logErrors.ts","../../../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts"],"sourcesContent":["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","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 { 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"],"mappings":"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","names":[]}
@@ -1,142 +0,0 @@
1
- // src/lib/Ethers/UniSwap3Pair.ts
2
- import { ChainId } from "@uniswap/sdk";
3
- import { Token } from "@uniswap/sdk-core";
4
- import { Pool } from "@uniswap/v3-sdk";
5
- import { assertEx } from "@xylabs/assert";
6
- import { delay } from "@xylabs/delay";
7
- import { IERC20Metadata__factory } from "@xyo-network/typechain";
8
- import * as UniswapTypechain from "@xyo-network/uniswap-typechain";
9
-
10
- // src/lib/logErrors.ts
11
- var logErrors = (func) => {
12
- try {
13
- return func();
14
- } catch (ex) {
15
- console.error(ex);
16
- throw ex;
17
- }
18
- };
19
- var logErrorsAsync = async (func) => {
20
- try {
21
- return await func();
22
- } catch (ex) {
23
- console.error(ex);
24
- throw ex;
25
- }
26
- };
27
-
28
- // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
29
- var EthersUniswap3PoolSlot0Wrapper = class {
30
- values;
31
- constructor(values) {
32
- this.values = values;
33
- }
34
- get feeProtocol() {
35
- return this.values[5];
36
- }
37
- get observationCardinality() {
38
- return this.values[3];
39
- }
40
- get observationCardinalityNext() {
41
- return this.values[4];
42
- }
43
- get observationIndex() {
44
- return this.values[2];
45
- }
46
- get sqrtPriceX96() {
47
- return this.values[0];
48
- }
49
- get tick() {
50
- return this.values[1];
51
- }
52
- get unlocked() {
53
- return this.values[6];
54
- }
55
- };
56
-
57
- // src/lib/Ethers/UniSwap3Pair.ts
58
- var waitNotNull = async (closure) => {
59
- while (closure() === null) {
60
- await delay(10);
61
- }
62
- };
63
- var EthersUniSwap3Pair = class {
64
- address;
65
- provider;
66
- _pool;
67
- _poolContract;
68
- _slot0;
69
- _tokenContracts = [void 0, void 0];
70
- _tokens = [void 0, void 0];
71
- constructor(address, provider) {
72
- this.address = address;
73
- this.provider = provider;
74
- }
75
- async pool() {
76
- return await logErrorsAsync(async () => {
77
- await waitNotNull(() => this._pool);
78
- this._pool = this._pool || null;
79
- const slot0 = await this.slot0();
80
- this._pool = this._pool ?? new Pool(
81
- await this.token(0),
82
- await this.token(1),
83
- slot0.feeProtocol,
84
- slot0.sqrtPriceX96.toHexString(),
85
- (await this.poolContract().liquidity()).toHexString(),
86
- slot0.tick
87
- );
88
- return assertEx(this._pool);
89
- });
90
- }
91
- poolContract() {
92
- return logErrors(() => {
93
- this._poolContract = this._poolContract ?? UniswapTypechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
94
- return assertEx(this._poolContract);
95
- });
96
- }
97
- async price() {
98
- return await logErrorsAsync(async () => {
99
- const tokenIndexes = [0, 1];
100
- const pool = await this.pool();
101
- const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
102
- const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
103
- 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());
105
- const result = {
106
- tokens: tokenIndexes.map((value) => {
107
- return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
108
- })
109
- };
110
- return result;
111
- });
112
- }
113
- async slot0() {
114
- return await logErrorsAsync(async () => {
115
- await waitNotNull(() => this._slot0);
116
- this._slot0 = this._slot0 || null;
117
- this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
118
- return assertEx(this._slot0);
119
- });
120
- }
121
- async token(index) {
122
- return await logErrorsAsync(async () => {
123
- await waitNotNull(() => this._tokens[index]);
124
- this._tokens[index] = this._tokens[index] || null;
125
- 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]);
128
- });
129
- }
130
- async tokenContract(index) {
131
- return await logErrorsAsync(async () => {
132
- await waitNotNull(() => this._tokenContracts[index]);
133
- 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]);
136
- });
137
- }
138
- };
139
- export {
140
- EthersUniSwap3Pair
141
- };
142
- //# sourceMappingURL=UniSwap3Pair.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/Ethers/UniSwap3Pair.ts","../../../../src/lib/logErrors.ts","../../../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts"],"sourcesContent":["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","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 { 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"],"mappings":"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","names":[]}
@@ -1,53 +0,0 @@
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/Uniswap3PoolSlot0Wrapper.ts
21
- var Uniswap3PoolSlot0Wrapper_exports = {};
22
- __export(Uniswap3PoolSlot0Wrapper_exports, {
23
- EthersUniswap3PoolSlot0Wrapper: () => EthersUniswap3PoolSlot0Wrapper
24
- });
25
- module.exports = __toCommonJS(Uniswap3PoolSlot0Wrapper_exports);
26
- var EthersUniswap3PoolSlot0Wrapper = class {
27
- values;
28
- constructor(values) {
29
- this.values = values;
30
- }
31
- get feeProtocol() {
32
- return this.values[5];
33
- }
34
- get observationCardinality() {
35
- return this.values[3];
36
- }
37
- get observationCardinalityNext() {
38
- return this.values[4];
39
- }
40
- get observationIndex() {
41
- return this.values[2];
42
- }
43
- get sqrtPriceX96() {
44
- return this.values[0];
45
- }
46
- get tick() {
47
- return this.values[1];
48
- }
49
- get unlocked() {
50
- return this.values[6];
51
- }
52
- };
53
- //# sourceMappingURL=Uniswap3PoolSlot0Wrapper.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAM,iCAAN,MAAqC;AAAA,EAChC;AAAA,EACV,YAAY,QAAoC;AAC9C,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,yBAAyB;AAC3B,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,6BAA6B;AAC/B,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,mBAAmB;AACrB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AACF;","names":[]}
@@ -1,32 +0,0 @@
1
- // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
2
- var EthersUniswap3PoolSlot0Wrapper = class {
3
- values;
4
- constructor(values) {
5
- this.values = values;
6
- }
7
- get feeProtocol() {
8
- return this.values[5];
9
- }
10
- get observationCardinality() {
11
- return this.values[3];
12
- }
13
- get observationCardinalityNext() {
14
- return this.values[4];
15
- }
16
- get observationIndex() {
17
- return this.values[2];
18
- }
19
- get sqrtPriceX96() {
20
- return this.values[0];
21
- }
22
- get tick() {
23
- return this.values[1];
24
- }
25
- get unlocked() {
26
- return this.values[6];
27
- }
28
- };
29
- export {
30
- EthersUniswap3PoolSlot0Wrapper
31
- };
32
- //# sourceMappingURL=Uniswap3PoolSlot0Wrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts"],"sourcesContent":["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"],"mappings":";AAEO,IAAM,iCAAN,MAAqC;AAAA,EAChC;AAAA,EACV,YAAY,QAAoC;AAC9C,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,yBAAyB;AAC3B,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,6BAA6B;AAC/B,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,mBAAmB;AACrB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,eAAe;AACjB,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO,CAAC;AAAA,EACtB;AACF;","names":[]}
@@ -1,19 +0,0 @@
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/Ethers/UniswapV3Slot0Fields.ts
17
- var UniswapV3Slot0Fields_exports = {};
18
- module.exports = __toCommonJS(UniswapV3Slot0Fields_exports);
19
- //# sourceMappingURL=UniswapV3Slot0Fields.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/lib/Ethers/UniswapV3Slot0Fields.ts"],"sourcesContent":["import { BigNumber } from '@ethersproject/bignumber'\n\nexport type EthersUniswapV3Slot0Fields = [BigNumber, number, number, number, number, number, boolean]\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=UniswapV3Slot0Fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,182 +0,0 @@
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);
29
-
30
- // src/lib/Ethers/createUniswapPoolContracts.ts
31
- var createUniswapPoolContracts_exports = {};
32
- __export(createUniswapPoolContracts_exports, {
33
- createUniswapPoolContracts: () => createUniswapPoolContracts
34
- });
35
- module.exports = __toCommonJS(createUniswapPoolContracts_exports);
36
-
37
- // src/lib/logErrors.ts
38
- var logErrors = (func) => {
39
- try {
40
- return func();
41
- } catch (ex) {
42
- console.error(ex);
43
- throw ex;
44
- }
45
- };
46
- var logErrorsAsync = async (func) => {
47
- try {
48
- return await func();
49
- } catch (ex) {
50
- console.error(ex);
51
- throw ex;
52
- }
53
- };
54
-
55
- // src/lib/Ethers/UniSwap3Pair.ts
56
- var import_sdk = require("@uniswap/sdk");
57
- var import_sdk_core = require("@uniswap/sdk-core");
58
- var import_v3_sdk = require("@uniswap/v3-sdk");
59
- var import_assert = require("@xylabs/assert");
60
- var import_delay = require("@xylabs/delay");
61
- var import_typechain = require("@xyo-network/typechain");
62
- var UniswapTypechain = __toESM(require("@xyo-network/uniswap-typechain"), 1);
63
-
64
- // src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
65
- var EthersUniswap3PoolSlot0Wrapper = class {
66
- values;
67
- constructor(values) {
68
- this.values = values;
69
- }
70
- get feeProtocol() {
71
- return this.values[5];
72
- }
73
- get observationCardinality() {
74
- return this.values[3];
75
- }
76
- get observationCardinalityNext() {
77
- return this.values[4];
78
- }
79
- get observationIndex() {
80
- return this.values[2];
81
- }
82
- get sqrtPriceX96() {
83
- return this.values[0];
84
- }
85
- get tick() {
86
- return this.values[1];
87
- }
88
- get unlocked() {
89
- return this.values[6];
90
- }
91
- };
92
-
93
- // src/lib/Ethers/UniSwap3Pair.ts
94
- var waitNotNull = async (closure) => {
95
- while (closure() === null) {
96
- await (0, import_delay.delay)(10);
97
- }
98
- };
99
- var EthersUniSwap3Pair = class {
100
- address;
101
- provider;
102
- _pool;
103
- _poolContract;
104
- _slot0;
105
- _tokenContracts = [void 0, void 0];
106
- _tokens = [void 0, void 0];
107
- constructor(address, provider) {
108
- this.address = address;
109
- this.provider = provider;
110
- }
111
- async pool() {
112
- return await logErrorsAsync(async () => {
113
- await waitNotNull(() => this._pool);
114
- this._pool = this._pool || null;
115
- const slot0 = await this.slot0();
116
- this._pool = this._pool ?? new import_v3_sdk.Pool(
117
- await this.token(0),
118
- await this.token(1),
119
- slot0.feeProtocol,
120
- slot0.sqrtPriceX96.toHexString(),
121
- (await this.poolContract().liquidity()).toHexString(),
122
- slot0.tick
123
- );
124
- return (0, import_assert.assertEx)(this._pool);
125
- });
126
- }
127
- poolContract() {
128
- return logErrors(() => {
129
- this._poolContract = this._poolContract ?? UniswapTypechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
130
- return (0, import_assert.assertEx)(this._poolContract);
131
- });
132
- }
133
- async price() {
134
- return await logErrorsAsync(async () => {
135
- const tokenIndexes = [0, 1];
136
- const pool = await this.pool();
137
- const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
138
- const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
139
- const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
140
- const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
141
- const result = {
142
- tokens: tokenIndexes.map((value) => {
143
- return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
144
- })
145
- };
146
- return result;
147
- });
148
- }
149
- async slot0() {
150
- return await logErrorsAsync(async () => {
151
- await waitNotNull(() => this._slot0);
152
- this._slot0 = this._slot0 || null;
153
- this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
154
- return (0, import_assert.assertEx)(this._slot0);
155
- });
156
- }
157
- async token(index) {
158
- return await logErrorsAsync(async () => {
159
- await waitNotNull(() => this._tokens[index]);
160
- this._tokens[index] = this._tokens[index] || null;
161
- const tokenContract = await this.tokenContract(index);
162
- 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());
163
- return (0, import_assert.assertEx)(this._tokens[index]);
164
- });
165
- }
166
- async tokenContract(index) {
167
- return await logErrorsAsync(async () => {
168
- await waitNotNull(() => this._tokenContracts[index]);
169
- this._tokenContracts[index] = this._tokenContracts[index] || null;
170
- this._tokenContracts[index] = this._tokenContracts[index] ?? import_typechain.IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
171
- return (0, import_assert.assertEx)(this._tokenContracts[index]);
172
- });
173
- }
174
- };
175
-
176
- // src/lib/Ethers/createUniswapPoolContracts.ts
177
- var createUniswapPoolContracts = (provider, contracts) => {
178
- return logErrors(() => {
179
- return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
180
- });
181
- };
182
- //# sourceMappingURL=createUniswapPoolContracts.cjs.map