@xyo-network/uniswap-crypto-market-plugin 2.74.4 → 2.75.0
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/Config.cjs +19 -0
- package/dist/browser/Config.cjs.map +1 -0
- package/dist/browser/Config.d.mts.map +1 -0
- package/dist/browser/Config.d.ts.map +1 -0
- package/dist/browser/Config.js +1 -0
- package/dist/browser/Config.js.map +1 -0
- package/dist/browser/Plugin.cjs +260 -0
- package/dist/browser/Plugin.cjs.map +1 -0
- package/dist/browser/Plugin.d.mts.map +1 -0
- package/dist/browser/Plugin.d.ts.map +1 -0
- package/dist/browser/Plugin.js +242 -0
- package/dist/browser/Plugin.js.map +1 -0
- package/dist/browser/Witness.cjs +244 -0
- package/dist/browser/Witness.cjs.map +1 -0
- package/dist/browser/Witness.d.mts.map +1 -0
- package/dist/browser/Witness.d.ts.map +1 -0
- package/dist/browser/Witness.js +226 -0
- package/dist/browser/Witness.js.map +1 -0
- package/dist/{index.js → browser/index.cjs} +1 -11
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/{index.mjs → browser/index.js} +1 -1
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.cjs +163 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.cjs.map +1 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.js +142 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.js.map +1 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.cjs +53 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.cjs.map +1 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +32 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +1 -0
- package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.cjs +19 -0
- package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.cjs.map +1 -0
- package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.js +1 -0
- package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.js.map +1 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.cjs +172 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.cjs.map +1 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.js +149 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.js.map +1 -0
- package/dist/browser/lib/Ethers/index.cjs +174 -0
- package/dist/browser/lib/Ethers/index.cjs.map +1 -0
- package/dist/browser/lib/Ethers/index.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/index.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/index.js +151 -0
- package/dist/browser/lib/Ethers/index.js.map +1 -0
- package/dist/browser/lib/UniswapPoolContracts.cjs +54 -0
- package/dist/browser/lib/UniswapPoolContracts.cjs.map +1 -0
- package/dist/browser/lib/UniswapPoolContracts.d.mts.map +1 -0
- package/dist/browser/lib/UniswapPoolContracts.d.ts.map +1 -0
- package/dist/browser/lib/UniswapPoolContracts.js +33 -0
- package/dist/browser/lib/UniswapPoolContracts.js.map +1 -0
- package/dist/browser/lib/UniswapV3Slot0Fields.cjs +19 -0
- package/dist/browser/lib/UniswapV3Slot0Fields.cjs.map +1 -0
- package/dist/browser/lib/UniswapV3Slot0Fields.d.mts.map +1 -0
- package/dist/browser/lib/UniswapV3Slot0Fields.d.ts.map +1 -0
- package/dist/browser/lib/UniswapV3Slot0Fields.js +1 -0
- package/dist/browser/lib/UniswapV3Slot0Fields.js.map +1 -0
- package/dist/browser/lib/index.cjs +220 -0
- package/dist/browser/lib/index.cjs.map +1 -0
- package/dist/browser/lib/index.d.mts.map +1 -0
- package/dist/browser/lib/index.d.ts.map +1 -0
- package/dist/browser/lib/index.js +197 -0
- package/dist/browser/lib/index.js.map +1 -0
- package/dist/browser/lib/logErrors.cjs +43 -0
- package/dist/browser/lib/logErrors.cjs.map +1 -0
- package/dist/browser/lib/logErrors.d.mts.map +1 -0
- package/dist/browser/lib/logErrors.d.ts.map +1 -0
- package/dist/browser/lib/logErrors.js +22 -0
- package/dist/browser/lib/logErrors.js.map +1 -0
- package/dist/browser/lib/pricesFromUniswap3.cjs +50 -0
- package/dist/browser/lib/pricesFromUniswap3.cjs.map +1 -0
- package/dist/browser/lib/pricesFromUniswap3.d.mts.map +1 -0
- package/dist/browser/lib/pricesFromUniswap3.d.ts.map +1 -0
- package/dist/browser/lib/pricesFromUniswap3.js +29 -0
- package/dist/browser/lib/pricesFromUniswap3.js.map +1 -0
- package/dist/node/Config.d.mts +7 -0
- package/dist/node/Config.d.mts.map +1 -0
- package/dist/node/Config.d.ts +7 -0
- package/dist/node/Config.d.ts.map +1 -0
- package/dist/node/Config.js +17 -0
- package/dist/node/Config.js.map +1 -0
- package/dist/node/Config.mjs +1 -0
- package/dist/node/Config.mjs.map +1 -0
- package/dist/node/Plugin.d.mts +57 -0
- package/dist/node/Plugin.d.mts.map +1 -0
- package/dist/node/Plugin.d.ts +57 -0
- package/dist/node/Plugin.d.ts.map +1 -0
- package/dist/node/Plugin.js +41 -0
- package/dist/node/Plugin.js.map +1 -0
- package/dist/node/Plugin.mjs +17 -0
- package/dist/node/Plugin.mjs.map +1 -0
- package/dist/node/Witness.d.mts +17 -0
- package/dist/node/Witness.d.mts.map +1 -0
- package/dist/node/Witness.d.ts +17 -0
- package/dist/node/Witness.d.ts.map +1 -0
- package/dist/node/Witness.js +55 -0
- package/dist/node/Witness.js.map +1 -0
- package/dist/node/Witness.mjs +34 -0
- package/dist/node/Witness.mjs.map +1 -0
- package/dist/node/index.d.mts +7 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +7 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +38 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/index.mjs +10 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.d.mts +29 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.d.mts.map +1 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.d.ts +29 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.d.ts.map +1 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.js +118 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.js.map +1 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.mjs +94 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.mjs.map +1 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts +13 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts.map +1 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +13 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +1 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +55 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +1 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.mjs +31 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.mjs.map +1 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.mts +3 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.mts.map +1 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.ts +3 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.ts.map +1 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.js +17 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.js.map +1 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.mjs +1 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.mjs.map +1 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.d.mts +4 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.d.mts.map +1 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.d.ts +4 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.d.ts.map +1 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.js +35 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.js.map +1 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.mjs +11 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.mjs.map +1 -0
- package/dist/node/lib/Ethers/index.d.mts +5 -0
- package/dist/node/lib/Ethers/index.d.mts.map +1 -0
- package/dist/node/lib/Ethers/index.d.ts +5 -0
- package/dist/node/lib/Ethers/index.d.ts.map +1 -0
- package/dist/node/lib/Ethers/index.js +29 -0
- package/dist/node/lib/Ethers/index.js.map +1 -0
- package/dist/node/lib/Ethers/index.mjs +5 -0
- package/dist/node/lib/Ethers/index.mjs.map +1 -0
- package/dist/node/lib/UniswapPoolContracts.d.mts +2 -0
- package/dist/node/lib/UniswapPoolContracts.d.mts.map +1 -0
- package/dist/node/lib/UniswapPoolContracts.d.ts +2 -0
- package/dist/node/lib/UniswapPoolContracts.d.ts.map +1 -0
- package/dist/node/lib/UniswapPoolContracts.js +56 -0
- package/dist/node/lib/UniswapPoolContracts.js.map +1 -0
- package/dist/node/lib/UniswapPoolContracts.mjs +32 -0
- package/dist/node/lib/UniswapPoolContracts.mjs.map +1 -0
- package/dist/node/lib/UniswapV3Slot0Fields.d.mts +3 -0
- package/dist/node/lib/UniswapV3Slot0Fields.d.mts.map +1 -0
- package/dist/node/lib/UniswapV3Slot0Fields.d.ts +3 -0
- package/dist/node/lib/UniswapV3Slot0Fields.d.ts.map +1 -0
- package/dist/node/lib/UniswapV3Slot0Fields.js +17 -0
- package/dist/node/lib/UniswapV3Slot0Fields.js.map +1 -0
- package/dist/node/lib/UniswapV3Slot0Fields.mjs +1 -0
- package/dist/node/lib/UniswapV3Slot0Fields.mjs.map +1 -0
- package/dist/node/lib/index.d.mts +4 -0
- package/dist/node/lib/index.d.mts.map +1 -0
- package/dist/node/lib/index.d.ts +4 -0
- package/dist/node/lib/index.d.ts.map +1 -0
- package/dist/node/lib/index.js +27 -0
- package/dist/node/lib/index.js.map +1 -0
- package/dist/node/lib/index.mjs +4 -0
- package/dist/node/lib/index.mjs.map +1 -0
- package/dist/node/lib/logErrors.d.mts +3 -0
- package/dist/node/lib/logErrors.d.mts.map +1 -0
- package/dist/node/lib/logErrors.d.ts +3 -0
- package/dist/node/lib/logErrors.d.ts.map +1 -0
- package/dist/node/lib/logErrors.js +46 -0
- package/dist/node/lib/logErrors.js.map +1 -0
- package/dist/node/lib/logErrors.mjs +21 -0
- package/dist/node/lib/logErrors.mjs.map +1 -0
- package/dist/node/lib/pricesFromUniswap3.d.mts +4 -0
- package/dist/node/lib/pricesFromUniswap3.d.mts.map +1 -0
- package/dist/node/lib/pricesFromUniswap3.d.ts +4 -0
- package/dist/node/lib/pricesFromUniswap3.d.ts.map +1 -0
- package/dist/node/lib/pricesFromUniswap3.js +41 -0
- package/dist/node/lib/pricesFromUniswap3.js.map +1 -0
- package/dist/node/lib/pricesFromUniswap3.mjs +17 -0
- package/dist/node/lib/pricesFromUniswap3.mjs.map +1 -0
- package/package.json +34 -31
- package/dist/Config.d.mts.map +0 -1
- package/dist/Config.d.ts.map +0 -1
- package/dist/Plugin.d.mts.map +0 -1
- package/dist/Plugin.d.ts.map +0 -1
- package/dist/Witness.d.mts.map +0 -1
- package/dist/Witness.d.ts.map +0 -1
- package/dist/docs.json +0 -24286
- package/dist/index.d.mts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/lib/Ethers/UniSwap3Pair.d.mts.map +0 -1
- package/dist/lib/Ethers/UniSwap3Pair.d.ts.map +0 -1
- package/dist/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts.map +0 -1
- package/dist/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +0 -1
- package/dist/lib/Ethers/UniswapV3Slot0Fields.d.mts.map +0 -1
- package/dist/lib/Ethers/UniswapV3Slot0Fields.d.ts.map +0 -1
- package/dist/lib/Ethers/createUniswapPoolContracts.d.mts.map +0 -1
- package/dist/lib/Ethers/createUniswapPoolContracts.d.ts.map +0 -1
- package/dist/lib/Ethers/index.d.mts.map +0 -1
- package/dist/lib/Ethers/index.d.ts.map +0 -1
- package/dist/lib/UniswapPoolContracts.d.mts.map +0 -1
- package/dist/lib/UniswapPoolContracts.d.ts.map +0 -1
- package/dist/lib/UniswapV3Slot0Fields.d.mts.map +0 -1
- package/dist/lib/UniswapV3Slot0Fields.d.ts.map +0 -1
- package/dist/lib/index.d.mts.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/logErrors.d.mts.map +0 -1
- package/dist/lib/logErrors.d.ts.map +0 -1
- package/dist/lib/pricesFromUniswap3.d.mts.map +0 -1
- package/dist/lib/pricesFromUniswap3.d.ts.map +0 -1
- /package/dist/{Config.d.mts → browser/Config.d.mts} +0 -0
- /package/dist/{Config.d.ts → browser/Config.d.ts} +0 -0
- /package/dist/{Plugin.d.mts → browser/Plugin.d.mts} +0 -0
- /package/dist/{Plugin.d.ts → browser/Plugin.d.ts} +0 -0
- /package/dist/{Witness.d.mts → browser/Witness.d.mts} +0 -0
- /package/dist/{Witness.d.ts → browser/Witness.d.ts} +0 -0
- /package/dist/{index.d.mts → browser/index.d.mts} +0 -0
- /package/dist/{index.d.ts → browser/index.d.ts} +0 -0
- /package/dist/{lib → browser/lib}/Ethers/UniSwap3Pair.d.mts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/UniSwap3Pair.d.ts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/Uniswap3PoolSlot0Wrapper.d.mts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/UniswapV3Slot0Fields.d.mts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/UniswapV3Slot0Fields.d.ts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/createUniswapPoolContracts.d.mts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/createUniswapPoolContracts.d.ts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/Ethers/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/UniswapPoolContracts.d.mts +0 -0
- /package/dist/{lib → browser/lib}/UniswapPoolContracts.d.ts +0 -0
- /package/dist/{lib → browser/lib}/UniswapV3Slot0Fields.d.mts +0 -0
- /package/dist/{lib → browser/lib}/UniswapV3Slot0Fields.d.ts +0 -0
- /package/dist/{lib → browser/lib}/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/logErrors.d.mts +0 -0
- /package/dist/{lib → browser/lib}/logErrors.d.ts +0 -0
- /package/dist/{lib → browser/lib}/pricesFromUniswap3.d.mts +0 -0
- /package/dist/{lib → browser/lib}/pricesFromUniswap3.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Plugin.ts"],"sourcesContent":["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'\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"],"mappings":"AAAA,SAAS,wBAAwB;AACjC,SAAS,qCAAqC;AAC9C,SAAS,iCAAiC;AAE1C,SAAS,kCAAkC;AAEpC,MAAM,4BAA4B,MACvC;AAAA,EACE,EAAE,UAAU,EAAE,CAAC,yBAAyB,GAAG,EAAE,GAAG,QAAQ,iBAAiB;AAAA,EACzE;AAAA,IACE,SAAS,OAAO,WAAW;AACzB,YAAM,SAAS,MAAM,2BAA2B,OAAO,MAAM;AAC7D,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Provider } from '@ethersproject/providers';
|
|
2
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
3
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
4
|
+
import { AbstractWitness, WitnessParams } from '@xyo-network/witness';
|
|
5
|
+
import { UniswapCryptoMarketWitnessConfig } from './Config';
|
|
6
|
+
import { EthersUniSwap3Pair } from './lib';
|
|
7
|
+
export type UniswapCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<UniswapCryptoMarketWitnessConfig>, {
|
|
8
|
+
provider?: Provider;
|
|
9
|
+
}>;
|
|
10
|
+
export declare class UniswapCryptoMarketWitness<TParams extends UniswapCryptoMarketWitnessParams = UniswapCryptoMarketWitnessParams> extends AbstractWitness<TParams> {
|
|
11
|
+
static configSchemas: "network.xyo.crypto.market.uniswap.witness.config"[];
|
|
12
|
+
protected pairs?: EthersUniSwap3Pair[];
|
|
13
|
+
protected get provider(): Provider | undefined;
|
|
14
|
+
protected observeHandler(): Promise<Payload[]>;
|
|
15
|
+
protected startHandler(): Promise<boolean>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Witness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAMpD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAErE,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAA8B,kBAAkB,EAA4C,MAAM,OAAO,CAAA;AAEhH,MAAM,MAAM,gCAAgC,GAAG,aAAa,CAC1D,eAAe,CAAC,gCAAgC,CAAC,EACjD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CACF,CAAA;AAED,qBAAa,0BAA0B,CACrC,OAAO,SAAS,gCAAgC,GAAG,gCAAgC,CACnF,SAAQ,eAAe,CAAC,OAAO,CAAC;IAChC,OAAgB,aAAa,uDAA2C;IAExE,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACtC,SAAS,KAAK,QAAQ,yBAErB;cAEwB,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;cAcpC,YAAY;CAKtC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Provider } from '@ethersproject/providers';
|
|
2
|
+
import { AnyConfigSchema } from '@xyo-network/module-model';
|
|
3
|
+
import { Payload } from '@xyo-network/payload-model';
|
|
4
|
+
import { AbstractWitness, WitnessParams } from '@xyo-network/witness';
|
|
5
|
+
import { UniswapCryptoMarketWitnessConfig } from './Config';
|
|
6
|
+
import { EthersUniSwap3Pair } from './lib';
|
|
7
|
+
export type UniswapCryptoMarketWitnessParams = WitnessParams<AnyConfigSchema<UniswapCryptoMarketWitnessConfig>, {
|
|
8
|
+
provider?: Provider;
|
|
9
|
+
}>;
|
|
10
|
+
export declare class UniswapCryptoMarketWitness<TParams extends UniswapCryptoMarketWitnessParams = UniswapCryptoMarketWitnessParams> extends AbstractWitness<TParams> {
|
|
11
|
+
static configSchemas: "network.xyo.crypto.market.uniswap.witness.config"[];
|
|
12
|
+
protected pairs?: EthersUniSwap3Pair[];
|
|
13
|
+
protected get provider(): Provider | undefined;
|
|
14
|
+
protected observeHandler(): Promise<Payload[]>;
|
|
15
|
+
protected startHandler(): Promise<boolean>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Witness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../src/Witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAMpD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAErE,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EAA8B,kBAAkB,EAA4C,MAAM,OAAO,CAAA;AAEhH,MAAM,MAAM,gCAAgC,GAAG,aAAa,CAC1D,eAAe,CAAC,gCAAgC,CAAC,EACjD;IACE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CACF,CAAA;AAED,qBAAa,0BAA0B,CACrC,OAAO,SAAS,gCAAgC,GAAG,gCAAgC,CACnF,SAAQ,eAAe,CAAC,OAAO,CAAC;IAChC,OAAgB,aAAa,uDAA2C;IAExE,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACtC,SAAS,KAAK,QAAQ,yBAErB;cAEwB,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;cAcpC,YAAY;CAKtC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var Witness_exports = {};
|
|
20
|
+
__export(Witness_exports, {
|
|
21
|
+
UniswapCryptoMarketWitness: () => UniswapCryptoMarketWitness
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(Witness_exports);
|
|
24
|
+
var import_assert = require("@xylabs/assert");
|
|
25
|
+
var import_uniswap_crypto_market_payload_plugin = require("@xyo-network/uniswap-crypto-market-payload-plugin");
|
|
26
|
+
var import_witness = require("@xyo-network/witness");
|
|
27
|
+
var import_lib = require("./lib");
|
|
28
|
+
class UniswapCryptoMarketWitness extends import_witness.AbstractWitness {
|
|
29
|
+
static configSchemas = [import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketWitnessConfigSchema];
|
|
30
|
+
pairs;
|
|
31
|
+
get provider() {
|
|
32
|
+
return this.params.provider;
|
|
33
|
+
}
|
|
34
|
+
async observeHandler() {
|
|
35
|
+
await this.started("throw");
|
|
36
|
+
const pairs = await (0, import_lib.pricesFromUniswap3)((0, import_assert.assertEx)(this.pairs));
|
|
37
|
+
const timestamp = Date.now();
|
|
38
|
+
const payload = {
|
|
39
|
+
pairs,
|
|
40
|
+
schema: import_uniswap_crypto_market_payload_plugin.UniswapCryptoMarketSchema,
|
|
41
|
+
timestamp
|
|
42
|
+
};
|
|
43
|
+
return [payload];
|
|
44
|
+
}
|
|
45
|
+
async startHandler() {
|
|
46
|
+
await super.startHandler();
|
|
47
|
+
this.pairs = (0, import_lib.createUniswapPoolContracts)((0, import_assert.assertEx)(this.provider, "Provider Required"), this.config?.pools ?? import_lib.UniswapPoolContracts);
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
52
|
+
0 && (module.exports = {
|
|
53
|
+
UniswapCryptoMarketWitness
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=Witness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Witness.ts"],"sourcesContent":["import { Provider } from '@ethersproject/providers'\nimport { assertEx } from '@xylabs/assert'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n UniswapCryptoMarketPayload,\n UniswapCryptoMarketSchema,\n UniswapCryptoMarketWitnessConfigSchema,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { AbstractWitness, WitnessParams } from '@xyo-network/witness'\n\nimport { UniswapCryptoMarketWitnessConfig } from './Config'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib'\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 configSchemas = [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(assertEx(this.provider, 'Provider Required'), this.config?.pools ?? UniswapPoolContracts)\n return true\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAyB;AAGzB,kDAIO;AACP,qBAA+C;AAG/C,iBAAyG;AASlG,MAAM,mCAEH,+BAAyB;AAAA,EACjC,OAAgB,gBAAgB,CAAC,kFAAsC;AAAA,EAE7D;AAAA,EACV,IAAc,WAAW;AACvB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,MAAyB,iBAAqC;AAC5D,UAAM,KAAK,QAAQ,OAAO;AAC1B,UAAM,QAAQ,UAAM,mCAAmB,wBAAS,KAAK,KAAK,CAAC;AAC3D,UAAM,YAAY,KAAK,IAAI;AAE3B,UAAM,UAAsC;AAAA,MAC1C;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AAEA,WAAO,CAAC,OAAO;AAAA,EACjB;AAAA,EAEA,MAAyB,eAAe;AACtC,UAAM,MAAM,aAAa;AACzB,SAAK,YAAQ,2CAA2B,wBAAS,KAAK,UAAU,mBAAmB,GAAG,KAAK,QAAQ,SAAS,+BAAoB;AAChI,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { assertEx } from "@xylabs/assert";
|
|
2
|
+
import {
|
|
3
|
+
UniswapCryptoMarketSchema,
|
|
4
|
+
UniswapCryptoMarketWitnessConfigSchema
|
|
5
|
+
} from "@xyo-network/uniswap-crypto-market-payload-plugin";
|
|
6
|
+
import { AbstractWitness } from "@xyo-network/witness";
|
|
7
|
+
import { createUniswapPoolContracts, pricesFromUniswap3, UniswapPoolContracts } from "./lib";
|
|
8
|
+
class UniswapCryptoMarketWitness extends AbstractWitness {
|
|
9
|
+
static configSchemas = [UniswapCryptoMarketWitnessConfigSchema];
|
|
10
|
+
pairs;
|
|
11
|
+
get provider() {
|
|
12
|
+
return this.params.provider;
|
|
13
|
+
}
|
|
14
|
+
async observeHandler() {
|
|
15
|
+
await this.started("throw");
|
|
16
|
+
const pairs = await pricesFromUniswap3(assertEx(this.pairs));
|
|
17
|
+
const timestamp = Date.now();
|
|
18
|
+
const payload = {
|
|
19
|
+
pairs,
|
|
20
|
+
schema: UniswapCryptoMarketSchema,
|
|
21
|
+
timestamp
|
|
22
|
+
};
|
|
23
|
+
return [payload];
|
|
24
|
+
}
|
|
25
|
+
async startHandler() {
|
|
26
|
+
await super.startHandler();
|
|
27
|
+
this.pairs = createUniswapPoolContracts(assertEx(this.provider, "Provider Required"), this.config?.pools ?? UniswapPoolContracts);
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
UniswapCryptoMarketWitness
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=Witness.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Witness.ts"],"sourcesContent":["import { Provider } from '@ethersproject/providers'\nimport { assertEx } from '@xylabs/assert'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n UniswapCryptoMarketPayload,\n UniswapCryptoMarketSchema,\n UniswapCryptoMarketWitnessConfigSchema,\n} from '@xyo-network/uniswap-crypto-market-payload-plugin'\nimport { AbstractWitness, WitnessParams } from '@xyo-network/witness'\n\nimport { UniswapCryptoMarketWitnessConfig } from './Config'\nimport { createUniswapPoolContracts, EthersUniSwap3Pair, pricesFromUniswap3, UniswapPoolContracts } from './lib'\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 configSchemas = [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(assertEx(this.provider, 'Provider Required'), this.config?.pools ?? UniswapPoolContracts)\n return true\n }\n}\n"],"mappings":"AACA,SAAS,gBAAgB;AAGzB;AAAA,EAEE;AAAA,EACA;AAAA,OACK;AACP,SAAS,uBAAsC;AAG/C,SAAS,4BAAgD,oBAAoB,4BAA4B;AASlG,MAAM,mCAEH,gBAAyB;AAAA,EACjC,OAAgB,gBAAgB,CAAC,sCAAsC;AAAA,EAE7D;AAAA,EACV,IAAc,WAAW;AACvB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,MAAyB,iBAAqC;AAC5D,UAAM,KAAK,QAAQ,OAAO;AAC1B,UAAM,QAAQ,MAAM,mBAAmB,SAAS,KAAK,KAAK,CAAC;AAC3D,UAAM,YAAY,KAAK,IAAI;AAE3B,UAAM,UAAsC;AAAA,MAC1C;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,IACF;AAEA,WAAO,CAAC,OAAO;AAAA,EACjB;AAAA,EAEA,MAAyB,eAAe;AACtC,UAAM,MAAM,aAAa;AACzB,SAAK,QAAQ,2BAA2B,SAAS,KAAK,UAAU,mBAAmB,GAAG,KAAK,QAAQ,SAAS,oBAAoB;AAChI,WAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAEpD,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,yBAAyB,EAAE,CAAA;AAGpC,eAAe,yBAAyB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAEpD,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,yBAAyB,EAAE,CAAA;AAGpC,eAAe,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var src_exports = {};
|
|
21
|
+
__export(src_exports, {
|
|
22
|
+
UniswapCryptoMarketPlugin: () => import_Plugin.UniswapCryptoMarketPlugin,
|
|
23
|
+
default: () => src_default
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(src_exports);
|
|
26
|
+
var import_Plugin = require("./Plugin");
|
|
27
|
+
__reExport(src_exports, require("./Config"), module.exports);
|
|
28
|
+
__reExport(src_exports, require("./lib"), module.exports);
|
|
29
|
+
__reExport(src_exports, require("./Witness"), module.exports);
|
|
30
|
+
var src_default = import_Plugin.UniswapCryptoMarketPlugin;
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
UniswapCryptoMarketPlugin,
|
|
34
|
+
...require("./Config"),
|
|
35
|
+
...require("./lib"),
|
|
36
|
+
...require("./Witness")
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { UniswapCryptoMarketPlugin } from './Plugin'\n\nexport * from './Config'\nexport * from './lib'\nexport * from './Witness'\n\nexport { UniswapCryptoMarketPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default UniswapCryptoMarketPlugin\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA0C;AAE1C,wBAAc,qBAFd;AAGA,wBAAc,kBAHd;AAIA,wBAAc,sBAJd;AASA,IAAO,cAAQ;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { UniswapCryptoMarketPlugin } from "./Plugin";
|
|
2
|
+
export * from "./Config";
|
|
3
|
+
export * from "./lib";
|
|
4
|
+
export * from "./Witness";
|
|
5
|
+
var src_default = UniswapCryptoMarketPlugin;
|
|
6
|
+
export {
|
|
7
|
+
UniswapCryptoMarketPlugin,
|
|
8
|
+
src_default as default
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { UniswapCryptoMarketPlugin } from './Plugin'\n\nexport * from './Config'\nexport * from './lib'\nexport * from './Witness'\n\nexport { UniswapCryptoMarketPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default UniswapCryptoMarketPlugin\n"],"mappings":"AAAA,SAAS,iCAAiC;AAE1C,cAAc;AACd,cAAc;AACd,cAAc;AAKd,IAAO,cAAQ;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Provider } from '@ethersproject/providers';
|
|
2
|
+
import { Token } from '@uniswap/sdk-core';
|
|
3
|
+
import { Pool } from '@uniswap/v3-sdk';
|
|
4
|
+
import { IERC20Metadata } from '@xyo-network/typechain';
|
|
5
|
+
import { IUniswapV3Pool } from '@xyo-network/uniswap-typechain';
|
|
6
|
+
import { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper';
|
|
7
|
+
export declare class EthersUniSwap3Pair {
|
|
8
|
+
protected address: string;
|
|
9
|
+
protected provider: Provider;
|
|
10
|
+
private _pool?;
|
|
11
|
+
private _poolContract?;
|
|
12
|
+
private _slot0?;
|
|
13
|
+
private _tokenContracts;
|
|
14
|
+
private _tokens;
|
|
15
|
+
constructor(address: string, provider: Provider);
|
|
16
|
+
pool(): Promise<Pool>;
|
|
17
|
+
poolContract(): IUniswapV3Pool;
|
|
18
|
+
price(): Promise<{
|
|
19
|
+
tokens: {
|
|
20
|
+
address: string;
|
|
21
|
+
symbol: string;
|
|
22
|
+
value: number;
|
|
23
|
+
}[];
|
|
24
|
+
}>;
|
|
25
|
+
slot0(): Promise<EthersUniswap3PoolSlot0Wrapper>;
|
|
26
|
+
token(index: 0 | 1): Promise<Token>;
|
|
27
|
+
tokenContract(index: 0 | 1): Promise<IERC20Metadata>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=UniSwap3Pair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniSwap3Pair.d.ts","sourceRoot":"","sources":["../../../../src/lib/Ethers/UniSwap3Pair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,OAAO,EAAE,cAAc,EAA2B,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,cAAc,EAA2B,MAAM,gCAAgC,CAAA;AAGxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAA;AAS3E,qBAAa,kBAAkB;IAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAE5B,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAuC;IACtD,OAAO,CAAC,eAAe,CAAgE;IACvF,OAAO,CAAC,OAAO,CAAuD;gBAE1D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B,YAAY,IAAI,cAAc;IAOxB,KAAK;;;;;;;IAiBL,KAAK,IAAI,OAAO,CAAC,8BAA8B,CAAC;IAShD,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAYnC,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAU3D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Provider } from '@ethersproject/providers';
|
|
2
|
+
import { Token } from '@uniswap/sdk-core';
|
|
3
|
+
import { Pool } from '@uniswap/v3-sdk';
|
|
4
|
+
import { IERC20Metadata } from '@xyo-network/typechain';
|
|
5
|
+
import { IUniswapV3Pool } from '@xyo-network/uniswap-typechain';
|
|
6
|
+
import { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper';
|
|
7
|
+
export declare class EthersUniSwap3Pair {
|
|
8
|
+
protected address: string;
|
|
9
|
+
protected provider: Provider;
|
|
10
|
+
private _pool?;
|
|
11
|
+
private _poolContract?;
|
|
12
|
+
private _slot0?;
|
|
13
|
+
private _tokenContracts;
|
|
14
|
+
private _tokens;
|
|
15
|
+
constructor(address: string, provider: Provider);
|
|
16
|
+
pool(): Promise<Pool>;
|
|
17
|
+
poolContract(): IUniswapV3Pool;
|
|
18
|
+
price(): Promise<{
|
|
19
|
+
tokens: {
|
|
20
|
+
address: string;
|
|
21
|
+
symbol: string;
|
|
22
|
+
value: number;
|
|
23
|
+
}[];
|
|
24
|
+
}>;
|
|
25
|
+
slot0(): Promise<EthersUniswap3PoolSlot0Wrapper>;
|
|
26
|
+
token(index: 0 | 1): Promise<Token>;
|
|
27
|
+
tokenContract(index: 0 | 1): Promise<IERC20Metadata>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=UniSwap3Pair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UniSwap3Pair.d.ts","sourceRoot":"","sources":["../../../../src/lib/Ethers/UniSwap3Pair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,OAAO,EAAE,cAAc,EAA2B,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,cAAc,EAA2B,MAAM,gCAAgC,CAAA;AAGxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAA;AAS3E,qBAAa,kBAAkB;IAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAE5B,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAC,CAAuC;IACtD,OAAO,CAAC,eAAe,CAAgE;IACvF,OAAO,CAAC,OAAO,CAAuD;gBAE1D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAKzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B,YAAY,IAAI,cAAc;IAOxB,KAAK;;;;;;;IAiBL,KAAK,IAAI,OAAO,CAAC,8BAA8B,CAAC;IAShD,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IAYnC,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAU3D"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var UniSwap3Pair_exports = {};
|
|
20
|
+
__export(UniSwap3Pair_exports, {
|
|
21
|
+
EthersUniSwap3Pair: () => EthersUniSwap3Pair
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(UniSwap3Pair_exports);
|
|
24
|
+
var import_sdk = require("@uniswap/sdk");
|
|
25
|
+
var import_sdk_core = require("@uniswap/sdk-core");
|
|
26
|
+
var import_v3_sdk = require("@uniswap/v3-sdk");
|
|
27
|
+
var import_assert = require("@xylabs/assert");
|
|
28
|
+
var import_delay = require("@xylabs/delay");
|
|
29
|
+
var import_typechain = require("@xyo-network/typechain");
|
|
30
|
+
var import_uniswap_typechain = require("@xyo-network/uniswap-typechain");
|
|
31
|
+
var import_logErrors = require("../logErrors");
|
|
32
|
+
var import_Uniswap3PoolSlot0Wrapper = require("./Uniswap3PoolSlot0Wrapper");
|
|
33
|
+
const waitNotNull = async (closure) => {
|
|
34
|
+
while (closure() === null) {
|
|
35
|
+
await (0, import_delay.delay)(10);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
class EthersUniSwap3Pair {
|
|
39
|
+
address;
|
|
40
|
+
provider;
|
|
41
|
+
_pool;
|
|
42
|
+
_poolContract;
|
|
43
|
+
_slot0;
|
|
44
|
+
_tokenContracts = [void 0, void 0];
|
|
45
|
+
_tokens = [void 0, void 0];
|
|
46
|
+
constructor(address, provider) {
|
|
47
|
+
this.address = address;
|
|
48
|
+
this.provider = provider;
|
|
49
|
+
}
|
|
50
|
+
async pool() {
|
|
51
|
+
return await (0, import_logErrors.logErrorsAsync)(async () => {
|
|
52
|
+
await waitNotNull(() => this._pool);
|
|
53
|
+
this._pool = this._pool || null;
|
|
54
|
+
const slot0 = await this.slot0();
|
|
55
|
+
this._pool = this._pool ?? new import_v3_sdk.Pool(
|
|
56
|
+
await this.token(0),
|
|
57
|
+
await this.token(1),
|
|
58
|
+
slot0.feeProtocol,
|
|
59
|
+
slot0.sqrtPriceX96.toHexString(),
|
|
60
|
+
(await this.poolContract().liquidity()).toHexString(),
|
|
61
|
+
slot0.tick
|
|
62
|
+
);
|
|
63
|
+
return (0, import_assert.assertEx)(this._pool);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
poolContract() {
|
|
67
|
+
return (0, import_logErrors.logErrors)(() => {
|
|
68
|
+
this._poolContract = this._poolContract ?? import_uniswap_typechain.IUniswapV3Pool__factory.connect(this.address, this.provider);
|
|
69
|
+
return (0, import_assert.assertEx)(this._poolContract);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
async price() {
|
|
73
|
+
return await (0, import_logErrors.logErrorsAsync)(async () => {
|
|
74
|
+
const tokenIndexes = [0, 1];
|
|
75
|
+
const pool = await this.pool();
|
|
76
|
+
const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
|
|
77
|
+
const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
|
|
78
|
+
const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
|
|
79
|
+
const tokenSymbols = tokens.map((token, index) => (0, import_assert.assertEx)(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
|
|
80
|
+
const result = {
|
|
81
|
+
tokens: tokenIndexes.map((value) => {
|
|
82
|
+
return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
|
|
83
|
+
})
|
|
84
|
+
};
|
|
85
|
+
return result;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async slot0() {
|
|
89
|
+
return await (0, import_logErrors.logErrorsAsync)(async () => {
|
|
90
|
+
await waitNotNull(() => this._slot0);
|
|
91
|
+
this._slot0 = this._slot0 || null;
|
|
92
|
+
this._slot0 = this._slot0 ?? new import_Uniswap3PoolSlot0Wrapper.EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
|
|
93
|
+
return (0, import_assert.assertEx)(this._slot0);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async token(index) {
|
|
97
|
+
return await (0, import_logErrors.logErrorsAsync)(async () => {
|
|
98
|
+
await waitNotNull(() => this._tokens[index]);
|
|
99
|
+
this._tokens[index] = this._tokens[index] || null;
|
|
100
|
+
const tokenContract = await this.tokenContract(index);
|
|
101
|
+
this._tokens[index] = this._tokens[index] ?? new import_sdk_core.Token(import_sdk.ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name());
|
|
102
|
+
return (0, import_assert.assertEx)(this._tokens[index]);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
async tokenContract(index) {
|
|
106
|
+
return await (0, import_logErrors.logErrorsAsync)(async () => {
|
|
107
|
+
await waitNotNull(() => this._tokenContracts[index]);
|
|
108
|
+
this._tokenContracts[index] = this._tokenContracts[index] || null;
|
|
109
|
+
this._tokenContracts[index] = this._tokenContracts[index] ?? import_typechain.IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
|
|
110
|
+
return (0, import_assert.assertEx)(this._tokenContracts[index]);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
115
|
+
0 && (module.exports = {
|
|
116
|
+
EthersUniSwap3Pair
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=UniSwap3Pair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/Ethers/UniSwap3Pair.ts"],"sourcesContent":["import { Provider } from '@ethersproject/providers'\nimport { ChainId } from '@uniswap/sdk'\nimport { Token } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\n\nimport { logErrors, logErrorsAsync } from '../logErrors'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper'\n\n//null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) {\n await delay(10)\n }\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool =\n this._pool ??\n new Pool(\n await this.token(0),\n await this.token(1),\n slot0.feeProtocol,\n slot0.sqrtPriceX96.toHexString(),\n (await this.poolContract().liquidity()).toHexString(),\n slot0.tick,\n )\n return assertEx(this._pool)\n })\n }\n\n poolContract(): IUniswapV3Pool {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)))\n const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: tokenIndexes.map((value) => {\n return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0())\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index] =\n this._tokens[index] ??\n new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name())\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index] =\n this._tokenContracts[index] ??\n IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ChainId } from "@uniswap/sdk";
|
|
2
|
+
import { Token } from "@uniswap/sdk-core";
|
|
3
|
+
import { Pool } from "@uniswap/v3-sdk";
|
|
4
|
+
import { assertEx } from "@xylabs/assert";
|
|
5
|
+
import { delay } from "@xylabs/delay";
|
|
6
|
+
import { IERC20Metadata__factory } from "@xyo-network/typechain";
|
|
7
|
+
import { IUniswapV3Pool__factory } from "@xyo-network/uniswap-typechain";
|
|
8
|
+
import { logErrors, logErrorsAsync } from "../logErrors";
|
|
9
|
+
import { EthersUniswap3PoolSlot0Wrapper } from "./Uniswap3PoolSlot0Wrapper";
|
|
10
|
+
const waitNotNull = async (closure) => {
|
|
11
|
+
while (closure() === null) {
|
|
12
|
+
await delay(10);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
class EthersUniSwap3Pair {
|
|
16
|
+
address;
|
|
17
|
+
provider;
|
|
18
|
+
_pool;
|
|
19
|
+
_poolContract;
|
|
20
|
+
_slot0;
|
|
21
|
+
_tokenContracts = [void 0, void 0];
|
|
22
|
+
_tokens = [void 0, void 0];
|
|
23
|
+
constructor(address, provider) {
|
|
24
|
+
this.address = address;
|
|
25
|
+
this.provider = provider;
|
|
26
|
+
}
|
|
27
|
+
async pool() {
|
|
28
|
+
return await logErrorsAsync(async () => {
|
|
29
|
+
await waitNotNull(() => this._pool);
|
|
30
|
+
this._pool = this._pool || null;
|
|
31
|
+
const slot0 = await this.slot0();
|
|
32
|
+
this._pool = this._pool ?? new Pool(
|
|
33
|
+
await this.token(0),
|
|
34
|
+
await this.token(1),
|
|
35
|
+
slot0.feeProtocol,
|
|
36
|
+
slot0.sqrtPriceX96.toHexString(),
|
|
37
|
+
(await this.poolContract().liquidity()).toHexString(),
|
|
38
|
+
slot0.tick
|
|
39
|
+
);
|
|
40
|
+
return assertEx(this._pool);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
poolContract() {
|
|
44
|
+
return logErrors(() => {
|
|
45
|
+
this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider);
|
|
46
|
+
return assertEx(this._poolContract);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
async price() {
|
|
50
|
+
return await logErrorsAsync(async () => {
|
|
51
|
+
const tokenIndexes = [0, 1];
|
|
52
|
+
const pool = await this.pool();
|
|
53
|
+
const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
|
|
54
|
+
const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
|
|
55
|
+
const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
|
|
56
|
+
const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
|
|
57
|
+
const result = {
|
|
58
|
+
tokens: tokenIndexes.map((value) => {
|
|
59
|
+
return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
|
|
60
|
+
})
|
|
61
|
+
};
|
|
62
|
+
return result;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async slot0() {
|
|
66
|
+
return await logErrorsAsync(async () => {
|
|
67
|
+
await waitNotNull(() => this._slot0);
|
|
68
|
+
this._slot0 = this._slot0 || null;
|
|
69
|
+
this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
|
|
70
|
+
return assertEx(this._slot0);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
async token(index) {
|
|
74
|
+
return await logErrorsAsync(async () => {
|
|
75
|
+
await waitNotNull(() => this._tokens[index]);
|
|
76
|
+
this._tokens[index] = this._tokens[index] || null;
|
|
77
|
+
const tokenContract = await this.tokenContract(index);
|
|
78
|
+
this._tokens[index] = this._tokens[index] ?? new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name());
|
|
79
|
+
return assertEx(this._tokens[index]);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
async tokenContract(index) {
|
|
83
|
+
return await logErrorsAsync(async () => {
|
|
84
|
+
await waitNotNull(() => this._tokenContracts[index]);
|
|
85
|
+
this._tokenContracts[index] = this._tokenContracts[index] || null;
|
|
86
|
+
this._tokenContracts[index] = this._tokenContracts[index] ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
|
|
87
|
+
return assertEx(this._tokenContracts[index]);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export {
|
|
92
|
+
EthersUniSwap3Pair
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=UniSwap3Pair.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/Ethers/UniSwap3Pair.ts"],"sourcesContent":["import { Provider } from '@ethersproject/providers'\nimport { ChainId } from '@uniswap/sdk'\nimport { Token } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\n\nimport { logErrors, logErrorsAsync } from '../logErrors'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper'\n\n//null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) {\n await delay(10)\n }\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool =\n this._pool ??\n new Pool(\n await this.token(0),\n await this.token(1),\n slot0.feeProtocol,\n slot0.sqrtPriceX96.toHexString(),\n (await this.poolContract().liquidity()).toHexString(),\n slot0.tick,\n )\n return assertEx(this._pool)\n })\n }\n\n poolContract(): IUniswapV3Pool {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)))\n const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: tokenIndexes.map((value) => {\n return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0())\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index] =\n this._tokens[index] ??\n new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name())\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index] =\n this._tokenContracts[index] ??\n IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n"],"mappings":"AACA,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,YAAY;AACrB,SAAS,gBAAgB;AACzB,SAAS,aAAa;AACtB,SAAyB,+BAA+B;AACxD,SAAyB,+BAA+B;AAExD,SAAS,WAAW,sBAAsB;AAC1C,SAAS,sCAAsC;AAG/C,MAAM,cAAc,OAAO,YAA2B;AACpD,SAAO,QAAQ,MAAM,MAAM;AACzB,UAAM,MAAM,EAAE;AAAA,EAChB;AACF;AAEO,MAAM,mBAAmB;AAAA,EACpB;AAAA,EACA;AAAA,EAEF;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAyD,CAAC,QAAW,MAAS;AAAA,EAC9E,UAAwC,CAAC,QAAW,MAAS;AAAA,EAErE,YAAY,SAAiB,UAAoB;AAC/C,SAAK,UAAU;AACf,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAM,OAAsB;AAC1B,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,KAAK;AAClC,WAAK,QAAQ,KAAK,SAAS;AAC3B,YAAM,QAAQ,MAAM,KAAK,MAAM;AAC/B,WAAK,QACH,KAAK,SACL,IAAI;AAAA,QACF,MAAM,KAAK,MAAM,CAAC;AAAA,QAClB,MAAM,KAAK,MAAM,CAAC;AAAA,QAClB,MAAM;AAAA,QACN,MAAM,aAAa,YAAY;AAAA,SAC9B,MAAM,KAAK,aAAa,EAAE,UAAU,GAAG,YAAY;AAAA,QACpD,MAAM;AAAA,MACR;AACF,aAAO,SAAS,KAAK,KAAK;AAAA,IAC5B,CAAC;AAAA,EACH;AAAA,EAEA,eAA+B;AAC7B,WAAO,UAAU,MAAM;AACrB,WAAK,gBAAgB,KAAK,iBAAiB,wBAAwB,QAAQ,KAAK,SAAS,KAAK,QAAQ;AACtG,aAAO,SAAS,KAAK,aAAa;AAAA,IACpC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAAQ;AACZ,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,eAA0B,CAAC,GAAG,CAAC;AACrC,YAAM,OAAO,MAAM,KAAK,KAAK;AAC7B,YAAM,SAAS,MAAM,QAAQ,IAAI,aAAa,IAAI,CAAC,UAAU,KAAK,MAAM,KAAK,CAAC,CAAC;AAC/E,YAAM,iBAAiB,MAAM,QAAQ,IAAI,aAAa,IAAI,CAAC,UAAU,KAAK,cAAc,KAAK,CAAC,CAAC;AAC/F,YAAM,cAAc,OAAO,IAAI,CAAC,UAAU,WAAW,KAAK,QAAQ,KAAK,EAAE,cAAc,CAAC,CAAC;AACzF,YAAM,eAAe,OAAO,IAAI,CAAC,OAAO,UAAU,SAAS,MAAM,QAAQ,SAAS,KAAK,mBAAmB,EAAE,YAAY,CAAC;AACzH,YAAM,SAAS;AAAA,QACb,QAAQ,aAAa,IAAI,CAAC,UAAU;AAClC,iBAAO,EAAE,SAAS,eAAe,KAAK,EAAE,SAAS,QAAQ,aAAa,KAAK,GAAG,OAAO,YAAY,KAAK,EAAE;AAAA,QAC1G,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,QAAiD;AACrD,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,MAAM;AACnC,WAAK,SAAS,KAAK,UAAU;AAC7B,WAAK,SAAS,KAAK,UAAU,IAAI,+BAA+B,MAAM,KAAK,aAAa,EAAE,MAAM,CAAC;AACjG,aAAO,SAAS,KAAK,MAAM;AAAA,IAC7B,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAM,OAA8B;AACxC,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,QAAQ,KAAK,CAAC;AAC3C,WAAK,QAAQ,KAAK,IAAI,KAAK,QAAQ,KAAK,KAAK;AAC7C,YAAM,gBAAgB,MAAM,KAAK,cAAc,KAAK;AACpD,WAAK,QAAQ,KAAK,IAChB,KAAK,QAAQ,KAAK,KAClB,IAAI,MAAM,QAAQ,SAAS,cAAc,SAAS,MAAM,cAAc,SAAS,GAAG,MAAM,cAAc,OAAO,GAAG,MAAM,cAAc,KAAK,CAAC;AAC5I,aAAO,SAAS,KAAK,QAAQ,KAAK,CAAC;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,cAAc,OAAuC;AACzD,WAAO,MAAM,eAAe,YAAY;AACtC,YAAM,YAAY,MAAM,KAAK,gBAAgB,KAAK,CAAC;AACnD,WAAK,gBAAgB,KAAK,IAAI,KAAK,gBAAgB,KAAK,KAAK;AAC7D,WAAK,gBAAgB,KAAK,IACxB,KAAK,gBAAgB,KAAK,KAC1B,wBAAwB,QAAQ,OAAO,UAAU,IAAI,KAAK,aAAa,EAAE,OAAO,IAAI,KAAK,aAAa,EAAE,OAAO,IAAI,KAAK,QAAQ;AAClI,aAAO,SAAS,KAAK,gBAAgB,KAAK,CAAC;AAAA,IAC7C,CAAC;AAAA,EACH;AACF;","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields';
|
|
2
|
+
export declare class EthersUniswap3PoolSlot0Wrapper {
|
|
3
|
+
protected values: EthersUniswapV3Slot0Fields;
|
|
4
|
+
constructor(values: EthersUniswapV3Slot0Fields);
|
|
5
|
+
get feeProtocol(): number;
|
|
6
|
+
get observationCardinality(): number;
|
|
7
|
+
get observationCardinalityNext(): number;
|
|
8
|
+
get observationIndex(): number;
|
|
9
|
+
get sqrtPriceX96(): import("ethers").BigNumber;
|
|
10
|
+
get tick(): number;
|
|
11
|
+
get unlocked(): boolean;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=Uniswap3PoolSlot0Wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Uniswap3PoolSlot0Wrapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAEnE,qBAAa,8BAA8B;IACzC,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAA;gBAChC,MAAM,EAAE,0BAA0B;IAI9C,IAAI,WAAW,WAEd;IAED,IAAI,sBAAsB,WAEzB;IAED,IAAI,0BAA0B,WAE7B;IAED,IAAI,gBAAgB,WAEnB;IAED,IAAI,YAAY,+BAEf;IAED,IAAI,IAAI,WAEP;IAED,IAAI,QAAQ,YAEX;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields';
|
|
2
|
+
export declare class EthersUniswap3PoolSlot0Wrapper {
|
|
3
|
+
protected values: EthersUniswapV3Slot0Fields;
|
|
4
|
+
constructor(values: EthersUniswapV3Slot0Fields);
|
|
5
|
+
get feeProtocol(): number;
|
|
6
|
+
get observationCardinality(): number;
|
|
7
|
+
get observationCardinalityNext(): number;
|
|
8
|
+
get observationIndex(): number;
|
|
9
|
+
get sqrtPriceX96(): import("ethers").BigNumber;
|
|
10
|
+
get tick(): number;
|
|
11
|
+
get unlocked(): boolean;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=Uniswap3PoolSlot0Wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Uniswap3PoolSlot0Wrapper.d.ts","sourceRoot":"","sources":["../../../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAEnE,qBAAa,8BAA8B;IACzC,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAA;gBAChC,MAAM,EAAE,0BAA0B;IAI9C,IAAI,WAAW,WAEd;IAED,IAAI,sBAAsB,WAEzB;IAED,IAAI,0BAA0B,WAE7B;IAED,IAAI,gBAAgB,WAEnB;IAED,IAAI,YAAY,+BAEf;IAED,IAAI,IAAI,WAEP;IAED,IAAI,QAAQ,YAEX;CACF"}
|