@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,4 +1,4 @@
|
|
|
1
|
-
import { UniswapCryptoMarketWitness } from './Witness.
|
|
1
|
+
import { UniswapCryptoMarketWitness } from './Witness.ts';
|
|
2
2
|
export declare const UniswapCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<UniswapCryptoMarketWitness<import("@xylabs/object").BaseParamsFields & {
|
|
3
3
|
account?: import("@xyo-network/account-model").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UniswapCryptoMarketWitness } from './Witness.
|
|
1
|
+
import { UniswapCryptoMarketWitness } from './Witness.ts';
|
|
2
2
|
export declare const UniswapCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<UniswapCryptoMarketWitness<import("@xylabs/object").BaseParamsFields & {
|
|
3
3
|
account?: import("@xyo-network/account-model").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
package/dist/browser/Plugin.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UniswapCryptoMarketWitness } from './Witness.
|
|
1
|
+
import { UniswapCryptoMarketWitness } from './Witness.ts';
|
|
2
2
|
export declare const UniswapCryptoMarketPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetWitnessPlugin<UniswapCryptoMarketWitness<import("@xylabs/object").BaseParamsFields & {
|
|
3
3
|
account?: import("@xyo-network/account-model").AccountInstance | "random";
|
|
4
4
|
addToResolvers?: boolean;
|
|
@@ -3,8 +3,8 @@ import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
|
3
3
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
4
4
|
import { WitnessParams } from '@xyo-network/witness-model';
|
|
5
5
|
import { Provider } from 'ethers';
|
|
6
|
-
import { UniswapCryptoMarketWitnessConfig } from './Config.
|
|
7
|
-
import { EthersUniSwap3Pair } from './lib/index.
|
|
6
|
+
import { UniswapCryptoMarketWitnessConfig } from './Config.ts';
|
|
7
|
+
import { EthersUniSwap3Pair } from './lib/index.ts';
|
|
8
8
|
export type UniswapCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<UniswapCryptoMarketWitnessConfig>, {
|
|
9
9
|
provider?: Provider;
|
|
10
10
|
}>;
|
|
@@ -3,8 +3,8 @@ import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
|
3
3
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
4
4
|
import { WitnessParams } from '@xyo-network/witness-model';
|
|
5
5
|
import { Provider } from 'ethers';
|
|
6
|
-
import { UniswapCryptoMarketWitnessConfig } from './Config.
|
|
7
|
-
import { EthersUniSwap3Pair } from './lib/index.
|
|
6
|
+
import { UniswapCryptoMarketWitnessConfig } from './Config.ts';
|
|
7
|
+
import { EthersUniSwap3Pair } from './lib/index.ts';
|
|
8
8
|
export type UniswapCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<UniswapCryptoMarketWitnessConfig>, {
|
|
9
9
|
provider?: Provider;
|
|
10
10
|
}>;
|
|
@@ -3,8 +3,8 @@ import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
|
3
3
|
import { Payload, Schema } from '@xyo-network/payload-model';
|
|
4
4
|
import { WitnessParams } from '@xyo-network/witness-model';
|
|
5
5
|
import { Provider } from 'ethers';
|
|
6
|
-
import { UniswapCryptoMarketWitnessConfig } from './Config.
|
|
7
|
-
import { EthersUniSwap3Pair } from './lib/index.
|
|
6
|
+
import { UniswapCryptoMarketWitnessConfig } from './Config.ts';
|
|
7
|
+
import { EthersUniSwap3Pair } from './lib/index.ts';
|
|
8
8
|
export type UniswapCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<UniswapCryptoMarketWitnessConfig>, {
|
|
9
9
|
provider?: Provider;
|
|
10
10
|
}>;
|
package/dist/browser/index.cjs
CHANGED
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -33,22 +34,22 @@ __export(src_exports, {
|
|
|
33
34
|
module.exports = __toCommonJS(src_exports);
|
|
34
35
|
|
|
35
36
|
// src/lib/logErrors.ts
|
|
36
|
-
var logErrors = (func) => {
|
|
37
|
+
var logErrors = /* @__PURE__ */ __name((func) => {
|
|
37
38
|
try {
|
|
38
39
|
return func();
|
|
39
40
|
} catch (ex) {
|
|
40
41
|
console.error(ex);
|
|
41
42
|
throw ex;
|
|
42
43
|
}
|
|
43
|
-
};
|
|
44
|
-
var logErrorsAsync = async (func) => {
|
|
44
|
+
}, "logErrors");
|
|
45
|
+
var logErrorsAsync = /* @__PURE__ */ __name(async (func) => {
|
|
45
46
|
try {
|
|
46
47
|
return await func();
|
|
47
48
|
} catch (ex) {
|
|
48
49
|
console.error(ex);
|
|
49
50
|
throw ex;
|
|
50
51
|
}
|
|
51
|
-
};
|
|
52
|
+
}, "logErrorsAsync");
|
|
52
53
|
|
|
53
54
|
// src/lib/Ethers/UniSwap3Pair.ts
|
|
54
55
|
var import_assert = require("@xylabs/assert");
|
|
@@ -60,6 +61,9 @@ var import_uniswap_v3_sdk = require("@xyo-network/uniswap-v3-sdk");
|
|
|
60
61
|
|
|
61
62
|
// src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
|
|
62
63
|
var EthersUniswap3PoolSlot0Wrapper = class {
|
|
64
|
+
static {
|
|
65
|
+
__name(this, "EthersUniswap3PoolSlot0Wrapper");
|
|
66
|
+
}
|
|
63
67
|
values;
|
|
64
68
|
constructor(values) {
|
|
65
69
|
this.values = values;
|
|
@@ -88,25 +92,34 @@ var EthersUniswap3PoolSlot0Wrapper = class {
|
|
|
88
92
|
};
|
|
89
93
|
|
|
90
94
|
// src/lib/Ethers/UniSwap3Pair.ts
|
|
91
|
-
var ChainId
|
|
95
|
+
var ChainId;
|
|
96
|
+
(function(ChainId2) {
|
|
92
97
|
ChainId2[ChainId2["MAINNET"] = 1] = "MAINNET";
|
|
93
98
|
ChainId2[ChainId2["ROPSTEN"] = 3] = "ROPSTEN";
|
|
94
99
|
ChainId2[ChainId2["RINKEBY"] = 4] = "RINKEBY";
|
|
95
100
|
ChainId2[ChainId2["G\xD6RLI"] = 5] = "G\xD6RLI";
|
|
96
101
|
ChainId2[ChainId2["KOVAN"] = 42] = "KOVAN";
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
var waitNotNull = async (closure) => {
|
|
102
|
+
})(ChainId || (ChainId = {}));
|
|
103
|
+
var waitNotNull = /* @__PURE__ */ __name(async (closure) => {
|
|
100
104
|
while (closure() === null) await (0, import_delay.delay)(10);
|
|
101
|
-
};
|
|
105
|
+
}, "waitNotNull");
|
|
102
106
|
var EthersUniSwap3Pair = class {
|
|
107
|
+
static {
|
|
108
|
+
__name(this, "EthersUniSwap3Pair");
|
|
109
|
+
}
|
|
103
110
|
address;
|
|
104
111
|
provider;
|
|
105
112
|
_pool;
|
|
106
113
|
_poolContract;
|
|
107
114
|
_slot0;
|
|
108
|
-
_tokenContracts = [
|
|
109
|
-
|
|
115
|
+
_tokenContracts = [
|
|
116
|
+
void 0,
|
|
117
|
+
void 0
|
|
118
|
+
];
|
|
119
|
+
_tokens = [
|
|
120
|
+
void 0,
|
|
121
|
+
void 0
|
|
122
|
+
];
|
|
110
123
|
constructor(address, provider) {
|
|
111
124
|
this.address = address;
|
|
112
125
|
this.provider = provider;
|
|
@@ -116,14 +129,7 @@ var EthersUniSwap3Pair = class {
|
|
|
116
129
|
await waitNotNull(() => this._pool);
|
|
117
130
|
this._pool = this._pool || null;
|
|
118
131
|
const slot0 = await this.slot0();
|
|
119
|
-
this._pool = this._pool === null ? new import_uniswap_v3_sdk.Pool(
|
|
120
|
-
await this.token(0),
|
|
121
|
-
await this.token(1),
|
|
122
|
-
Number(slot0.feeProtocol),
|
|
123
|
-
`0x${slot0.sqrtPriceX96.toString(16)}`,
|
|
124
|
-
`0x${(await this.poolContract().liquidity()).toString(16)}`,
|
|
125
|
-
Number(slot0.tick)
|
|
126
|
-
) : this._pool;
|
|
132
|
+
this._pool = this._pool === null ? new import_uniswap_v3_sdk.Pool(await this.token(0), await this.token(1), Number(slot0.feeProtocol), `0x${slot0.sqrtPriceX96.toString(16)}`, `0x${(await this.poolContract().liquidity()).toString(16)}`, Number(slot0.tick)) : this._pool;
|
|
127
133
|
return (0, import_assert.assertEx)(this._pool);
|
|
128
134
|
});
|
|
129
135
|
}
|
|
@@ -135,18 +141,23 @@ var EthersUniSwap3Pair = class {
|
|
|
135
141
|
}
|
|
136
142
|
async price() {
|
|
137
143
|
return await logErrorsAsync(async () => {
|
|
138
|
-
const tokenIndexes = [
|
|
144
|
+
const tokenIndexes = [
|
|
145
|
+
0,
|
|
146
|
+
1
|
|
147
|
+
];
|
|
139
148
|
const pool = await this.pool();
|
|
140
149
|
const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
|
|
141
150
|
const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
|
|
142
151
|
const tokenPrices = tokens.map((token) => Number.parseFloat(pool.priceOf(token).toSignificant()));
|
|
143
152
|
const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase());
|
|
144
153
|
const result = {
|
|
145
|
-
tokens: await Promise.all(
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
154
|
+
tokens: await Promise.all(tokenIndexes.map(async (value) => {
|
|
155
|
+
return {
|
|
156
|
+
address: await tokenContracts[value].getAddress(),
|
|
157
|
+
symbol: tokenSymbols[value],
|
|
158
|
+
value: tokenPrices[value]
|
|
159
|
+
};
|
|
160
|
+
}))
|
|
150
161
|
};
|
|
151
162
|
return result;
|
|
152
163
|
});
|
|
@@ -168,13 +179,7 @@ var EthersUniSwap3Pair = class {
|
|
|
168
179
|
await waitNotNull(() => this._tokens[index]);
|
|
169
180
|
this._tokens[index] = this._tokens[index] || null;
|
|
170
181
|
const tokenContract = await this.tokenContract(index);
|
|
171
|
-
this._tokens[index] = this._tokens[index] ?? new import_uniswap_sdk_core.Token(
|
|
172
|
-
1 /* MAINNET */,
|
|
173
|
-
await tokenContract.getAddress(),
|
|
174
|
-
Number(await tokenContract.decimals()),
|
|
175
|
-
await tokenContract.symbol(),
|
|
176
|
-
await tokenContract.name()
|
|
177
|
-
);
|
|
182
|
+
this._tokens[index] = this._tokens[index] ?? new import_uniswap_sdk_core.Token(1, await tokenContract.getAddress(), Number(await tokenContract.decimals()), await tokenContract.symbol(), await tokenContract.name());
|
|
178
183
|
return (0, import_assert.assertEx)(this._tokens[index]);
|
|
179
184
|
});
|
|
180
185
|
}
|
|
@@ -189,53 +194,51 @@ var EthersUniSwap3Pair = class {
|
|
|
189
194
|
};
|
|
190
195
|
|
|
191
196
|
// src/lib/Ethers/createUniswapPoolContracts.ts
|
|
192
|
-
var createUniswapPoolContracts = (provider, contracts) => {
|
|
197
|
+
var createUniswapPoolContracts = /* @__PURE__ */ __name((provider, contracts) => {
|
|
193
198
|
return logErrors(() => {
|
|
194
199
|
return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
|
|
195
200
|
});
|
|
196
|
-
};
|
|
201
|
+
}, "createUniswapPoolContracts");
|
|
197
202
|
|
|
198
203
|
// src/lib/pricesFromUniswap3.ts
|
|
199
204
|
var import_promise = require("@xylabs/promise");
|
|
200
|
-
var pricesFromUniswap3 = async (pools) => {
|
|
205
|
+
var pricesFromUniswap3 = /* @__PURE__ */ __name(async (pools) => {
|
|
201
206
|
return await logErrorsAsync(async () => {
|
|
202
|
-
const promiseResults = await Promise.allSettled(
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
})
|
|
207
|
-
);
|
|
207
|
+
const promiseResults = await Promise.allSettled(pools.map(async (pool) => {
|
|
208
|
+
const result = await pool.price();
|
|
209
|
+
return result;
|
|
210
|
+
}));
|
|
208
211
|
return promiseResults.filter(import_promise.fulfilled).map((result) => result.value);
|
|
209
212
|
});
|
|
210
|
-
};
|
|
213
|
+
}, "pricesFromUniswap3");
|
|
211
214
|
|
|
212
215
|
// src/lib/UniswapPoolContracts.ts
|
|
213
216
|
var UniswapPoolContracts = [
|
|
214
|
-
/*xyo/weth*/
|
|
217
|
+
/* xyo/weth */
|
|
215
218
|
"0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA",
|
|
216
|
-
/*xyo/usdt*/
|
|
219
|
+
/* xyo/usdt */
|
|
217
220
|
"0xd0AF1981f52146a6939385451dAeA0726e13a484",
|
|
218
|
-
/*xyo/dai*/
|
|
221
|
+
/* xyo/dai */
|
|
219
222
|
"0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe",
|
|
220
|
-
/*wbtc/xyo*/
|
|
223
|
+
/* wbtc/xyo */
|
|
221
224
|
"0x0cF7494c9dE661467403aBeE8454b3BBf0179a84",
|
|
222
|
-
/*link/xyo*/
|
|
225
|
+
/* link/xyo */
|
|
223
226
|
"0x4693456599a8a4975862A0E720C5de7E1D09A1e4",
|
|
224
|
-
/*wbtc/weth*/
|
|
227
|
+
/* wbtc/weth */
|
|
225
228
|
"0xCBCdF9626bC03E24f779434178A73a0B4bad62eD",
|
|
226
|
-
/*dai/usdc*/
|
|
229
|
+
/* dai/usdc */
|
|
227
230
|
"0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168",
|
|
228
|
-
/*usdc/weth*/
|
|
231
|
+
/* usdc/weth */
|
|
229
232
|
"0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8",
|
|
230
|
-
/*usdc/weth*/
|
|
233
|
+
/* usdc/weth */
|
|
231
234
|
"0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640",
|
|
232
|
-
/*dai/usdc*/
|
|
235
|
+
/* dai/usdc */
|
|
233
236
|
"0x6c6Bc977E13Df9b0de53b251522280BB72383700",
|
|
234
|
-
/*frax/usdc*/
|
|
237
|
+
/* frax/usdc */
|
|
235
238
|
"0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52",
|
|
236
|
-
/*wbtc/usdc*/
|
|
239
|
+
/* wbtc/usdc */
|
|
237
240
|
"0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35",
|
|
238
|
-
/*usdc/usdt*/
|
|
241
|
+
/* usdc/usdt */
|
|
239
242
|
"0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
|
|
240
243
|
];
|
|
241
244
|
|
|
@@ -249,7 +252,13 @@ var import_assert2 = require("@xylabs/assert");
|
|
|
249
252
|
var import_abstract_witness = require("@xyo-network/abstract-witness");
|
|
250
253
|
var import_uniswap_crypto_market_payload_plugin = require("@xyo-network/uniswap-crypto-market-payload-plugin");
|
|
251
254
|
var UniswapCryptoMarketWitness = class extends import_abstract_witness.AbstractWitness {
|
|
252
|
-
static
|
|
255
|
+
static {
|
|
256
|
+
__name(this, "UniswapCryptoMarketWitness");
|
|
257
|
+
}
|
|
258
|
+
static configSchemas = [
|
|
259
|
+
...super.configSchemas,
|
|
260
|
+
import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema
|
|
261
|
+
];
|
|
253
262
|
static defaultConfigSchema = import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema;
|
|
254
263
|
pairs;
|
|
255
264
|
get provider() {
|
|
@@ -264,26 +273,27 @@ var UniswapCryptoMarketWitness = class extends import_abstract_witness.AbstractW
|
|
|
264
273
|
schema: import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketSchema,
|
|
265
274
|
timestamp
|
|
266
275
|
};
|
|
267
|
-
return [
|
|
276
|
+
return [
|
|
277
|
+
payload
|
|
278
|
+
];
|
|
268
279
|
}
|
|
269
280
|
async startHandler() {
|
|
270
281
|
await super.startHandler();
|
|
271
|
-
this.pairs = createUniswapPoolContracts(
|
|
272
|
-
(0, import_assert2.assertEx)(this.provider, () => "Provider Required"),
|
|
273
|
-
this.config?.pools ?? UniswapPoolContracts
|
|
274
|
-
);
|
|
282
|
+
this.pairs = createUniswapPoolContracts((0, import_assert2.assertEx)(this.provider, () => "Provider Required"), this.config?.pools ?? UniswapPoolContracts);
|
|
275
283
|
return true;
|
|
276
284
|
}
|
|
277
285
|
};
|
|
278
286
|
|
|
279
287
|
// src/Plugin.ts
|
|
280
|
-
var UniswapCryptoMarketPlugin = () => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)(
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
288
|
+
var UniswapCryptoMarketPlugin = /* @__PURE__ */ __name(() => (0, import_payloadset_plugin.createPayloadSetWitnessPlugin)({
|
|
289
|
+
required: {
|
|
290
|
+
[import_uniswap_crypto_market_payload_plugin2.UniswapCryptoMarketSchema]: 1
|
|
291
|
+
},
|
|
292
|
+
schema: import_payload_model.PayloadSetSchema
|
|
293
|
+
}, {
|
|
294
|
+
witness: /* @__PURE__ */ __name(async (params) => {
|
|
295
|
+
const result = await UniswapCryptoMarketWitness.create(params);
|
|
296
|
+
return result;
|
|
297
|
+
}, "witness")
|
|
298
|
+
}), "UniswapCryptoMarketPlugin");
|
|
289
299
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["export * from './Config.js'\nexport * from './lib/index.js'\n// eslint-disable-next-line import/no-default-export\nexport { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.js'\nexport * from './Witness.js'\n","export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { Token } from '@xyo-network/uniswap-sdk-core'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\nimport { Pool } from '@xyo-network/uniswap-v3-sdk'\nimport { Provider } from 'ethers'\n\nimport { logErrors, logErrorsAsync } from '../logErrors.js'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.js'\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.js'\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.js'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair.js'\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.js'\nimport { logErrorsAsync } from './logErrors.js'\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.js'\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.js'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.js'\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":["ChainId","import_uniswap_crypto_market_payload_plugin","import_assert"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["export * from './Config.ts'\nexport * from './lib/index.ts'\n// eslint-disable-next-line import/no-default-export\nexport { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts'\nexport * from './Witness.ts'\n","export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { Token } from '@xyo-network/uniswap-sdk-core'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\nimport { Pool } from '@xyo-network/uniswap-v3-sdk'\nimport { Provider } from 'ethers'\n\nimport { logErrors, logErrorsAsync } from '../logErrors.ts'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper.ts'\n\nexport enum ChainId {\n MAINNET = 1,\n ROPSTEN = 3,\n RINKEBY = 4,\n GÖRLI = 5,\n KOVAN = 42,\n}\n\n// null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) await delay(10)\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool\n = this._pool === null\n ? new Pool(\n await this.token(0),\n await this.token(1),\n Number(slot0.feeProtocol),\n `0x${slot0.sqrtPriceX96.toString(16)}`,\n `0x${(await this.poolContract().liquidity()).toString(16)}`,\n Number(slot0.tick),\n )\n : this._pool\n return assertEx(this._pool)\n })\n }\n\n poolContract() {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map(value => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map(value => this.tokenContract(value)))\n const tokenPrices = tokens.map(token => Number.parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, () => `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: await Promise.all(\n tokenIndexes.map(async (value) => {\n return { address: await tokenContracts[value].getAddress(), symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n ),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n if (this._slot0 === null) {\n const poolContract = this.poolContract()\n const slot = await poolContract.slot0()\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(slot)\n }\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index]\n = this._tokens[index]\n ?? new Token(\n ChainId.MAINNET,\n await tokenContract.getAddress(),\n Number(await tokenContract.decimals()),\n await tokenContract.symbol(),\n await tokenContract.name(),\n )\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index]\n = this._tokenContracts[index]\n ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields.ts'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from 'ethers'\n\nimport { logErrors } from '../logErrors.ts'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair.ts'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map(contract => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers/index.ts'\nimport { logErrorsAsync } from './logErrors.ts'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map(result => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /* xyo/weth */ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /* xyo/usdt */ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /* xyo/dai */ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /* wbtc/xyo */ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /* link/xyo */ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /* wbtc/weth */ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /* dai/usdc */ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /* usdc/weth */ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /* usdc/weth */ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /* dai/usdc */ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /* frax/usdc */ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /* wbtc/usdc */ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /* usdc/usdt */ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n","import { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\nimport { UniswapCryptoMarketSchema } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { UniswapCryptoMarketWitness } from './Witness.ts'\n\nexport const UniswapCryptoMarketPlugin = () =>\n createPayloadSetWitnessPlugin<UniswapCryptoMarketWitness>(\n { required: { [UniswapCryptoMarketSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await UniswapCryptoMarketWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport {\n UniswapCryptoMarketPayload,\n UniswapCryptoMarketSchema,\n UniswapCryptoMarketWitnessConfigSchema,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Provider } from 'ethers'\n\nimport { UniswapCryptoMarketWitnessConfig } from './Config.ts'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib/index.ts'\n\nexport type UniswapCryptoMarketWitnessParams = WitnessParams<\n AnyConfigSchema<UniswapCryptoMarketWitnessConfig>,\n {\n provider?: Provider\n }\n>\n\nexport class UniswapCryptoMarketWitness<\n TParams extends UniswapCryptoMarketWitnessParams = UniswapCryptoMarketWitnessParams,\n> extends AbstractWitness<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, UniswapCryptoMarketWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = UniswapCryptoMarketWitnessConfigSchema\n\n protected pairs?: EthersUniSwap3Pair[]\n protected get provider() {\n return this.params.provider\n }\n\n protected override async observeHandler(): Promise<Payload[]> {\n await this.started('throw')\n const pairs = await pricesFromUniswap3(assertEx(this.pairs))\n const timestamp = Date.now()\n\n const payload: UniswapCryptoMarketPayload = {\n pairs,\n schema: UniswapCryptoMarketSchema,\n timestamp,\n }\n\n return [payload]\n }\n\n protected override async startHandler() {\n await super.startHandler()\n this.pairs = createUniswapPoolContracts(\n assertEx(this.provider, () => 'Provider Required'),\n this.config?.pools ?? UniswapPoolContracts,\n )\n return true\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;ACAO,IAAMA,YAAY,wBAAIC,SAAAA;AAC3B,MAAI;AACF,WAAOA,KAAAA;EACT,SAASC,IAAI;AACXC,YAAQC,MAAMF,EAAAA;AACd,UAAMA;EACR;AACF,GAPyB;AASlB,IAAMG,iBAAiB,8BAAUJ,SAAAA;AACtC,MAAI;AACF,WAAO,MAAMA,KAAAA;EACf,SAASC,IAAI;AACXC,YAAQC,MAAMF,EAAAA;AACd,UAAMA;EACR;AACF,GAP8B;;;ACT9B,oBAAyB;AACzB,mBAAsB;AACtB,uBAAwD;AACxD,8BAAsB;AACtB,+BAAwD;AACxD,4BAAqB;;;ACHd,IAAMI,iCAAN,MAAMA;EAAb,OAAaA;;;EACDC;EACVC,YAAYD,QAAoC;AAC9C,SAAKA,SAASA;EAChB;EAEA,IAAIE,cAAc;AAChB,WAAO,KAAKF,OAAO,CAAA;EACrB;EAEA,IAAIG,yBAAyB;AAC3B,WAAO,KAAKH,OAAO,CAAA;EACrB;EAEA,IAAII,6BAA6B;AAC/B,WAAO,KAAKJ,OAAO,CAAA;EACrB;EAEA,IAAIK,mBAAmB;AACrB,WAAO,KAAKL,OAAO,CAAA;EACrB;EAEA,IAAIM,eAAe;AACjB,WAAO,KAAKN,OAAO,CAAA;EACrB;EAEA,IAAIO,OAAO;AACT,WAAO,KAAKP,OAAO,CAAA;EACrB;EAEA,IAAIQ,WAAW;AACb,WAAO,KAAKR,OAAO,CAAA;EACrB;AACF;;;;UDxBYS,UAAAA;;;;;;GAAAA,YAAAA,UAAAA,CAAAA,EAAAA;AASZ,IAAMC,cAAc,8BAAOC,YAAAA;AACzB,SAAOA,QAAAA,MAAc,KAAM,WAAMC,oBAAM,EAAA;AACzC,GAFoB;AAIb,IAAMC,qBAAN,MAAMA;EAxBb,OAwBaA;;;EACDC;EACAC;EAEFC;EACAC;EACAC;EACAC,kBAAyD;IAACC;IAAWA;;EACrEC,UAAwC;IAACD;IAAWA;;EAE5DE,YAAYR,SAAiBC,UAAoB;AAC/C,SAAKD,UAAUA;AACf,SAAKC,WAAWA;EAClB;EAEA,MAAMQ,OAAsB;AAC1B,WAAO,MAAMC,eAAe,YAAA;AAC1B,YAAMd,YAAY,MAAM,KAAKM,KAAK;AAClC,WAAKA,QAAQ,KAAKA,SAAS;AAC3B,YAAMS,QAAQ,MAAM,KAAKA,MAAK;AAC9B,WAAKT,QACD,KAAKA,UAAU,OACb,IAAIU,2BACJ,MAAM,KAAKC,MAAM,CAAA,GACjB,MAAM,KAAKA,MAAM,CAAA,GACjBC,OAAOH,MAAMI,WAAW,GACxB,KAAKJ,MAAMK,aAAaC,SAAS,EAAA,CAAA,IACjC,MAAM,MAAM,KAAKC,aAAY,EAAGC,UAAS,GAAIF,SAAS,EAAA,CAAA,IACtDH,OAAOH,MAAMS,IAAI,CAAA,IAEjB,KAAKlB;AACX,iBAAOmB,wBAAS,KAAKnB,KAAK;IAC5B,CAAA;EACF;EAEAgB,eAAe;AACb,WAAOI,UAAU,MAAA;AACf,WAAKnB,gBAAgB,KAAKA,iBAAiBoB,iDAAwBC,QAAQ,KAAKxB,SAAS,KAAKC,QAAQ;AACtG,iBAAOoB,wBAAS,KAAKlB,aAAa;IACpC,CAAA;EACF;EAEA,MAAMsB,QAAQ;AACZ,WAAO,MAAMf,eAAe,YAAA;AAC1B,YAAMgB,eAA0B;QAAC;QAAG;;AACpC,YAAMjB,OAAO,MAAM,KAAKA,KAAI;AAC5B,YAAMkB,SAAS,MAAMC,QAAQC,IAAIH,aAAaI,IAAIC,CAAAA,UAAS,KAAKlB,MAAMkB,KAAAA,CAAAA,CAAAA;AACtE,YAAMC,iBAAiB,MAAMJ,QAAQC,IAAIH,aAAaI,IAAIC,CAAAA,UAAS,KAAKE,cAAcF,KAAAA,CAAAA,CAAAA;AACtF,YAAMG,cAAcP,OAAOG,IAAIjB,CAAAA,UAASC,OAAOqB,WAAW1B,KAAK2B,QAAQvB,KAAAA,EAAOwB,cAAa,CAAA,CAAA;AAC3F,YAAMC,eAAeX,OAAOG,IAAI,CAACjB,OAAO0B,cAAUlB,wBAASR,MAAM2B,QAAQ,MAAM,SAASD,KAAAA,mBAAwB,EAAEE,YAAW,CAAA;AAC7H,YAAMC,SAAS;QACbf,QAAQ,MAAMC,QAAQC,IACpBH,aAAaI,IAAI,OAAOC,UAAAA;AACtB,iBAAO;YAAE/B,SAAS,MAAMgC,eAAeD,KAAAA,EAAOY,WAAU;YAAIH,QAAQF,aAAaP,KAAAA;YAAQA,OAAOG,YAAYH,KAAAA;UAAO;QACrH,CAAA,CAAA;MAEJ;AACA,aAAOW;IACT,CAAA;EACF;EAEA,MAAM/B,QAAiD;AACrD,WAAO,MAAMD,eAAe,YAAA;AAC1B,YAAMd,YAAY,MAAM,KAAKQ,MAAM;AACnC,WAAKA,SAAS,KAAKA,UAAU;AAC7B,UAAI,KAAKA,WAAW,MAAM;AACxB,cAAMc,eAAe,KAAKA,aAAY;AACtC,cAAM0B,OAAO,MAAM1B,aAAaP,MAAK;AACrC,aAAKP,SAAS,KAAKA,UAAU,IAAIyC,+BAA+BD,IAAAA;MAClE;AACA,iBAAOvB,wBAAS,KAAKjB,MAAM;IAC7B,CAAA;EACF;EAEA,MAAMS,MAAM0B,OAA8B;AACxC,WAAO,MAAM7B,eAAe,YAAA;AAC1B,YAAMd,YAAY,MAAM,KAAKW,QAAQgC,KAAAA,CAAM;AAC3C,WAAKhC,QAAQgC,KAAAA,IAAS,KAAKhC,QAAQgC,KAAAA,KAAU;AAC7C,YAAMN,gBAAgB,MAAM,KAAKA,cAAcM,KAAAA;AAC/C,WAAKhC,QAAQgC,KAAAA,IACT,KAAKhC,QAAQgC,KAAAA,KACZ,IAAIO,8BAAAA,GAEL,MAAMb,cAAcU,WAAU,GAC9B7B,OAAO,MAAMmB,cAAcc,SAAQ,CAAA,GACnC,MAAMd,cAAcO,OAAM,GAC1B,MAAMP,cAAce,KAAI,CAAA;AAE5B,iBAAO3B,wBAAS,KAAKd,QAAQgC,KAAAA,CAAM;IACrC,CAAA;EACF;EAEA,MAAMN,cAAcM,OAAuC;AACzD,WAAO,MAAM7B,eAAe,YAAA;AAC1B,YAAMd,YAAY,MAAM,KAAKS,gBAAgBkC,KAAAA,CAAM;AACnD,WAAKlC,gBAAgBkC,KAAAA,IAAS,KAAKlC,gBAAgBkC,KAAAA,KAAU;AAC7D,WAAKlC,gBAAgBkC,KAAAA,IACjB,KAAKlC,gBAAgBkC,KAAAA,KACpBU,yCAAwBzB,QAAQ,OAAOe,UAAU,IAAI,KAAKrB,aAAY,EAAGgC,OAAM,IAAK,KAAKhC,aAAY,EAAGiC,OAAM,IAAK,KAAKlD,QAAQ;AACrI,iBAAOoB,wBAAS,KAAKhB,gBAAgBkC,KAAAA,CAAM;IAC7C,CAAA;EACF;AACF;;;AEzHO,IAAMa,6BAA6B,wBAACC,UAAoBC,cAAAA;AAC7D,SAAOC,UAAU,MAAA;AACf,WAAOD,UAAUE,IAAIC,CAAAA,aAAY,IAAIC,mBAAmBD,UAAUJ,QAAAA,CAAAA;EACpE,CAAA;AACF,GAJ0C;;;ACL1C,qBAA0B;AAMnB,IAAMM,qBAAqB,8BAAOC,UAAAA;AACvC,SAAO,MAAMC,eAAe,YAAA;AAC1B,UAAMC,iBAAiB,MAAMC,QAAQC,WACnCJ,MAAMK,IAAI,OAAOC,SAAAA;AACf,YAAMC,SAAS,MAAMD,KAAKE,MAAK;AAC/B,aAAOD;IACT,CAAA,CAAA;AAEF,WAAOL,eAAeO,OAAOC,wBAAAA,EAAWL,IAAIE,CAAAA,WAAUA,OAAOI,KAAK;EACpE,CAAA;AACF,GAVkC;;;ACN3B,IAAMC,uBAAuB;;EACnB;;EACA;;EACD;;EACC;;EACA;;EACC;;EACD;;EACC;;EACA;;EACD;;EACC;;EACA;;EACA;;;;ACblB,2BAAiC;AACjC,+BAA8C;AAC9C,IAAAC,+CAA0C;;;ACF1C,IAAAC,iBAAyB;AACzB,8BAAgC;AAGhC,kDAIO;AAcA,IAAMC,6BAAN,cAEGC,wCAAAA;EAxBV,OAwBUA;;;EACR,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE7CE;EACV,IAAcC,WAAW;AACvB,WAAO,KAAKC,OAAOD;EACrB;EAEA,MAAyBE,iBAAqC;AAC5D,UAAM,KAAKC,QAAQ,OAAA;AACnB,UAAMJ,QAAQ,MAAMK,uBAAmBC,yBAAS,KAAKN,KAAK,CAAA;AAC1D,UAAMO,YAAYC,KAAKC,IAAG;AAE1B,UAAMC,UAAsC;MAC1CV;MACAW,QAAQC;MACRL;IACF;AAEA,WAAO;MAACG;;EACV;EAEA,MAAyBG,eAAe;AACtC,UAAM,MAAMA,aAAAA;AACZ,SAAKb,QAAQc,+BACXR,yBAAS,KAAKL,UAAU,MAAM,mBAAA,GAC9B,KAAKc,QAAQC,SAASC,oBAAAA;AAExB,WAAO;EACT;AACF;;;ADjDO,IAAMC,4BAA4B,iCACvCC,wDACE;EAAEC,UAAU;IAAE,CAACC,sEAAAA,GAA4B;EAAE;EAAGC,QAAQC;AAAiB,GACzE;EACEC,SAAS,8BAAOC,WAAAA;AACd,UAAMC,SAAS,MAAMC,2BAA2BC,OAAOH,MAAAA;AACvD,WAAOC;EACT,GAHS;AAIX,CAAA,GARqC;","names":["logErrors","func","ex","console","error","logErrorsAsync","EthersUniswap3PoolSlot0Wrapper","values","constructor","feeProtocol","observationCardinality","observationCardinalityNext","observationIndex","sqrtPriceX96","tick","unlocked","ChainId","waitNotNull","closure","delay","EthersUniSwap3Pair","address","provider","_pool","_poolContract","_slot0","_tokenContracts","undefined","_tokens","constructor","pool","logErrorsAsync","slot0","Pool","token","Number","feeProtocol","sqrtPriceX96","toString","poolContract","liquidity","tick","assertEx","logErrors","IUniswapV3Pool__factory","connect","price","tokenIndexes","tokens","Promise","all","map","value","tokenContracts","tokenContract","tokenPrices","parseFloat","priceOf","toSignificant","tokenSymbols","index","symbol","toLowerCase","result","getAddress","slot","EthersUniswap3PoolSlot0Wrapper","Token","decimals","name","IERC20Metadata__factory","token0","token1","createUniswapPoolContracts","provider","contracts","logErrors","map","contract","EthersUniSwap3Pair","pricesFromUniswap3","pools","logErrorsAsync","promiseResults","Promise","allSettled","map","pool","result","price","filter","fulfilled","value","UniswapPoolContracts","import_uniswap_crypto_market_payload_plugin","import_assert","UniswapCryptoMarketWitness","AbstractWitness","configSchemas","UniswapCryptoMarketWitnessConfigSchema","defaultConfigSchema","pairs","provider","params","observeHandler","started","pricesFromUniswap3","assertEx","timestamp","Date","now","payload","schema","UniswapCryptoMarketSchema","startHandler","createUniswapPoolContracts","config","pools","UniswapPoolContracts","UniswapCryptoMarketPlugin","createPayloadSetWitnessPlugin","required","UniswapCryptoMarketSchema","schema","PayloadSetSchema","witness","params","result","UniswapCryptoMarketWitness","create"]}
|
package/dist/browser/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './Config.
|
|
2
|
-
export * from './lib/index.
|
|
3
|
-
export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.
|
|
4
|
-
export * from './Witness.
|
|
1
|
+
export * from './Config.ts';
|
|
2
|
+
export * from './lib/index.ts';
|
|
3
|
+
export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts';
|
|
4
|
+
export * from './Witness.ts';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/browser/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './Config.
|
|
2
|
-
export * from './lib/index.
|
|
3
|
-
export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.
|
|
4
|
-
export * from './Witness.
|
|
1
|
+
export * from './Config.ts';
|
|
2
|
+
export * from './lib/index.ts';
|
|
3
|
+
export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts';
|
|
4
|
+
export * from './Witness.ts';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './Config.
|
|
2
|
-
export * from './lib/index.
|
|
3
|
-
export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.
|
|
4
|
-
export * from './Witness.
|
|
1
|
+
export * from './Config.ts';
|
|
2
|
+
export * from './lib/index.ts';
|
|
3
|
+
export { UniswapCryptoMarketPlugin as default, UniswapCryptoMarketPlugin } from './Plugin.ts';
|
|
4
|
+
export * from './Witness.ts';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|