@xyo-network/uniswap-crypto-market-plugin 2.99.3 → 2.99.5
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.
- package/dist/browser/Plugin.d.cts +1 -1
- package/dist/browser/Plugin.d.mts +1 -1
- package/dist/browser/Plugin.d.ts +1 -1
- package/dist/browser/Witness.d.cts +2 -2
- package/dist/browser/Witness.d.mts +2 -2
- package/dist/browser/Witness.d.ts +2 -2
- package/dist/browser/index.cjs +80 -70
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +4 -4
- package/dist/browser/index.d.mts +4 -4
- package/dist/browser/index.d.ts +4 -4
- package/dist/browser/{index.js → index.mjs} +84 -75
- package/dist/browser/index.mjs.map +1 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.d.cts +1 -1
- package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts +1 -1
- package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts +1 -1
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts +1 -1
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts +1 -1
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +1 -1
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.cts +1 -1
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.mts +1 -1
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.ts +1 -1
- package/dist/browser/lib/Ethers/index.d.cts +4 -4
- package/dist/browser/lib/Ethers/index.d.mts +4 -4
- package/dist/browser/lib/Ethers/index.d.ts +4 -4
- package/dist/browser/lib/index.d.cts +3 -3
- package/dist/browser/lib/index.d.mts +3 -3
- package/dist/browser/lib/index.d.ts +3 -3
- package/dist/browser/lib/pricesFromUniswap3.d.cts +1 -1
- package/dist/browser/lib/pricesFromUniswap3.d.mts +1 -1
- package/dist/browser/lib/pricesFromUniswap3.d.ts +1 -1
- package/dist/neutral/Plugin.d.cts +1 -1
- package/dist/neutral/Plugin.d.mts +1 -1
- package/dist/neutral/Plugin.d.ts +1 -1
- package/dist/neutral/Witness.d.cts +2 -2
- package/dist/neutral/Witness.d.mts +2 -2
- package/dist/neutral/Witness.d.ts +2 -2
- package/dist/neutral/index.cjs +80 -70
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.d.cts +4 -4
- package/dist/neutral/index.d.mts +4 -4
- package/dist/neutral/index.d.ts +4 -4
- package/dist/{node/index.js → neutral/index.mjs} +84 -76
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/neutral/lib/Ethers/UniSwap3Pair.d.cts +1 -1
- package/dist/neutral/lib/Ethers/UniSwap3Pair.d.mts +1 -1
- package/dist/neutral/lib/Ethers/UniSwap3Pair.d.ts +1 -1
- package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts +1 -1
- package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts +1 -1
- package/dist/neutral/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +1 -1
- package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.cts +1 -1
- package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.mts +1 -1
- package/dist/neutral/lib/Ethers/createUniswapPoolContracts.d.ts +1 -1
- package/dist/neutral/lib/Ethers/index.d.cts +4 -4
- package/dist/neutral/lib/Ethers/index.d.mts +4 -4
- package/dist/neutral/lib/Ethers/index.d.ts +4 -4
- package/dist/neutral/lib/index.d.cts +3 -3
- package/dist/neutral/lib/index.d.mts +3 -3
- package/dist/neutral/lib/index.d.ts +3 -3
- package/dist/neutral/lib/pricesFromUniswap3.d.cts +1 -1
- package/dist/neutral/lib/pricesFromUniswap3.d.mts +1 -1
- package/dist/neutral/lib/pricesFromUniswap3.d.ts +1 -1
- package/dist/node/Plugin.d.cts +1 -1
- package/dist/node/Plugin.d.mts +1 -1
- package/dist/node/Plugin.d.ts +1 -1
- package/dist/node/Witness.d.cts +2 -2
- package/dist/node/Witness.d.mts +2 -2
- package/dist/node/Witness.d.ts +2 -2
- package/dist/node/index.cjs +86 -74
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +4 -4
- package/dist/node/index.d.mts +4 -4
- package/dist/node/index.d.ts +4 -4
- package/dist/{neutral/index.js → node/index.mjs} +91 -79
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.d.cts +1 -1
- package/dist/node/lib/Ethers/UniSwap3Pair.d.mts +1 -1
- package/dist/node/lib/Ethers/UniSwap3Pair.d.ts +1 -1
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts +1 -1
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts +1 -1
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +1 -1
- package/dist/node/lib/Ethers/createUniswapPoolContracts.d.cts +1 -1
- package/dist/node/lib/Ethers/createUniswapPoolContracts.d.mts +1 -1
- package/dist/node/lib/Ethers/createUniswapPoolContracts.d.ts +1 -1
- package/dist/node/lib/Ethers/index.d.cts +4 -4
- package/dist/node/lib/Ethers/index.d.mts +4 -4
- package/dist/node/lib/Ethers/index.d.ts +4 -4
- package/dist/node/lib/index.d.cts +3 -3
- package/dist/node/lib/index.d.mts +3 -3
- package/dist/node/lib/index.d.ts +3 -3
- package/dist/node/lib/pricesFromUniswap3.d.cts +1 -1
- package/dist/node/lib/pricesFromUniswap3.d.mts +1 -1
- package/dist/node/lib/pricesFromUniswap3.d.ts +1 -1
- package/package.json +20 -20
- package/src/Plugin.ts +1 -1
- package/src/Witness.ts +2 -2
- package/src/index.ts +4 -4
- package/src/lib/Ethers/UniSwap3Pair.ts +16 -16
- package/src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts +1 -1
- package/src/lib/Ethers/createUniswapPoolContracts.ts +3 -3
- package/src/lib/Ethers/index.ts +4 -4
- package/src/lib/UniswapPoolContracts.ts +13 -13
- package/src/lib/index.ts +3 -3
- package/src/lib/pricesFromUniswap3.ts +3 -3
- package/dist/browser/index.js.map +0 -1
- package/dist/neutral/index.js.map +0 -1
- package/dist/node/index.js.map +0 -1
|
@@ -1,20 +1,28 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
+
var __reflectGet = Reflect.get;
|
|
4
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
7
|
+
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
8
|
+
|
|
1
9
|
// src/lib/logErrors.ts
|
|
2
|
-
var logErrors = (func) => {
|
|
10
|
+
var logErrors = /* @__PURE__ */ __name((func) => {
|
|
3
11
|
try {
|
|
4
12
|
return func();
|
|
5
13
|
} catch (ex) {
|
|
6
14
|
console.error(ex);
|
|
7
15
|
throw ex;
|
|
8
16
|
}
|
|
9
|
-
};
|
|
10
|
-
var logErrorsAsync = async (func) => {
|
|
17
|
+
}, "logErrors");
|
|
18
|
+
var logErrorsAsync = /* @__PURE__ */ __name(async (func) => {
|
|
11
19
|
try {
|
|
12
20
|
return await func();
|
|
13
21
|
} catch (ex) {
|
|
14
22
|
console.error(ex);
|
|
15
23
|
throw ex;
|
|
16
24
|
}
|
|
17
|
-
};
|
|
25
|
+
}, "logErrorsAsync");
|
|
18
26
|
|
|
19
27
|
// src/lib/Ethers/UniSwap3Pair.ts
|
|
20
28
|
import { assertEx } from "@xylabs/assert";
|
|
@@ -25,7 +33,7 @@ import { IUniswapV3Pool__factory } from "@xyo-network/uniswap-typechain";
|
|
|
25
33
|
import { Pool } from "@xyo-network/uniswap-v3-sdk";
|
|
26
34
|
|
|
27
35
|
// src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
|
|
28
|
-
var
|
|
36
|
+
var _EthersUniswap3PoolSlot0Wrapper = class _EthersUniswap3PoolSlot0Wrapper {
|
|
29
37
|
values;
|
|
30
38
|
constructor(values) {
|
|
31
39
|
this.values = values;
|
|
@@ -52,27 +60,35 @@ var EthersUniswap3PoolSlot0Wrapper = class {
|
|
|
52
60
|
return this.values[6];
|
|
53
61
|
}
|
|
54
62
|
};
|
|
63
|
+
__name(_EthersUniswap3PoolSlot0Wrapper, "EthersUniswap3PoolSlot0Wrapper");
|
|
64
|
+
var EthersUniswap3PoolSlot0Wrapper = _EthersUniswap3PoolSlot0Wrapper;
|
|
55
65
|
|
|
56
66
|
// src/lib/Ethers/UniSwap3Pair.ts
|
|
57
|
-
var ChainId
|
|
67
|
+
var ChainId;
|
|
68
|
+
(function(ChainId2) {
|
|
58
69
|
ChainId2[ChainId2["MAINNET"] = 1] = "MAINNET";
|
|
59
70
|
ChainId2[ChainId2["ROPSTEN"] = 3] = "ROPSTEN";
|
|
60
71
|
ChainId2[ChainId2["RINKEBY"] = 4] = "RINKEBY";
|
|
61
72
|
ChainId2[ChainId2["G\xD6RLI"] = 5] = "G\xD6RLI";
|
|
62
73
|
ChainId2[ChainId2["KOVAN"] = 42] = "KOVAN";
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var waitNotNull = async (closure) => {
|
|
74
|
+
})(ChainId || (ChainId = {}));
|
|
75
|
+
var waitNotNull = /* @__PURE__ */ __name(async (closure) => {
|
|
66
76
|
while (closure() === null) await delay(10);
|
|
67
|
-
};
|
|
68
|
-
var
|
|
77
|
+
}, "waitNotNull");
|
|
78
|
+
var _EthersUniSwap3Pair = class _EthersUniSwap3Pair {
|
|
69
79
|
address;
|
|
70
80
|
provider;
|
|
71
81
|
_pool;
|
|
72
82
|
_poolContract;
|
|
73
83
|
_slot0;
|
|
74
|
-
_tokenContracts = [
|
|
75
|
-
|
|
84
|
+
_tokenContracts = [
|
|
85
|
+
void 0,
|
|
86
|
+
void 0
|
|
87
|
+
];
|
|
88
|
+
_tokens = [
|
|
89
|
+
void 0,
|
|
90
|
+
void 0
|
|
91
|
+
];
|
|
76
92
|
constructor(address, provider) {
|
|
77
93
|
this.address = address;
|
|
78
94
|
this.provider = provider;
|
|
@@ -82,14 +98,7 @@ var EthersUniSwap3Pair = class {
|
|
|
82
98
|
await waitNotNull(() => this._pool);
|
|
83
99
|
this._pool = this._pool || null;
|
|
84
100
|
const slot0 = await this.slot0();
|
|
85
|
-
this._pool = this._pool === null ? new Pool(
|
|
86
|
-
await this.token(0),
|
|
87
|
-
await this.token(1),
|
|
88
|
-
Number(slot0.feeProtocol),
|
|
89
|
-
`0x${slot0.sqrtPriceX96.toString(16)}`,
|
|
90
|
-
`0x${(await this.poolContract().liquidity()).toString(16)}`,
|
|
91
|
-
Number(slot0.tick)
|
|
92
|
-
) : this._pool;
|
|
101
|
+
this._pool = this._pool === null ? new Pool(await this.token(0), await this.token(1), Number(slot0.feeProtocol), `0x${slot0.sqrtPriceX96.toString(16)}`, `0x${(await this.poolContract().liquidity()).toString(16)}`, Number(slot0.tick)) : this._pool;
|
|
93
102
|
return assertEx(this._pool);
|
|
94
103
|
});
|
|
95
104
|
}
|
|
@@ -101,18 +110,23 @@ var EthersUniSwap3Pair = class {
|
|
|
101
110
|
}
|
|
102
111
|
async price() {
|
|
103
112
|
return await logErrorsAsync(async () => {
|
|
104
|
-
const tokenIndexes = [
|
|
113
|
+
const tokenIndexes = [
|
|
114
|
+
0,
|
|
115
|
+
1
|
|
116
|
+
];
|
|
105
117
|
const pool = await this.pool();
|
|
106
118
|
const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
|
|
107
119
|
const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
|
|
108
120
|
const tokenPrices = tokens.map((token) => Number.parseFloat(pool.priceOf(token).toSignificant()));
|
|
109
121
|
const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase());
|
|
110
122
|
const result = {
|
|
111
|
-
tokens: await Promise.all(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
123
|
+
tokens: await Promise.all(tokenIndexes.map(async (value) => {
|
|
124
|
+
return {
|
|
125
|
+
address: await tokenContracts[value].getAddress(),
|
|
126
|
+
symbol: tokenSymbols[value],
|
|
127
|
+
value: tokenPrices[value]
|
|
128
|
+
};
|
|
129
|
+
}))
|
|
116
130
|
};
|
|
117
131
|
return result;
|
|
118
132
|
});
|
|
@@ -134,13 +148,7 @@ var EthersUniSwap3Pair = class {
|
|
|
134
148
|
await waitNotNull(() => this._tokens[index]);
|
|
135
149
|
this._tokens[index] = this._tokens[index] || null;
|
|
136
150
|
const tokenContract = await this.tokenContract(index);
|
|
137
|
-
this._tokens[index] = this._tokens[index] ?? new Token(
|
|
138
|
-
1 /* MAINNET */,
|
|
139
|
-
await tokenContract.getAddress(),
|
|
140
|
-
Number(await tokenContract.decimals()),
|
|
141
|
-
await tokenContract.symbol(),
|
|
142
|
-
await tokenContract.name()
|
|
143
|
-
);
|
|
151
|
+
this._tokens[index] = this._tokens[index] ?? new Token(1, await tokenContract.getAddress(), Number(await tokenContract.decimals()), await tokenContract.symbol(), await tokenContract.name());
|
|
144
152
|
return assertEx(this._tokens[index]);
|
|
145
153
|
});
|
|
146
154
|
}
|
|
@@ -153,55 +161,55 @@ var EthersUniSwap3Pair = class {
|
|
|
153
161
|
});
|
|
154
162
|
}
|
|
155
163
|
};
|
|
164
|
+
__name(_EthersUniSwap3Pair, "EthersUniSwap3Pair");
|
|
165
|
+
var EthersUniSwap3Pair = _EthersUniSwap3Pair;
|
|
156
166
|
|
|
157
167
|
// src/lib/Ethers/createUniswapPoolContracts.ts
|
|
158
|
-
var createUniswapPoolContracts = (provider, contracts) => {
|
|
168
|
+
var createUniswapPoolContracts = /* @__PURE__ */ __name((provider, contracts) => {
|
|
159
169
|
return logErrors(() => {
|
|
160
170
|
return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
|
|
161
171
|
});
|
|
162
|
-
};
|
|
172
|
+
}, "createUniswapPoolContracts");
|
|
163
173
|
|
|
164
174
|
// src/lib/pricesFromUniswap3.ts
|
|
165
175
|
import { fulfilled } from "@xylabs/promise";
|
|
166
|
-
var pricesFromUniswap3 = async (pools) => {
|
|
176
|
+
var pricesFromUniswap3 = /* @__PURE__ */ __name(async (pools) => {
|
|
167
177
|
return await logErrorsAsync(async () => {
|
|
168
|
-
const promiseResults = await Promise.allSettled(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
})
|
|
173
|
-
);
|
|
178
|
+
const promiseResults = await Promise.allSettled(pools.map(async (pool) => {
|
|
179
|
+
const result = await pool.price();
|
|
180
|
+
return result;
|
|
181
|
+
}));
|
|
174
182
|
return promiseResults.filter(fulfilled).map((result) => result.value);
|
|
175
183
|
});
|
|
176
|
-
};
|
|
184
|
+
}, "pricesFromUniswap3");
|
|
177
185
|
|
|
178
186
|
// src/lib/UniswapPoolContracts.ts
|
|
179
187
|
var UniswapPoolContracts = [
|
|
180
|
-
/*xyo/weth*/
|
|
188
|
+
/* xyo/weth */
|
|
181
189
|
"0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA",
|
|
182
|
-
/*xyo/usdt*/
|
|
190
|
+
/* xyo/usdt */
|
|
183
191
|
"0xd0AF1981f52146a6939385451dAeA0726e13a484",
|
|
184
|
-
/*xyo/dai*/
|
|
192
|
+
/* xyo/dai */
|
|
185
193
|
"0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe",
|
|
186
|
-
/*wbtc/xyo*/
|
|
194
|
+
/* wbtc/xyo */
|
|
187
195
|
"0x0cF7494c9dE661467403aBeE8454b3BBf0179a84",
|
|
188
|
-
/*link/xyo*/
|
|
196
|
+
/* link/xyo */
|
|
189
197
|
"0x4693456599a8a4975862A0E720C5de7E1D09A1e4",
|
|
190
|
-
/*wbtc/weth*/
|
|
198
|
+
/* wbtc/weth */
|
|
191
199
|
"0xCBCdF9626bC03E24f779434178A73a0B4bad62eD",
|
|
192
|
-
/*dai/usdc*/
|
|
200
|
+
/* dai/usdc */
|
|
193
201
|
"0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168",
|
|
194
|
-
/*usdc/weth*/
|
|
202
|
+
/* usdc/weth */
|
|
195
203
|
"0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8",
|
|
196
|
-
/*usdc/weth*/
|
|
204
|
+
/* usdc/weth */
|
|
197
205
|
"0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640",
|
|
198
|
-
/*dai/usdc*/
|
|
206
|
+
/* dai/usdc */
|
|
199
207
|
"0x6c6Bc977E13Df9b0de53b251522280BB72383700",
|
|
200
|
-
/*frax/usdc*/
|
|
208
|
+
/* frax/usdc */
|
|
201
209
|
"0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52",
|
|
202
|
-
/*wbtc/usdc*/
|
|
210
|
+
/* wbtc/usdc */
|
|
203
211
|
"0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35",
|
|
204
|
-
/*usdc/usdt*/
|
|
212
|
+
/* usdc/usdt */
|
|
205
213
|
"0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
|
|
206
214
|
];
|
|
207
215
|
|
|
@@ -213,13 +221,8 @@ import { UniswapCryptoMarketSchema as UniswapCryptoMarketSchema2 } from "@xyo-ne
|
|
|
213
221
|
// src/Witness.ts
|
|
214
222
|
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
215
223
|
import { AbstractWitness } from "@xyo-network/abstract-witness";
|
|
216
|
-
import {
|
|
217
|
-
|
|
218
|
-
UniswapCryptoMarketWitnessConfigSchema
|
|
219
|
-
} from "@xyo-network/uniswap-crypto-market-payload-plugin";
|
|
220
|
-
var UniswapCryptoMarketWitness = class extends AbstractWitness {
|
|
221
|
-
static configSchemas = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema];
|
|
222
|
-
static defaultConfigSchema = UniswapCryptoMarketWitnessConfigSchema;
|
|
224
|
+
import { UniswapCryptoMarketSchema, UniswapCryptoMarketWitnessConfigSchema } from "@xyo-network/uniswap-crypto-market-payload-plugin";
|
|
225
|
+
var _UniswapCryptoMarketWitness = class _UniswapCryptoMarketWitness extends AbstractWitness {
|
|
223
226
|
pairs;
|
|
224
227
|
get provider() {
|
|
225
228
|
return this.params.provider;
|
|
@@ -233,28 +236,37 @@ var UniswapCryptoMarketWitness = class extends AbstractWitness {
|
|
|
233
236
|
schema: UniswapCryptoMarketSchema,
|
|
234
237
|
timestamp
|
|
235
238
|
};
|
|
236
|
-
return [
|
|
239
|
+
return [
|
|
240
|
+
payload
|
|
241
|
+
];
|
|
237
242
|
}
|
|
238
243
|
async startHandler() {
|
|
244
|
+
var _a;
|
|
239
245
|
await super.startHandler();
|
|
240
|
-
this.pairs = createUniswapPoolContracts(
|
|
241
|
-
assertEx2(this.provider, () => "Provider Required"),
|
|
242
|
-
this.config?.pools ?? UniswapPoolContracts
|
|
243
|
-
);
|
|
246
|
+
this.pairs = createUniswapPoolContracts(assertEx2(this.provider, () => "Provider Required"), ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts);
|
|
244
247
|
return true;
|
|
245
248
|
}
|
|
246
249
|
};
|
|
250
|
+
__name(_UniswapCryptoMarketWitness, "UniswapCryptoMarketWitness");
|
|
251
|
+
__publicField(_UniswapCryptoMarketWitness, "configSchemas", [
|
|
252
|
+
...__superGet(_UniswapCryptoMarketWitness, _UniswapCryptoMarketWitness, "configSchemas"),
|
|
253
|
+
UniswapCryptoMarketWitnessConfigSchema
|
|
254
|
+
]);
|
|
255
|
+
__publicField(_UniswapCryptoMarketWitness, "defaultConfigSchema", UniswapCryptoMarketWitnessConfigSchema);
|
|
256
|
+
var UniswapCryptoMarketWitness = _UniswapCryptoMarketWitness;
|
|
247
257
|
|
|
248
258
|
// src/Plugin.ts
|
|
249
|
-
var UniswapCryptoMarketPlugin = () => createPayloadSetWitnessPlugin(
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
259
|
+
var UniswapCryptoMarketPlugin = /* @__PURE__ */ __name(() => createPayloadSetWitnessPlugin({
|
|
260
|
+
required: {
|
|
261
|
+
[UniswapCryptoMarketSchema2]: 1
|
|
262
|
+
},
|
|
263
|
+
schema: PayloadSetSchema
|
|
264
|
+
}, {
|
|
265
|
+
witness: /* @__PURE__ */ __name(async (params) => {
|
|
266
|
+
const result = await UniswapCryptoMarketWitness.create(params);
|
|
267
|
+
return result;
|
|
268
|
+
}, "witness")
|
|
269
|
+
}), "UniswapCryptoMarketPlugin");
|
|
258
270
|
export {
|
|
259
271
|
ChainId,
|
|
260
272
|
EthersUniSwap3Pair,
|
|
@@ -266,4 +278,4 @@ export {
|
|
|
266
278
|
UniswapCryptoMarketPlugin as default,
|
|
267
279
|
pricesFromUniswap3
|
|
268
280
|
};
|
|
269
|
-
//# sourceMappingURL=index.
|
|
281
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts","../../src/Plugin.ts","../../src/Witness.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 { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { Token } from '@xyo-network/uniswap-sdk-core'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\nimport { Pool } from '@xyo-network/uniswap-v3-sdk'\nimport { Provider } from 'ethers'\n\nimport { logErrors, logErrorsAsync } from '../logErrors.ts'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts'\n\nexport enum ChainId {\n MAINNET = 1,\n ROPSTEN = 3,\n RINKEBY = 4,\n GÖRLI = 5,\n KOVAN = 42,\n}\n\n// null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) await delay(10)\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool\n = this._pool === null\n ? new Pool(\n await this.token(0),\n await this.token(1),\n Number(slot0.feeProtocol),\n `0x${slot0.sqrtPriceX96.toString(16)}`,\n `0x${(await this.poolContract().liquidity()).toString(16)}`,\n Number(slot0.tick),\n )\n : this._pool\n return assertEx(this._pool)\n })\n }\n\n poolContract() {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map(value => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map(value => this.tokenContract(value)))\n const tokenPrices = tokens.map(token => Number.parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: await Promise.all(\n tokenIndexes.map(async (value) => {\n return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n ),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n if (this._slot0 === null) {\n const poolContract = this.poolContract()\n const slot = await poolContract.slot0()\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(slot)\n }\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index]\n = this._tokens[index]\n ?? new Token(\n ChainId.MAINNET,\n await tokenContract.getAddress(),\n Number(await tokenContract.decimals()),\n await tokenContract.symbol(),\n await tokenContract.name(),\n )\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index]\n = this._tokenContracts[index]\n ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from 'ethers'\n\nimport { logErrors } from '../logErrors.ts'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair.ts'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map(contract => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers/index.ts'\nimport { logErrorsAsync } from './logErrors.ts'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map(result => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /* xyo/weth */ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /* xyo/usdt */ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /* xyo/dai */ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /* wbtc/xyo */ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /* link/xyo */ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /* wbtc/weth */ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /* dai/usdc */ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /* usdc/weth */ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /* usdc/weth */ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /* dai/usdc */ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /* frax/usdc */ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /* wbtc/usdc */ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /* usdc/usdt */ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { UniswapCryptoMarketWitness } from './Witness.ts'\n\nexport const UniswapCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<UniswapCryptoMarketWitness>(\n { required: { [UniswapCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UniswapCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport {\n UniswapCryptoMarketPayload,\n UniswapCryptoMarketSchema,\n UniswapCryptoMarketWitnessConfigSchema,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Provider } from 'ethers'\n\nimport { UniswapCryptoMarketWitnessConfig } from './Config.ts'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.ts'\n\nexport type UniswapCryptoMarketWitnessParams = WitnessParams<\n AnyConfigSchema<UniswapCryptoMarketWitnessConfig>,\n {\n provider?: Provider\n }\n>\n\nexport class UniswapCryptoMarketWitness<\n TParams extends UniswapCryptoMarketWitnessParams = UniswapCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UniswapCryptoMarketWitnessConfigSchema\n\n protected pairs?: EthersUniSwap3Pair[]\n protected get provider() {\n return this.params.provider\n }\n\n protected override async observeHandler(): Promise<Payload[]> {\n await this.started('throw')\n const pairs = await pricesFromUniswap3(assertEx(this.pairs))\n const timestamp = Date.now()\n\n const payload: UniswapCryptoMarketPayload = {\n pairs,\n schema: UniswapCryptoMarketSchema,\n timestamp,\n }\n\n return [payload]\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this.pairs = createUniswapPoolContracts(\n assertEx(this.provider, () => 'Provider Required'),\n this.config?.pools ?? UniswapPoolContracts,\n )\n return true\n }\n}\n"],"mappings":"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","names":["logErrors","func","ex","console","error","logErrorsAsync","assertEx","delay","IERC20Metadata__factory","Token","IUniswapV3Pool__factory","Pool","EthersUniswap3PoolSlot0Wrapper","values","constructor","feeProtocol","observationCardinality","observationCardinalityNext","observationIndex","sqrtPriceX96","tick","unlocked","ChainId","waitNotNull","closure","delay","EthersUniSwap3Pair","address","provider","_pool","_poolContract","_slot0","_tokenContracts","undefined","_tokens","constructor","pool","logErrorsAsync","slot0","Pool","token","Number","feeProtocol","sqrtPriceX96","toString","poolContract","liquidity","tick","assertEx","logErrors","IUniswapV3Pool__factory","connect","price","tokenIndexes","tokens","Promise","all","map","value","tokenContracts","tokenContract","tokenPrices","parseFloat","priceOf","toSignificant","tokenSymbols","index","symbol","toLowerCase","result","getAddress","slot","EthersUniswap3PoolSlot0Wrapper","Token","decimals","name","IERC20Metadata__factory","token0","token1","createUniswapPoolContracts","provider","contracts","logErrors","map","contract","EthersUniSwap3Pair","fulfilled","pricesFromUniswap3","pools","logErrorsAsync","promiseResults","Promise","allSettled","map","pool","result","price","filter","fulfilled","value","UniswapPoolContracts","PayloadSetSchema","createPayloadSetWitnessPlugin","UniswapCryptoMarketSchema","assertEx","AbstractWitness","UniswapCryptoMarketSchema","UniswapCryptoMarketWitnessConfigSchema","UniswapCryptoMarketWitness","AbstractWitness","pairs","provider","params","observeHandler","started","pricesFromUniswap3","assertEx","timestamp","Date","now","payload","schema","UniswapCryptoMarketSchema","startHandler","createUniswapPoolContracts","config","pools","UniswapPoolContracts","configSchemas","UniswapCryptoMarketWitnessConfigSchema","defaultConfigSchema","UniswapCryptoMarketPlugin","createPayloadSetWitnessPlugin","required","UniswapCryptoMarketSchema","schema","PayloadSetSchema","witness","params","result","UniswapCryptoMarketWitness","create"]}
|
|
@@ -2,7 +2,7 @@ import { IERC20Metadata } from '@xyo-network/typechain';
|
|
|
2
2
|
import { Token } from '@xyo-network/uniswap-sdk-core';
|
|
3
3
|
import { Pool } from '@xyo-network/uniswap-v3-sdk';
|
|
4
4
|
import { Provider } from 'ethers';
|
|
5
|
-
import { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.
|
|
5
|
+
import { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts';
|
|
6
6
|
export declare enum ChainId {
|
|
7
7
|
MAINNET = 1,
|
|
8
8
|
ROPSTEN = 3,
|
|
@@ -2,7 +2,7 @@ import { IERC20Metadata } from '@xyo-network/typechain';
|
|
|
2
2
|
import { Token } from '@xyo-network/uniswap-sdk-core';
|
|
3
3
|
import { Pool } from '@xyo-network/uniswap-v3-sdk';
|
|
4
4
|
import { Provider } from 'ethers';
|
|
5
|
-
import { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.
|
|
5
|
+
import { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts';
|
|
6
6
|
export declare enum ChainId {
|
|
7
7
|
MAINNET = 1,
|
|
8
8
|
ROPSTEN = 3,
|
|
@@ -2,7 +2,7 @@ import { IERC20Metadata } from '@xyo-network/typechain';
|
|
|
2
2
|
import { Token } from '@xyo-network/uniswap-sdk-core';
|
|
3
3
|
import { Pool } from '@xyo-network/uniswap-v3-sdk';
|
|
4
4
|
import { Provider } from 'ethers';
|
|
5
|
-
import { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.
|
|
5
|
+
import { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts';
|
|
6
6
|
export declare enum ChainId {
|
|
7
7
|
MAINNET = 1,
|
|
8
8
|
ROPSTEN = 3,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.
|
|
1
|
+
import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts';
|
|
2
2
|
export declare class EthersUniswap3PoolSlot0Wrapper {
|
|
3
3
|
protected values: EthersUniswapV3Slot0Fields;
|
|
4
4
|
constructor(values: EthersUniswapV3Slot0Fields);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.
|
|
1
|
+
import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts';
|
|
2
2
|
export declare class EthersUniswap3PoolSlot0Wrapper {
|
|
3
3
|
protected values: EthersUniswapV3Slot0Fields;
|
|
4
4
|
constructor(values: EthersUniswapV3Slot0Fields);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.
|
|
1
|
+
import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts';
|
|
2
2
|
export declare class EthersUniswap3PoolSlot0Wrapper {
|
|
3
3
|
protected values: EthersUniswapV3Slot0Fields;
|
|
4
4
|
constructor(values: EthersUniswapV3Slot0Fields);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Provider } from 'ethers';
|
|
2
|
-
import { EthersUniSwap3Pair } from './UniSwap3Pair.
|
|
2
|
+
import { EthersUniSwap3Pair } from './UniSwap3Pair.ts';
|
|
3
3
|
export declare const createUniswapPoolContracts: (provider: Provider, contracts: string[]) => EthersUniSwap3Pair[];
|
|
4
4
|
//# sourceMappingURL=createUniswapPoolContracts.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Provider } from 'ethers';
|
|
2
|
-
import { EthersUniSwap3Pair } from './UniSwap3Pair.
|
|
2
|
+
import { EthersUniSwap3Pair } from './UniSwap3Pair.ts';
|
|
3
3
|
export declare const createUniswapPoolContracts: (provider: Provider, contracts: string[]) => EthersUniSwap3Pair[];
|
|
4
4
|
//# sourceMappingURL=createUniswapPoolContracts.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Provider } from 'ethers';
|
|
2
|
-
import { EthersUniSwap3Pair } from './UniSwap3Pair.
|
|
2
|
+
import { EthersUniSwap3Pair } from './UniSwap3Pair.ts';
|
|
3
3
|
export declare const createUniswapPoolContracts: (provider: Provider, contracts: string[]) => EthersUniSwap3Pair[];
|
|
4
4
|
//# sourceMappingURL=createUniswapPoolContracts.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './createUniswapPoolContracts.
|
|
2
|
-
export * from './UniSwap3Pair.
|
|
3
|
-
export * from './Uniswap3PoolSlot0Wrapper.
|
|
4
|
-
export * from './UniswapV3Slot0Fields.
|
|
1
|
+
export * from './createUniswapPoolContracts.ts';
|
|
2
|
+
export * from './UniSwap3Pair.ts';
|
|
3
|
+
export * from './Uniswap3PoolSlot0Wrapper.ts';
|
|
4
|
+
export * from './UniswapV3Slot0Fields.ts';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './createUniswapPoolContracts.
|
|
2
|
-
export * from './UniSwap3Pair.
|
|
3
|
-
export * from './Uniswap3PoolSlot0Wrapper.
|
|
4
|
-
export * from './UniswapV3Slot0Fields.
|
|
1
|
+
export * from './createUniswapPoolContracts.ts';
|
|
2
|
+
export * from './UniSwap3Pair.ts';
|
|
3
|
+
export * from './Uniswap3PoolSlot0Wrapper.ts';
|
|
4
|
+
export * from './UniswapV3Slot0Fields.ts';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './createUniswapPoolContracts.
|
|
2
|
-
export * from './UniSwap3Pair.
|
|
3
|
-
export * from './Uniswap3PoolSlot0Wrapper.
|
|
4
|
-
export * from './UniswapV3Slot0Fields.
|
|
1
|
+
export * from './createUniswapPoolContracts.ts';
|
|
2
|
+
export * from './UniSwap3Pair.ts';
|
|
3
|
+
export * from './Uniswap3PoolSlot0Wrapper.ts';
|
|
4
|
+
export * from './UniswapV3Slot0Fields.ts';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Ethers/index.
|
|
2
|
-
export * from './pricesFromUniswap3.
|
|
3
|
-
export * from './UniswapPoolContracts.
|
|
1
|
+
export * from './Ethers/index.ts';
|
|
2
|
+
export * from './pricesFromUniswap3.ts';
|
|
3
|
+
export * from './UniswapPoolContracts.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Ethers/index.
|
|
2
|
-
export * from './pricesFromUniswap3.
|
|
3
|
-
export * from './UniswapPoolContracts.
|
|
1
|
+
export * from './Ethers/index.ts';
|
|
2
|
+
export * from './pricesFromUniswap3.ts';
|
|
3
|
+
export * from './UniswapPoolContracts.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/node/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './Ethers/index.
|
|
2
|
-
export * from './pricesFromUniswap3.
|
|
3
|
-
export * from './UniswapPoolContracts.
|
|
1
|
+
export * from './Ethers/index.ts';
|
|
2
|
+
export * from './pricesFromUniswap3.ts';
|
|
3
|
+
export * from './UniswapPoolContracts.ts';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin';
|
|
2
|
-
import { EthersUniSwap3Pair } from './Ethers/index.
|
|
2
|
+
import { EthersUniSwap3Pair } from './Ethers/index.ts';
|
|
3
3
|
export declare const pricesFromUniswap3: (pools: EthersUniSwap3Pair[]) => Promise<UniswapCryptoPair[]>;
|
|
4
4
|
//# sourceMappingURL=pricesFromUniswap3.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin';
|
|
2
|
-
import { EthersUniSwap3Pair } from './Ethers/index.
|
|
2
|
+
import { EthersUniSwap3Pair } from './Ethers/index.ts';
|
|
3
3
|
export declare const pricesFromUniswap3: (pools: EthersUniSwap3Pair[]) => Promise<UniswapCryptoPair[]>;
|
|
4
4
|
//# sourceMappingURL=pricesFromUniswap3.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin';
|
|
2
|
-
import { EthersUniSwap3Pair } from './Ethers/index.
|
|
2
|
+
import { EthersUniSwap3Pair } from './Ethers/index.ts';
|
|
3
3
|
export declare const pricesFromUniswap3: (pools: EthersUniSwap3Pair[]) => Promise<UniswapCryptoPair[]>;
|
|
4
4
|
//# sourceMappingURL=pricesFromUniswap3.d.ts.map
|
package/package.json
CHANGED
|
@@ -12,29 +12,29 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@uniswap/swap-router-contracts": "^1.3.1",
|
|
14
14
|
"@uniswap/v3-periphery": "^1.4.4",
|
|
15
|
-
"@xylabs/assert": "^3.6.
|
|
16
|
-
"@xylabs/delay": "^3.6.
|
|
17
|
-
"@xylabs/promise": "^3.6.
|
|
18
|
-
"@xyo-network/abstract-witness": "^2.
|
|
19
|
-
"@xyo-network/module-model": "^2.
|
|
20
|
-
"@xyo-network/payload-model": "^2.
|
|
21
|
-
"@xyo-network/payloadset-plugin": "^2.
|
|
15
|
+
"@xylabs/assert": "^3.6.8",
|
|
16
|
+
"@xylabs/delay": "^3.6.8",
|
|
17
|
+
"@xylabs/promise": "^3.6.8",
|
|
18
|
+
"@xyo-network/abstract-witness": "^2.111.2",
|
|
19
|
+
"@xyo-network/module-model": "^2.111.2",
|
|
20
|
+
"@xyo-network/payload-model": "^2.111.2",
|
|
21
|
+
"@xyo-network/payloadset-plugin": "^2.111.2",
|
|
22
22
|
"@xyo-network/typechain": "^3.0.5",
|
|
23
|
-
"@xyo-network/uniswap-crypto-market-payload-plugin": "^2.99.
|
|
23
|
+
"@xyo-network/uniswap-crypto-market-payload-plugin": "^2.99.5",
|
|
24
24
|
"@xyo-network/uniswap-sdk-core": "^4.1.2",
|
|
25
25
|
"@xyo-network/uniswap-typechain": "^3.0.5",
|
|
26
26
|
"@xyo-network/uniswap-v3-sdk": "^3.12.3",
|
|
27
|
-
"@xyo-network/witness-model": "^2.
|
|
28
|
-
"ethers": "^6.13.
|
|
27
|
+
"@xyo-network/witness-model": "^2.111.2",
|
|
28
|
+
"ethers": "^6.13.2"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@xylabs/jest-helpers": "^3.6.
|
|
32
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
|
33
|
-
"@xylabs/tsconfig": "^3.
|
|
34
|
-
"@xyo-network/payload-wrapper": "^2.
|
|
35
|
-
"@xyo-network/witness-blockchain-abstract": "^2.
|
|
31
|
+
"@xylabs/jest-helpers": "^3.6.8",
|
|
32
|
+
"@xylabs/ts-scripts-yarn3": "^3.15.13",
|
|
33
|
+
"@xylabs/tsconfig": "^3.15.13",
|
|
34
|
+
"@xyo-network/payload-wrapper": "^2.111.2",
|
|
35
|
+
"@xyo-network/witness-blockchain-abstract": "^2.111.2",
|
|
36
36
|
"jest": "^29.7.0",
|
|
37
|
-
"typescript": "^5.5.
|
|
37
|
+
"typescript": "^5.5.4"
|
|
38
38
|
},
|
|
39
39
|
"description": "Typescript/Javascript Plugins for XYO Platform",
|
|
40
40
|
"exports": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"import": {
|
|
48
48
|
"types": "./dist/browser/index.d.mts",
|
|
49
|
-
"default": "./dist/browser/index.
|
|
49
|
+
"default": "./dist/browser/index.mjs"
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"node": {
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
},
|
|
57
57
|
"import": {
|
|
58
58
|
"types": "./dist/node/index.d.mts",
|
|
59
|
-
"default": "./dist/node/index.
|
|
59
|
+
"default": "./dist/node/index.mjs"
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
"./package.json": "./package.json"
|
|
64
64
|
},
|
|
65
65
|
"main": "dist/node/index.cjs",
|
|
66
|
-
"module": "dist/node/index.
|
|
66
|
+
"module": "dist/node/index.mjs",
|
|
67
67
|
"types": "dist/node/index.d.ts",
|
|
68
68
|
"homepage": "https://xyo.network",
|
|
69
69
|
"license": "LGPL-3.0-only",
|
|
@@ -75,6 +75,6 @@
|
|
|
75
75
|
"url": "https://github.com/XYOracleNetwork/plugins.git"
|
|
76
76
|
},
|
|
77
77
|
"sideEffects": false,
|
|
78
|
-
"version": "2.99.
|
|
78
|
+
"version": "2.99.5",
|
|
79
79
|
"type": "module"
|
|
80
80
|
}
|
package/src/Plugin.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { PayloadSetSchema } from '@xyo-network/payload-model'
|
|
|
2
2
|
import { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'
|
|
3
3
|
import { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'
|
|
4
4
|
|
|
5
|
-
import { UniswapCryptoMarketWitness } from './Witness.
|
|
5
|
+
import { UniswapCryptoMarketWitness } from './Witness.ts'
|
|
6
6
|
|
|
7
7
|
export const UniswapCryptoMarketPlugin = () =>
|
|
8
8
|
createPayloadSetWitnessPlugin<UniswapCryptoMarketWitness>(
|
package/src/Witness.ts
CHANGED
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
import { WitnessParams } from '@xyo-network/witness-model'
|
|
11
11
|
import { Provider } from 'ethers'
|
|
12
12
|
|
|
13
|
-
import { UniswapCryptoMarketWitnessConfig } from './Config.
|
|
14
|
-
import { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.
|
|
13
|
+
import { UniswapCryptoMarketWitnessConfig } from './Config.ts'
|
|
14
|
+
import { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.ts'
|
|
15
15
|
|
|
16
16
|
export type UniswapCryptoMarketWitnessParams = WitnessParams<
|
|
17
17
|
AnyConfigSchema<UniswapCryptoMarketWitnessConfig>,
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './Config.
|
|
2
|
-
export * from './lib/index.
|
|
1
|
+
export * from './Config.ts'
|
|
2
|
+
export * from './lib/index.ts'
|
|
3
3
|
// eslint-disable-next-line import/no-default-export
|
|
4
|
-
export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.
|
|
5
|
-
export * from './Witness.
|
|
4
|
+
export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts'
|
|
5
|
+
export * from './Witness.ts'
|