@xyo-network/uniswap-crypto-market-plugin 2.74.5 → 2.75.2
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.cts.map +1 -0
- package/dist/browser/Config.d.mts.map +1 -0
- package/dist/browser/Config.d.ts +7 -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.cts.map +1 -0
- package/dist/browser/Plugin.d.mts.map +1 -0
- package/dist/browser/Plugin.d.ts +57 -0
- package/dist/browser/Plugin.d.ts.map +1 -0
- package/dist/browser/Plugin.js +17 -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.cts.map +1 -0
- package/dist/browser/Witness.d.mts.map +1 -0
- package/dist/browser/Witness.d.ts +17 -0
- package/dist/browser/Witness.d.ts.map +1 -0
- package/dist/browser/Witness.js +34 -0
- package/dist/browser/Witness.js.map +1 -0
- package/dist/browser/index.cjs +272 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts +7 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +10 -0
- 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.cts.map +1 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts +29 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/UniSwap3Pair.js +94 -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.cts.map +1 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts +13 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.js +31 -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.cts.map +1 -0
- package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/UniswapV3Slot0Fields.d.ts +3 -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.cts.map +1 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.ts +4 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/createUniswapPoolContracts.js +11 -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.cts.map +1 -0
- package/dist/browser/lib/Ethers/index.d.mts.map +1 -0
- package/dist/browser/lib/Ethers/index.d.ts +5 -0
- package/dist/browser/lib/Ethers/index.d.ts.map +1 -0
- package/dist/browser/lib/Ethers/index.js +5 -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.cts.map +1 -0
- package/dist/browser/lib/UniswapPoolContracts.d.mts.map +1 -0
- package/dist/browser/lib/UniswapPoolContracts.d.ts +2 -0
- package/dist/browser/lib/UniswapPoolContracts.d.ts.map +1 -0
- package/dist/browser/lib/UniswapPoolContracts.js +32 -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.cts.map +1 -0
- package/dist/browser/lib/UniswapV3Slot0Fields.d.mts.map +1 -0
- package/dist/browser/lib/UniswapV3Slot0Fields.d.ts +3 -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.cts.map +1 -0
- package/dist/browser/lib/index.d.mts.map +1 -0
- package/dist/browser/lib/index.d.ts +4 -0
- package/dist/browser/lib/index.d.ts.map +1 -0
- package/dist/browser/lib/index.js +4 -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.cts.map +1 -0
- package/dist/browser/lib/logErrors.d.mts.map +1 -0
- package/dist/browser/lib/logErrors.d.ts +3 -0
- package/dist/browser/lib/logErrors.d.ts.map +1 -0
- package/dist/browser/lib/logErrors.js +21 -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.cts.map +1 -0
- package/dist/browser/lib/pricesFromUniswap3.d.mts.map +1 -0
- package/dist/browser/lib/pricesFromUniswap3.d.ts +4 -0
- package/dist/browser/lib/pricesFromUniswap3.d.ts.map +1 -0
- package/dist/browser/lib/pricesFromUniswap3.js +17 -0
- package/dist/browser/lib/pricesFromUniswap3.js.map +1 -0
- package/dist/docs.json +610 -610
- package/dist/node/Config.d.cts +7 -0
- package/dist/node/Config.d.cts.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 +19 -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.cts +57 -0
- package/dist/node/Plugin.d.cts.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 +265 -0
- package/dist/node/Plugin.js.map +1 -0
- package/dist/node/Plugin.mjs +243 -0
- package/dist/node/Plugin.mjs.map +1 -0
- package/dist/node/Witness.d.cts +17 -0
- package/dist/node/Witness.d.cts.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 +249 -0
- package/dist/node/Witness.js.map +1 -0
- package/dist/node/Witness.mjs +227 -0
- package/dist/node/Witness.mjs.map +1 -0
- package/dist/node/index.d.cts +7 -0
- package/dist/node/index.d.cts.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/{index.js → node/index.js} +2 -1
- package/dist/node/index.js.map +1 -0
- package/dist/{index.mjs → node/index.mjs} +2 -1
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.d.cts +29 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.d.cts.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 +167 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.js.map +1 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.mjs +142 -0
- package/dist/node/lib/Ethers/UniSwap3Pair.mjs.map +1 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts +13 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts.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 +57 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.js.map +1 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.mjs +32 -0
- package/dist/node/lib/Ethers/Uniswap3PoolSlot0Wrapper.mjs.map +1 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.cts +3 -0
- package/dist/node/lib/Ethers/UniswapV3Slot0Fields.d.cts.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 +19 -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.cts +4 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.d.cts.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 +176 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.js.map +1 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.mjs +149 -0
- package/dist/node/lib/Ethers/createUniswapPoolContracts.mjs.map +1 -0
- package/dist/node/lib/Ethers/index.d.cts +5 -0
- package/dist/node/lib/Ethers/index.d.cts.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 +180 -0
- package/dist/node/lib/Ethers/index.js.map +1 -0
- package/dist/node/lib/Ethers/index.mjs +151 -0
- package/dist/node/lib/Ethers/index.mjs.map +1 -0
- package/dist/node/lib/UniswapPoolContracts.d.cts +2 -0
- package/dist/node/lib/UniswapPoolContracts.d.cts.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 +58 -0
- package/dist/node/lib/UniswapPoolContracts.js.map +1 -0
- package/dist/node/lib/UniswapPoolContracts.mjs +33 -0
- package/dist/node/lib/UniswapPoolContracts.mjs.map +1 -0
- package/dist/node/lib/UniswapV3Slot0Fields.d.cts +3 -0
- package/dist/node/lib/UniswapV3Slot0Fields.d.cts.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 +19 -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.cts +4 -0
- package/dist/node/lib/index.d.cts.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 +228 -0
- package/dist/node/lib/index.js.map +1 -0
- package/dist/node/lib/index.mjs +197 -0
- package/dist/node/lib/index.mjs.map +1 -0
- package/dist/node/lib/logErrors.d.cts +3 -0
- package/dist/node/lib/logErrors.d.cts.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 +48 -0
- package/dist/node/lib/logErrors.js.map +1 -0
- package/dist/node/lib/logErrors.mjs +22 -0
- package/dist/node/lib/logErrors.mjs.map +1 -0
- package/dist/node/lib/pricesFromUniswap3.d.cts +4 -0
- package/dist/node/lib/pricesFromUniswap3.d.cts.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 +54 -0
- package/dist/node/lib/pricesFromUniswap3.js.map +1 -0
- package/dist/node/lib/pricesFromUniswap3.mjs +29 -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/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.cts} +0 -0
- /package/dist/{Config.d.ts → browser/Config.d.mts} +0 -0
- /package/dist/{Plugin.d.mts → browser/Plugin.d.cts} +0 -0
- /package/dist/{Plugin.d.ts → browser/Plugin.d.mts} +0 -0
- /package/dist/{Witness.d.mts → browser/Witness.d.cts} +0 -0
- /package/dist/{Witness.d.ts → browser/Witness.d.mts} +0 -0
- /package/dist/{index.d.mts → browser/index.d.cts} +0 -0
- /package/dist/{index.d.ts → browser/index.d.mts} +0 -0
- /package/dist/{lib/Ethers/UniSwap3Pair.d.mts → browser/lib/Ethers/UniSwap3Pair.d.cts} +0 -0
- /package/dist/{lib/Ethers/UniSwap3Pair.d.ts → browser/lib/Ethers/UniSwap3Pair.d.mts} +0 -0
- /package/dist/{lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts → browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.cts} +0 -0
- /package/dist/{lib/Ethers/Uniswap3PoolSlot0Wrapper.d.ts → browser/lib/Ethers/Uniswap3PoolSlot0Wrapper.d.mts} +0 -0
- /package/dist/{lib/Ethers/UniswapV3Slot0Fields.d.mts → browser/lib/Ethers/UniswapV3Slot0Fields.d.cts} +0 -0
- /package/dist/{lib/Ethers/UniswapV3Slot0Fields.d.ts → browser/lib/Ethers/UniswapV3Slot0Fields.d.mts} +0 -0
- /package/dist/{lib/Ethers/createUniswapPoolContracts.d.mts → browser/lib/Ethers/createUniswapPoolContracts.d.cts} +0 -0
- /package/dist/{lib/Ethers/createUniswapPoolContracts.d.ts → browser/lib/Ethers/createUniswapPoolContracts.d.mts} +0 -0
- /package/dist/{lib/Ethers/index.d.mts → browser/lib/Ethers/index.d.cts} +0 -0
- /package/dist/{lib/Ethers/index.d.ts → browser/lib/Ethers/index.d.mts} +0 -0
- /package/dist/{lib/UniswapPoolContracts.d.mts → browser/lib/UniswapPoolContracts.d.cts} +0 -0
- /package/dist/{lib/UniswapPoolContracts.d.ts → browser/lib/UniswapPoolContracts.d.mts} +0 -0
- /package/dist/{lib/UniswapV3Slot0Fields.d.mts → browser/lib/UniswapV3Slot0Fields.d.cts} +0 -0
- /package/dist/{lib/UniswapV3Slot0Fields.d.ts → browser/lib/UniswapV3Slot0Fields.d.mts} +0 -0
- /package/dist/{lib/index.d.mts → browser/lib/index.d.cts} +0 -0
- /package/dist/{lib/index.d.ts → browser/lib/index.d.mts} +0 -0
- /package/dist/{lib/logErrors.d.mts → browser/lib/logErrors.d.cts} +0 -0
- /package/dist/{lib/logErrors.d.ts → browser/lib/logErrors.d.mts} +0 -0
- /package/dist/{lib/pricesFromUniswap3.d.mts → browser/lib/pricesFromUniswap3.d.cts} +0 -0
- /package/dist/{lib/pricesFromUniswap3.d.ts → browser/lib/pricesFromUniswap3.d.mts} +0 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// src/Witness.ts
|
|
2
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
3
|
+
import {
|
|
4
|
+
UniswapCryptoMarketSchema,
|
|
5
|
+
UniswapCryptoMarketWitnessConfigSchema
|
|
6
|
+
} from "@xyo-network/uniswap-crypto-market-payload-plugin";
|
|
7
|
+
import { AbstractWitness } from "@xyo-network/witness";
|
|
8
|
+
|
|
9
|
+
// src/lib/logErrors.ts
|
|
10
|
+
var logErrors = (func) => {
|
|
11
|
+
try {
|
|
12
|
+
return func();
|
|
13
|
+
} catch (ex) {
|
|
14
|
+
console.error(ex);
|
|
15
|
+
throw ex;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
var logErrorsAsync = async (func) => {
|
|
19
|
+
try {
|
|
20
|
+
return await func();
|
|
21
|
+
} catch (ex) {
|
|
22
|
+
console.error(ex);
|
|
23
|
+
throw ex;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// src/lib/Ethers/UniSwap3Pair.ts
|
|
28
|
+
import { ChainId } from "@uniswap/sdk";
|
|
29
|
+
import { Token } from "@uniswap/sdk-core";
|
|
30
|
+
import { Pool } from "@uniswap/v3-sdk";
|
|
31
|
+
import { assertEx } from "@xylabs/assert";
|
|
32
|
+
import { delay } from "@xylabs/delay";
|
|
33
|
+
import { IERC20Metadata__factory } from "@xyo-network/typechain";
|
|
34
|
+
import { IUniswapV3Pool__factory } from "@xyo-network/uniswap-typechain";
|
|
35
|
+
|
|
36
|
+
// src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts
|
|
37
|
+
var EthersUniswap3PoolSlot0Wrapper = class {
|
|
38
|
+
values;
|
|
39
|
+
constructor(values) {
|
|
40
|
+
this.values = values;
|
|
41
|
+
}
|
|
42
|
+
get feeProtocol() {
|
|
43
|
+
return this.values[5];
|
|
44
|
+
}
|
|
45
|
+
get observationCardinality() {
|
|
46
|
+
return this.values[3];
|
|
47
|
+
}
|
|
48
|
+
get observationCardinalityNext() {
|
|
49
|
+
return this.values[4];
|
|
50
|
+
}
|
|
51
|
+
get observationIndex() {
|
|
52
|
+
return this.values[2];
|
|
53
|
+
}
|
|
54
|
+
get sqrtPriceX96() {
|
|
55
|
+
return this.values[0];
|
|
56
|
+
}
|
|
57
|
+
get tick() {
|
|
58
|
+
return this.values[1];
|
|
59
|
+
}
|
|
60
|
+
get unlocked() {
|
|
61
|
+
return this.values[6];
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// src/lib/Ethers/UniSwap3Pair.ts
|
|
66
|
+
var waitNotNull = async (closure) => {
|
|
67
|
+
while (closure() === null) {
|
|
68
|
+
await delay(10);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var EthersUniSwap3Pair = class {
|
|
72
|
+
address;
|
|
73
|
+
provider;
|
|
74
|
+
_pool;
|
|
75
|
+
_poolContract;
|
|
76
|
+
_slot0;
|
|
77
|
+
_tokenContracts = [void 0, void 0];
|
|
78
|
+
_tokens = [void 0, void 0];
|
|
79
|
+
constructor(address, provider) {
|
|
80
|
+
this.address = address;
|
|
81
|
+
this.provider = provider;
|
|
82
|
+
}
|
|
83
|
+
async pool() {
|
|
84
|
+
return await logErrorsAsync(async () => {
|
|
85
|
+
await waitNotNull(() => this._pool);
|
|
86
|
+
this._pool = this._pool || null;
|
|
87
|
+
const slot0 = await this.slot0();
|
|
88
|
+
this._pool = this._pool ?? new Pool(
|
|
89
|
+
await this.token(0),
|
|
90
|
+
await this.token(1),
|
|
91
|
+
slot0.feeProtocol,
|
|
92
|
+
slot0.sqrtPriceX96.toHexString(),
|
|
93
|
+
(await this.poolContract().liquidity()).toHexString(),
|
|
94
|
+
slot0.tick
|
|
95
|
+
);
|
|
96
|
+
return assertEx(this._pool);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
poolContract() {
|
|
100
|
+
return logErrors(() => {
|
|
101
|
+
this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider);
|
|
102
|
+
return assertEx(this._poolContract);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
async price() {
|
|
106
|
+
return await logErrorsAsync(async () => {
|
|
107
|
+
const tokenIndexes = [0, 1];
|
|
108
|
+
const pool = await this.pool();
|
|
109
|
+
const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)));
|
|
110
|
+
const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)));
|
|
111
|
+
const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()));
|
|
112
|
+
const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase());
|
|
113
|
+
const result = {
|
|
114
|
+
tokens: tokenIndexes.map((value) => {
|
|
115
|
+
return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] };
|
|
116
|
+
})
|
|
117
|
+
};
|
|
118
|
+
return result;
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
async slot0() {
|
|
122
|
+
return await logErrorsAsync(async () => {
|
|
123
|
+
await waitNotNull(() => this._slot0);
|
|
124
|
+
this._slot0 = this._slot0 || null;
|
|
125
|
+
this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0());
|
|
126
|
+
return assertEx(this._slot0);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
async token(index) {
|
|
130
|
+
return await logErrorsAsync(async () => {
|
|
131
|
+
await waitNotNull(() => this._tokens[index]);
|
|
132
|
+
this._tokens[index] = this._tokens[index] || null;
|
|
133
|
+
const tokenContract = await this.tokenContract(index);
|
|
134
|
+
this._tokens[index] = this._tokens[index] ?? new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name());
|
|
135
|
+
return assertEx(this._tokens[index]);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
async tokenContract(index) {
|
|
139
|
+
return await logErrorsAsync(async () => {
|
|
140
|
+
await waitNotNull(() => this._tokenContracts[index]);
|
|
141
|
+
this._tokenContracts[index] = this._tokenContracts[index] || null;
|
|
142
|
+
this._tokenContracts[index] = this._tokenContracts[index] ?? IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider);
|
|
143
|
+
return assertEx(this._tokenContracts[index]);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
// src/lib/Ethers/createUniswapPoolContracts.ts
|
|
149
|
+
var createUniswapPoolContracts = (provider, contracts) => {
|
|
150
|
+
return logErrors(() => {
|
|
151
|
+
return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider));
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
// src/lib/pricesFromUniswap3.ts
|
|
156
|
+
import { fulfilled } from "@xylabs/promise";
|
|
157
|
+
var pricesFromUniswap3 = async (pools) => {
|
|
158
|
+
return await logErrorsAsync(async () => {
|
|
159
|
+
const promiseResults = await Promise.allSettled(
|
|
160
|
+
pools.map(async (pool) => {
|
|
161
|
+
const result = await pool.price();
|
|
162
|
+
return result;
|
|
163
|
+
})
|
|
164
|
+
);
|
|
165
|
+
return promiseResults.filter(fulfilled).map((result) => result.value);
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
// src/lib/UniswapPoolContracts.ts
|
|
170
|
+
var UniswapPoolContracts = [
|
|
171
|
+
/*xyo/weth*/
|
|
172
|
+
"0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA",
|
|
173
|
+
/*xyo/usdt*/
|
|
174
|
+
"0xd0AF1981f52146a6939385451dAeA0726e13a484",
|
|
175
|
+
/*xyo/dai*/
|
|
176
|
+
"0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe",
|
|
177
|
+
/*wbtc/xyo*/
|
|
178
|
+
"0x0cF7494c9dE661467403aBeE8454b3BBf0179a84",
|
|
179
|
+
/*link/xyo*/
|
|
180
|
+
"0x4693456599a8a4975862A0E720C5de7E1D09A1e4",
|
|
181
|
+
/*wbtc/weth*/
|
|
182
|
+
"0xCBCdF9626bC03E24f779434178A73a0B4bad62eD",
|
|
183
|
+
/*dai/usdc*/
|
|
184
|
+
"0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168",
|
|
185
|
+
/*usdc/weth*/
|
|
186
|
+
"0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8",
|
|
187
|
+
/*usdc/weth*/
|
|
188
|
+
"0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640",
|
|
189
|
+
/*dai/usdc*/
|
|
190
|
+
"0x6c6Bc977E13Df9b0de53b251522280BB72383700",
|
|
191
|
+
/*frax/usdc*/
|
|
192
|
+
"0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52",
|
|
193
|
+
/*wbtc/usdc*/
|
|
194
|
+
"0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35",
|
|
195
|
+
/*usdc/usdt*/
|
|
196
|
+
"0x3416cF6C708Da44DB2624D63ea0AAef7113527C6"
|
|
197
|
+
];
|
|
198
|
+
|
|
199
|
+
// src/Witness.ts
|
|
200
|
+
var UniswapCryptoMarketWitness = class extends AbstractWitness {
|
|
201
|
+
static configSchemas = [UniswapCryptoMarketWitnessConfigSchema];
|
|
202
|
+
pairs;
|
|
203
|
+
get provider() {
|
|
204
|
+
return this.params.provider;
|
|
205
|
+
}
|
|
206
|
+
async observeHandler() {
|
|
207
|
+
await this.started("throw");
|
|
208
|
+
const pairs = await pricesFromUniswap3(assertEx2(this.pairs));
|
|
209
|
+
const timestamp = Date.now();
|
|
210
|
+
const payload = {
|
|
211
|
+
pairs,
|
|
212
|
+
schema: UniswapCryptoMarketSchema,
|
|
213
|
+
timestamp
|
|
214
|
+
};
|
|
215
|
+
return [payload];
|
|
216
|
+
}
|
|
217
|
+
async startHandler() {
|
|
218
|
+
var _a;
|
|
219
|
+
await super.startHandler();
|
|
220
|
+
this.pairs = createUniswapPoolContracts(assertEx2(this.provider, "Provider Required"), ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts);
|
|
221
|
+
return true;
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
export {
|
|
225
|
+
UniswapCryptoMarketWitness
|
|
226
|
+
};
|
|
227
|
+
//# sourceMappingURL=Witness.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Witness.ts","../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts"],"sourcesContent":["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","export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { Provider } from '@ethersproject/providers'\nimport { ChainId } from '@uniswap/sdk'\nimport { Token } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\n\nimport { logErrors, logErrorsAsync } from '../logErrors'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper'\n\n//null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) {\n await delay(10)\n }\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool =\n this._pool ??\n new Pool(\n await this.token(0),\n await this.token(1),\n slot0.feeProtocol,\n slot0.sqrtPriceX96.toHexString(),\n (await this.poolContract().liquidity()).toHexString(),\n slot0.tick,\n )\n return assertEx(this._pool)\n })\n }\n\n poolContract(): IUniswapV3Pool {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)))\n const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: tokenIndexes.map((value) => {\n return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0())\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index] =\n this._tokens[index] ??\n new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name())\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index] =\n this._tokenContracts[index] ??\n IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from '@ethersproject/providers'\n\nimport { logErrors } from '../logErrors'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers'\nimport { logErrorsAsync } from './logErrors'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map((result) => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /*xyo/weth*/ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /*xyo/usdt*/ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /*xyo/dai*/ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /*wbtc/xyo*/ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /*link/xyo*/ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /*wbtc/weth*/ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /*dai/usdc*/ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /*usdc/weth*/ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /*usdc/weth*/ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /*dai/usdc*/ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /*frax/usdc*/ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /*wbtc/usdc*/ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /*usdc/usdt*/ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n"],"mappings":"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","names":["assertEx","assertEx"]}
|
|
@@ -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 @@
|
|
|
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"}
|
|
@@ -250,8 +250,9 @@ var UniswapCryptoMarketWitness = class extends import_witness.AbstractWitness {
|
|
|
250
250
|
return [payload];
|
|
251
251
|
}
|
|
252
252
|
async startHandler() {
|
|
253
|
+
var _a;
|
|
253
254
|
await super.startHandler();
|
|
254
|
-
this.pairs = createUniswapPoolContracts((0, import_assert2.assertEx)(this.provider, "Provider Required"), this.config
|
|
255
|
+
this.pairs = createUniswapPoolContracts((0, import_assert2.assertEx)(this.provider, "Provider Required"), ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts);
|
|
255
256
|
return true;
|
|
256
257
|
}
|
|
257
258
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Plugin.ts","../../src/Witness.ts","../../src/lib/logErrors.ts","../../src/lib/Ethers/UniSwap3Pair.ts","../../src/lib/Ethers/Uniswap3PoolSlot0Wrapper.ts","../../src/lib/Ethers/createUniswapPoolContracts.ts","../../src/lib/pricesFromUniswap3.ts","../../src/lib/UniswapPoolContracts.ts"],"sourcesContent":["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","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","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","export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { Provider } from '@ethersproject/providers'\nimport { ChainId } from '@uniswap/sdk'\nimport { Token } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\n\nimport { logErrors, logErrorsAsync } from '../logErrors'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper'\n\n//null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) {\n await delay(10)\n }\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool =\n this._pool ??\n new Pool(\n await this.token(0),\n await this.token(1),\n slot0.feeProtocol,\n slot0.sqrtPriceX96.toHexString(),\n (await this.poolContract().liquidity()).toHexString(),\n slot0.tick,\n )\n return assertEx(this._pool)\n })\n }\n\n poolContract(): IUniswapV3Pool {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)))\n const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: tokenIndexes.map((value) => {\n return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0())\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index] =\n this._tokens[index] ??\n new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name())\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index] =\n this._tokenContracts[index] ??\n IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from '@ethersproject/providers'\n\nimport { logErrors } from '../logErrors'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers'\nimport { logErrorsAsync } from './logErrors'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map((result) => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /*xyo/weth*/ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /*xyo/usdt*/ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /*xyo/dai*/ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /*wbtc/xyo*/ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /*link/xyo*/ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /*wbtc/weth*/ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /*dai/usdc*/ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /*usdc/weth*/ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /*usdc/weth*/ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /*dai/usdc*/ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /*frax/usdc*/ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /*wbtc/usdc*/ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /*usdc/usdt*/ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n"],"mappings":"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","names":["import_uniswap_crypto_market_payload_plugin","import_assert"]}
|
|
@@ -220,8 +220,9 @@ var UniswapCryptoMarketWitness = class extends AbstractWitness {
|
|
|
220
220
|
return [payload];
|
|
221
221
|
}
|
|
222
222
|
async startHandler() {
|
|
223
|
+
var _a;
|
|
223
224
|
await super.startHandler();
|
|
224
|
-
this.pairs = createUniswapPoolContracts(assertEx2(this.provider, "Provider Required"), this.config
|
|
225
|
+
this.pairs = createUniswapPoolContracts(assertEx2(this.provider, "Provider Required"), ((_a = this.config) == null ? void 0 : _a.pools) ?? UniswapPoolContracts);
|
|
225
226
|
return true;
|
|
226
227
|
}
|
|
227
228
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Plugin.ts","../../src/Witness.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/index.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","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","export const logErrors = <T>(func: () => T) => {\n try {\n return func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n\nexport const logErrorsAsync = async <T>(func: () => Promise<T>) => {\n try {\n return await func()\n } catch (ex) {\n console.error(ex)\n throw ex\n }\n}\n","import { Provider } from '@ethersproject/providers'\nimport { ChainId } from '@uniswap/sdk'\nimport { Token } from '@uniswap/sdk-core'\nimport { Pool } from '@uniswap/v3-sdk'\nimport { assertEx } from '@xylabs/assert'\nimport { delay } from '@xylabs/delay'\nimport { IERC20Metadata, IERC20Metadata__factory } from '@xyo-network/typechain'\nimport { IUniswapV3Pool, IUniswapV3Pool__factory } from '@xyo-network/uniswap-typechain'\n\nimport { logErrors, logErrorsAsync } from '../logErrors'\nimport { EthersUniswap3PoolSlot0Wrapper } from './Uniswap3PoolSlot0Wrapper'\n\n//null is used as 'in-progress'\nconst waitNotNull = async (closure: () => unknown) => {\n while (closure() === null) {\n await delay(10)\n }\n}\n\nexport class EthersUniSwap3Pair {\n protected address: string\n protected provider: Provider\n\n private _pool?: Pool | null\n private _poolContract?: IUniswapV3Pool\n private _slot0?: EthersUniswap3PoolSlot0Wrapper | null\n private _tokenContracts: (IERC20Metadata | null | undefined)[] = [undefined, undefined]\n private _tokens: (Token | null | undefined)[] = [undefined, undefined]\n\n constructor(address: string, provider: Provider) {\n this.address = address\n this.provider = provider\n }\n\n async pool(): Promise<Pool> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._pool)\n this._pool = this._pool || null\n const slot0 = await this.slot0()\n this._pool =\n this._pool ??\n new Pool(\n await this.token(0),\n await this.token(1),\n slot0.feeProtocol,\n slot0.sqrtPriceX96.toHexString(),\n (await this.poolContract().liquidity()).toHexString(),\n slot0.tick,\n )\n return assertEx(this._pool)\n })\n }\n\n poolContract(): IUniswapV3Pool {\n return logErrors(() => {\n this._poolContract = this._poolContract ?? IUniswapV3Pool__factory.connect(this.address, this.provider)\n return assertEx(this._poolContract)\n })\n }\n\n async price() {\n return await logErrorsAsync(async () => {\n const tokenIndexes: (0 | 1)[] = [0, 1]\n const pool = await this.pool()\n const tokens = await Promise.all(tokenIndexes.map((value) => this.token(value)))\n const tokenContracts = await Promise.all(tokenIndexes.map((value) => this.tokenContract(value)))\n const tokenPrices = tokens.map((token) => parseFloat(pool.priceOf(token).toSignificant()))\n const tokenSymbols = tokens.map((token, index) => assertEx(token.symbol, `Token[${index}] Missing Symbols`).toLowerCase())\n const result = {\n tokens: tokenIndexes.map((value) => {\n return { address: tokenContracts[value].address, symbol: tokenSymbols[value], value: tokenPrices[value] }\n }),\n }\n return result\n })\n }\n\n async slot0(): Promise<EthersUniswap3PoolSlot0Wrapper> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._slot0)\n this._slot0 = this._slot0 || null\n this._slot0 = this._slot0 ?? new EthersUniswap3PoolSlot0Wrapper(await this.poolContract().slot0())\n return assertEx(this._slot0)\n })\n }\n\n async token(index: 0 | 1): Promise<Token> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokens[index])\n this._tokens[index] = this._tokens[index] || null\n const tokenContract = await this.tokenContract(index)\n this._tokens[index] =\n this._tokens[index] ??\n new Token(ChainId.MAINNET, tokenContract.address, await tokenContract.decimals(), await tokenContract.symbol(), await tokenContract.name())\n return assertEx(this._tokens[index])\n })\n }\n\n async tokenContract(index: 0 | 1): Promise<IERC20Metadata> {\n return await logErrorsAsync(async () => {\n await waitNotNull(() => this._tokenContracts[index])\n this._tokenContracts[index] = this._tokenContracts[index] || null\n this._tokenContracts[index] =\n this._tokenContracts[index] ??\n IERC20Metadata__factory.connect(await (index === 0 ? this.poolContract().token0() : this.poolContract().token1()), this.provider)\n return assertEx(this._tokenContracts[index])\n })\n }\n}\n","import { EthersUniswapV3Slot0Fields } from './UniswapV3Slot0Fields'\n\nexport class EthersUniswap3PoolSlot0Wrapper {\n protected values: EthersUniswapV3Slot0Fields\n constructor(values: EthersUniswapV3Slot0Fields) {\n this.values = values\n }\n\n get feeProtocol() {\n return this.values[5]\n }\n\n get observationCardinality() {\n return this.values[3]\n }\n\n get observationCardinalityNext() {\n return this.values[4]\n }\n\n get observationIndex() {\n return this.values[2]\n }\n\n get sqrtPriceX96() {\n return this.values[0]\n }\n\n get tick() {\n return this.values[1]\n }\n\n get unlocked() {\n return this.values[6]\n }\n}\n","import { Provider } from '@ethersproject/providers'\n\nimport { logErrors } from '../logErrors'\nimport { EthersUniSwap3Pair } from './UniSwap3Pair'\n\nexport const createUniswapPoolContracts = (provider: Provider, contracts: string[]) => {\n return logErrors(() => {\n return contracts.map((contract) => new EthersUniSwap3Pair(contract, provider))\n })\n}\n","import { fulfilled } from '@xylabs/promise'\nimport { UniswapCryptoPair } from '@xyo-network/uniswap-crypto-market-payload-plugin'\n\nimport { EthersUniSwap3Pair } from './Ethers'\nimport { logErrorsAsync } from './logErrors'\n\nexport const pricesFromUniswap3 = async (pools: EthersUniSwap3Pair[]): Promise<UniswapCryptoPair[]> => {\n return await logErrorsAsync(async () => {\n const promiseResults = await Promise.allSettled(\n pools.map(async (pool): Promise<UniswapCryptoPair> => {\n const result = await pool.price()\n return result\n }),\n )\n return promiseResults.filter(fulfilled).map((result) => result.value)\n })\n}\n","export const UniswapPoolContracts = [\n /*xyo/weth*/ '0xE331DE28cd81B768C19A366b0e4e4675c45eC2dA',\n /*xyo/usdt*/ '0xd0AF1981f52146a6939385451dAeA0726e13a484',\n /*xyo/dai*/ '0x9D7e5647CE3c7C2d835F2F5e82C8fDb36B0BB0fe',\n /*wbtc/xyo*/ '0x0cF7494c9dE661467403aBeE8454b3BBf0179a84',\n /*link/xyo*/ '0x4693456599a8a4975862A0E720C5de7E1D09A1e4',\n /*wbtc/weth*/ '0xCBCdF9626bC03E24f779434178A73a0B4bad62eD',\n /*dai/usdc*/ '0x5777d92f208679DB4b9778590Fa3CAB3aC9e2168',\n /*usdc/weth*/ '0x8ad599c3A0ff1De082011EFDDc58f1908eb6e6D8',\n /*usdc/weth*/ '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640',\n /*dai/usdc*/ '0x6c6Bc977E13Df9b0de53b251522280BB72383700',\n /*frax/usdc*/ '0xc63B0708E2F7e69CB8A1df0e1389A98C35A76D52',\n /*wbtc/usdc*/ '0x99ac8cA7087fA4A2A1FB6357269965A2014ABc35',\n /*usdc/usdt*/ '0x3416cF6C708Da44DB2624D63ea0AAef7113527C6',\n]\n","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":"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","names":["UniswapCryptoMarketSchema","assertEx","assertEx","UniswapCryptoMarketSchema"]}
|
|
@@ -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,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"}
|