@stake-dao/reader 0.1.4 → 0.2.1
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/esm/bytecodes/index.js +16 -0
- package/dist/esm/bytecodes/index.js.map +1 -0
- package/dist/esm/bytecodes/strategies/batches/batchBalancerStrats.js +68 -0
- package/dist/esm/bytecodes/strategies/batches/batchBalancerStrats.js.map +1 -0
- package/dist/esm/{batches/curveStrats.js → bytecodes/strategies/batches/batchCurveStrats.js} +3 -3
- package/dist/esm/bytecodes/strategies/batches/batchCurveStrats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.js +61 -0
- package/dist/esm/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/batches/batchPancakeSwapPositions.js +44 -0
- package/dist/esm/bytecodes/strategies/batches/batchPancakeSwapPositions.js.map +1 -0
- package/dist/esm/bytecodes/strategies/batches/batchPancakeswapStrats.js +48 -0
- package/dist/esm/bytecodes/strategies/batches/batchPancakeswapStrats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/batches/batchPendleStrats.js +63 -0
- package/dist/esm/bytecodes/strategies/batches/batchPendleStrats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/builds/buildBalancerStrats.js +54 -0
- package/dist/esm/bytecodes/strategies/builds/buildBalancerStrats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.js +64 -0
- package/dist/esm/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/builds/buildPancakeSwapStrats.js +51 -0
- package/dist/esm/bytecodes/strategies/builds/buildPancakeSwapStrats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.js +54 -0
- package/dist/esm/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/builds/buildPendleStrats.js +39 -0
- package/dist/esm/bytecodes/strategies/builds/buildPendleStrats.js.map +1 -0
- package/dist/esm/{batches → bytecodes/strategies/builds}/buildYearnStrats.js +2 -2
- package/dist/esm/bytecodes/strategies/builds/buildYearnStrats.js.map +1 -0
- package/dist/esm/bytecodes/strategies/fetchYearnGauges.js.map +1 -0
- package/dist/esm/bytecodes/strategies/sdtGaugeRewards.js.map +1 -0
- package/dist/esm/bytecodes/tokenData.js.map +1 -0
- package/dist/esm/{batches → bytecodes}/types.js.map +1 -1
- package/dist/esm/index.js +33 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lockers/utils/endpoints.js +1 -1
- package/dist/esm/lockers/utils/endpoints.js.map +1 -1
- package/dist/esm/prices.js +39 -3
- package/dist/esm/prices.js.map +1 -1
- package/dist/esm/strategies/balancer/build.js +4 -11
- package/dist/esm/strategies/balancer/build.js.map +1 -1
- package/dist/esm/strategies/balancer/fetch.js +190 -0
- package/dist/esm/strategies/balancer/fetch.js.map +1 -0
- package/dist/esm/strategies/curve/build.js +4 -4
- package/dist/esm/strategies/curve/build.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/bytecode.js +0 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/bytecode.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/getCurveApiData.js +3 -2
- package/dist/esm/strategies/curve/fetch/curveApiData/getCurveApiData.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesFromRegistry.js +3 -2
- package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesFromRegistry.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesWeights.js +2 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesWeights.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/getPoolsFromRegistries.ts.js +2 -1
- package/dist/esm/strategies/curve/fetch/curveApiData/getPoolsFromRegistries.ts.js.map +1 -1
- package/dist/esm/strategies/curve/fetch/index.js +22 -4
- package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
- package/dist/esm/strategies/curve/httpCalls.js +3 -3
- package/dist/esm/strategies/curve/httpCalls.js.map +1 -1
- package/dist/esm/strategies/curve/onChainCalls.js +3 -2
- package/dist/esm/strategies/curve/onChainCalls.js.map +1 -1
- package/dist/esm/strategies/pancakeswap/abis/PancakeSwapMasterchef.json +1575 -0
- package/dist/esm/strategies/pancakeswap/build.js +48 -0
- package/dist/esm/strategies/pancakeswap/build.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/buildErc20.js +63 -0
- package/dist/esm/strategies/pancakeswap/buildErc20.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/config.js +7 -0
- package/dist/esm/strategies/pancakeswap/config.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/endpoints.js +10 -0
- package/dist/esm/strategies/pancakeswap/endpoints.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeApisData.js +24 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeApisData.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeErc20Vaults.js +134 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeErc20Vaults.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeNotDeployed.js +102 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeNotDeployed.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js +142 -0
- package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/fetch/index.js +25 -0
- package/dist/esm/strategies/pancakeswap/fetch/index.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/fetch/pancakePositions.js +87 -0
- package/dist/esm/strategies/pancakeswap/fetch/pancakePositions.js.map +1 -0
- package/dist/esm/strategies/pancakeswap/fetch/pancakeswapMath.js +199 -0
- package/dist/esm/strategies/pancakeswap/fetch/pancakeswapMath.js.map +1 -0
- package/dist/esm/strategies/pendle/abis/MulticallPendleStratsAbi.json +103 -0
- package/dist/esm/strategies/pendle/build.js +70 -0
- package/dist/esm/strategies/pendle/build.js.map +1 -0
- package/dist/esm/strategies/pendle/fetch.js +267 -0
- package/dist/esm/strategies/pendle/fetch.js.map +1 -0
- package/dist/esm/strategies/pendle/getPendleApiData.js +15 -0
- package/dist/esm/strategies/pendle/getPendleApiData.js.map +1 -0
- package/dist/esm/strategies/pendle/pendlePoints.js +71 -0
- package/dist/esm/strategies/pendle/pendlePoints.js.map +1 -0
- package/dist/esm/strategies/utils/getAprBreakdown.js +9 -9
- package/dist/esm/strategies/utils/getAprBreakdown.js.map +1 -1
- package/dist/esm/strategies/utils/index.js +10 -1
- package/dist/esm/strategies/utils/index.js.map +1 -1
- package/dist/esm/strategies/yearn/build.js +5 -4
- package/dist/esm/strategies/yearn/build.js.map +1 -1
- package/dist/esm/strategies/yearn/fetch/fetchAllYearnGauges.js +3 -2
- package/dist/esm/strategies/yearn/fetch/fetchAllYearnGauges.js.map +1 -1
- package/dist/esm/strategies/yearn/fetch/index.js +1 -1
- package/dist/esm/strategies/yearn/fetch/index.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/utils.js +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/bytecodes/index.d.ts +16 -0
- package/dist/types/bytecodes/index.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/batches/batchBalancerStrats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/batches/batchBalancerStrats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/batches/batchCurveStrats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/batches/batchCurveStrats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/batches/batchPancakeSwapPositions.d.ts +4 -0
- package/dist/types/bytecodes/strategies/batches/batchPancakeSwapPositions.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/batches/batchPancakeswapStrats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/batches/batchPancakeswapStrats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/batches/batchPendleStrats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/batches/batchPendleStrats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/builds/buildBalancerStrats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/builds/buildBalancerStrats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/builds/buildPancakeSwapStrats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/builds/buildPancakeSwapStrats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/builds/buildPendleStrats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/builds/buildPendleStrats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/builds/buildYearnStrats.d.ts +4 -0
- package/dist/types/bytecodes/strategies/builds/buildYearnStrats.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/fetchYearnGauges.d.ts +4 -0
- package/dist/types/bytecodes/strategies/fetchYearnGauges.d.ts.map +1 -0
- package/dist/types/bytecodes/strategies/sdtGaugeRewards.d.ts +4 -0
- package/dist/types/bytecodes/strategies/sdtGaugeRewards.d.ts.map +1 -0
- package/dist/types/bytecodes/tokenData.d.ts.map +1 -0
- package/dist/types/bytecodes/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +15 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lockers/utils/endpoints.d.ts +1 -1
- package/dist/types/lockers/utils/endpoints.d.ts.map +1 -1
- package/dist/types/prices.d.ts +8 -1
- package/dist/types/prices.d.ts.map +1 -1
- package/dist/types/strategies/balancer/build.d.ts +0 -1
- package/dist/types/strategies/balancer/build.d.ts.map +1 -1
- package/dist/types/strategies/balancer/fetch.d.ts +11 -0
- package/dist/types/strategies/balancer/fetch.d.ts.map +1 -0
- package/dist/types/strategies/curve/build.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/curveApiData/bytecode.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/curveApiData/getCurveApiData.d.ts +1 -1
- package/dist/types/strategies/curve/fetch/curveApiData/getCurveApiData.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/curveApiData/getGaugesFromRegistry.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/curveApiData/getGaugesWeights.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/curveApiData/getPoolsFromRegistries.ts.d.ts.map +1 -1
- package/dist/types/strategies/curve/fetch/index.d.ts +15 -2
- package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
- package/dist/types/strategies/curve/onChainCalls.d.ts.map +1 -1
- package/dist/types/strategies/pancakeswap/build.d.ts +2 -0
- package/dist/types/strategies/pancakeswap/build.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/buildErc20.d.ts +7 -0
- package/dist/types/strategies/pancakeswap/buildErc20.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/config.d.ts +7 -0
- package/dist/types/strategies/pancakeswap/config.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/endpoints.d.ts +8 -0
- package/dist/types/strategies/pancakeswap/endpoints.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeApisData.d.ts +10 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeApisData.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeErc20Vaults.d.ts +44 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeErc20Vaults.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeNotDeployed.d.ts +3 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeNotDeployed.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeV3Vaults.d.ts +7 -0
- package/dist/types/strategies/pancakeswap/fetch/getPancakeV3Vaults.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/fetch/index.d.ts +17 -0
- package/dist/types/strategies/pancakeswap/fetch/index.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/fetch/pancakePositions.d.ts +11 -0
- package/dist/types/strategies/pancakeswap/fetch/pancakePositions.d.ts.map +1 -0
- package/dist/types/strategies/pancakeswap/fetch/pancakeswapMath.d.ts +33 -0
- package/dist/types/strategies/pancakeswap/fetch/pancakeswapMath.d.ts.map +1 -0
- package/dist/types/strategies/pendle/build.d.ts +42 -0
- package/dist/types/strategies/pendle/build.d.ts.map +1 -0
- package/dist/types/strategies/pendle/fetch.d.ts +60 -0
- package/dist/types/strategies/pendle/fetch.d.ts.map +1 -0
- package/dist/types/strategies/pendle/getPendleApiData.d.ts +3 -0
- package/dist/types/strategies/pendle/getPendleApiData.d.ts.map +1 -0
- package/dist/types/strategies/pendle/pendlePoints.d.ts +80 -0
- package/dist/types/strategies/pendle/pendlePoints.d.ts.map +1 -0
- package/dist/types/strategies/types.d.ts +17 -3
- package/dist/types/strategies/types.d.ts.map +1 -1
- package/dist/types/strategies/utils/getAprBreakdown.d.ts +1 -4
- package/dist/types/strategies/utils/getAprBreakdown.d.ts.map +1 -1
- package/dist/types/strategies/utils/index.d.ts +2 -0
- package/dist/types/strategies/utils/index.d.ts.map +1 -1
- package/dist/types/strategies/yearn/build.d.ts.map +1 -1
- package/dist/types/strategies/yearn/fetch/fetchAllYearnGauges.d.ts.map +1 -1
- package/dist/types/strategies/yearn/fetch/index.d.ts +13 -2
- package/dist/types/strategies/yearn/fetch/index.d.ts.map +1 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/bytecodes/index.ts +18 -0
- package/src/bytecodes/strategies/batches/batchBalancerStrats.ts +70 -0
- package/src/{batches/curveStrats.ts → bytecodes/strategies/batches/batchCurveStrats.ts} +3 -3
- package/src/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.ts +67 -0
- package/src/bytecodes/strategies/batches/batchPancakeSwapPositions.ts +50 -0
- package/src/bytecodes/strategies/batches/batchPancakeswapStrats.ts +54 -0
- package/src/bytecodes/strategies/batches/batchPendleStrats.ts +65 -0
- package/src/bytecodes/strategies/builds/buildBalancerStrats.ts +56 -0
- package/src/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.ts +70 -0
- package/src/bytecodes/strategies/builds/buildPancakeSwapStrats.ts +57 -0
- package/src/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.ts +60 -0
- package/src/bytecodes/strategies/builds/buildPendleStrats.ts +41 -0
- package/src/{batches → bytecodes/strategies/builds}/buildYearnStrats.ts +3 -3
- package/src/{batches → bytecodes/strategies}/fetchYearnGauges.ts +1 -1
- package/src/{batches → bytecodes/strategies}/sdtGaugeRewards.ts +1 -1
- package/src/endpoints.ts +2 -0
- package/src/index.ts +43 -5
- package/src/lockers/utils/endpoints.ts +2 -1
- package/src/prices.ts +57 -6
- package/src/strategies/balancer/build.ts +66 -0
- package/src/strategies/balancer/endpoints.ts +27 -0
- package/src/strategies/balancer/fetch.ts +266 -0
- package/src/strategies/curve/build.ts +4 -3
- package/src/strategies/curve/fetch/curveApiData/bytecode.ts +0 -1
- package/src/strategies/curve/fetch/curveApiData/getCurveApiData.ts +4 -3
- package/src/strategies/curve/fetch/curveApiData/getGaugesFromRegistry.ts +7 -3
- package/src/strategies/curve/fetch/curveApiData/getGaugesWeights.ts +3 -2
- package/src/strategies/curve/fetch/curveApiData/getPoolsFromRegistries.ts.ts +3 -2
- package/src/strategies/curve/fetch/index.ts +53 -15
- package/src/strategies/curve/httpCalls.ts +3 -3
- package/src/strategies/curve/onChainCalls.ts +4 -2
- package/src/strategies/pancakeswap/build.ts +57 -0
- package/src/strategies/pancakeswap/buildErc20.ts +73 -0
- package/src/strategies/pancakeswap/config.ts +7 -0
- package/src/strategies/pancakeswap/endpoints.ts +12 -0
- package/src/strategies/pancakeswap/fetch/getPancakeApisData.ts +32 -0
- package/src/strategies/pancakeswap/fetch/getPancakeErc20Vaults.ts +184 -0
- package/src/strategies/pancakeswap/fetch/getPancakeNotDeployed.ts +132 -0
- package/src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts +191 -0
- package/src/strategies/pancakeswap/fetch/index.ts +50 -0
- package/src/strategies/pancakeswap/fetch/pancakePositions.ts +147 -0
- package/src/strategies/pancakeswap/fetch/pancakeswapMath.ts +305 -0
- package/src/strategies/pendle/build.ts +93 -0
- package/src/strategies/pendle/fetch.ts +349 -0
- package/src/strategies/pendle/getPendleApiData.ts +20 -0
- package/src/strategies/pendle/pendlePoints.ts +71 -0
- package/src/strategies/types.ts +20 -3
- package/src/strategies/utils/getAprBreakdown.ts +9 -9
- package/src/strategies/utils/index.ts +14 -1
- package/src/strategies/yearn/build.ts +5 -4
- package/src/strategies/yearn/fetch/fetchAllYearnGauges.ts +4 -3
- package/src/strategies/yearn/fetch/index.ts +22 -11
- package/src/utils.ts +3 -3
- package/dist/esm/batches/balancerStrats.js +0 -73
- package/dist/esm/batches/balancerStrats.js.map +0 -1
- package/dist/esm/batches/buildBalancerStrats.js +0 -62
- package/dist/esm/batches/buildBalancerStrats.js.map +0 -1
- package/dist/esm/batches/buildYearnStrats.js.map +0 -1
- package/dist/esm/batches/curveStrats.js.map +0 -1
- package/dist/esm/batches/fetchYearnGauges.js.map +0 -1
- package/dist/esm/batches/index.js +0 -8
- package/dist/esm/batches/index.js.map +0 -1
- package/dist/esm/batches/sdtGaugeRewards.js.map +0 -1
- package/dist/esm/batches/tokenData.js.map +0 -1
- package/dist/esm/strategies/balancer/fetch/index.js +0 -203
- package/dist/esm/strategies/balancer/fetch/index.js.map +0 -1
- package/dist/types/batches/balancerStrats.d.ts +0 -4
- package/dist/types/batches/balancerStrats.d.ts.map +0 -1
- package/dist/types/batches/buildBalancerStrats.d.ts +0 -4
- package/dist/types/batches/buildBalancerStrats.d.ts.map +0 -1
- package/dist/types/batches/buildYearnStrats.d.ts +0 -4
- package/dist/types/batches/buildYearnStrats.d.ts.map +0 -1
- package/dist/types/batches/curveStrats.d.ts +0 -4
- package/dist/types/batches/curveStrats.d.ts.map +0 -1
- package/dist/types/batches/fetchYearnGauges.d.ts +0 -4
- package/dist/types/batches/fetchYearnGauges.d.ts.map +0 -1
- package/dist/types/batches/index.d.ts +0 -8
- package/dist/types/batches/index.d.ts.map +0 -1
- package/dist/types/batches/sdtGaugeRewards.d.ts +0 -4
- package/dist/types/batches/sdtGaugeRewards.d.ts.map +0 -1
- package/dist/types/batches/tokenData.d.ts.map +0 -1
- package/dist/types/batches/types.d.ts.map +0 -1
- package/dist/types/strategies/balancer/fetch/index.d.ts +0 -6
- package/dist/types/strategies/balancer/fetch/index.d.ts.map +0 -1
- package/src/batches/index.ts +0 -5
- /package/dist/esm/{batches → bytecodes/strategies}/fetchYearnGauges.js +0 -0
- /package/dist/esm/{batches → bytecodes/strategies}/sdtGaugeRewards.js +0 -0
- /package/dist/esm/{batches → bytecodes}/tokenData.js +0 -0
- /package/dist/esm/{batches → bytecodes}/types.js +0 -0
- /package/dist/types/{batches → bytecodes}/tokenData.d.ts +0 -0
- /package/dist/types/{batches → bytecodes}/types.d.ts +0 -0
- /package/src/{batches → bytecodes}/tokenData.ts +0 -0
- /package/src/{batches → bytecodes}/types.ts +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { BatchMetaData } from '../../types.js'
|
|
2
|
+
|
|
3
|
+
const commonBytecode =
|
|
4
|
+
'0x608060405234801561000f575f80fd5b50604051611e29380380611e29833981810160405281019061003191906113c8565b5f8390505f821461004257816100bc565b60018173ffffffffffffffffffffffffffffffffffffffff1663081e3eda6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561008d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100b19190611418565b6100bb9190611470565b5b91505f83836100cb91906114a3565b67ffffffffffffffff8111156100e4576100e36114d6565b5b60405190808252806020026020018201604052801561011d57816020015b61010a611270565b8152602001906001900390816101025790505b5090505f8490505b83811015610a4657610135611270565b5f8473ffffffffffffffffffffffffffffffffffffffff1663ac4afa38846040518263ffffffff1660e01b815260040161016f9190611512565b608060405180830381865afa15801561018a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ae91906115ff565b90508060200151825f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506101fe8160200151610a7560201b60201c565b82604001819052506102198160400151610c0560201b60201c565b8261010001819052506102358160400151610e9f60201b60201c565b8261012001819052505f816040015173ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b09190611418565b905080836060018181525050816040015173ffffffffffffffffffffffffffffffffffffffff166370a0823183602001516040518263ffffffff1660e01b81526004016102fd9190611639565b602060405180830381865afa158015610318573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033c9190611418565b836080018181525050816040015173ffffffffffffffffffffffffffffffffffffffff1663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156103b157506040513d601f19601f820116820180604052508101906103ae9190611652565b60015b6103f6578160400151836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506104a0565b50816040015173ffffffffffffffffffffffffffffffffffffffff1663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa158015610444573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104689190611652565b836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b816020015173ffffffffffffffffffffffffffffffffffffffff1663f9d3af2b6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561050c57506040513d601f19601f820116820180604052508101906105099190611652565b60015b61089557816040015173ffffffffffffffffffffffffffffffffffffffff1663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561057c57506040513d601f19601f820116820180604052508101906105799190611652565b60015b61066f575f80836040015173ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156105cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f391906116f9565b509150915082670de0b6b3a7640000836dffffffffffffffffffffffffffff1661061d9190611749565b61062791906117b7565b8560a001818152505082670de0b6b3a7640000826dffffffffffffffffffffffffffff166106559190611749565b61065f91906117b7565b8560c00181815250505050610890565b5080670de0b6b3a7640000836040015173ffffffffffffffffffffffffffffffffffffffff1663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106eb9190611652565b73ffffffffffffffffffffffffffffffffffffffff16634903b0d15f6040518263ffffffff1660e01b81526004016107239190611829565b602060405180830381865afa15801561073e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107629190611418565b61076c9190611749565b61077691906117b7565b8360a001818152505080670de0b6b3a7640000836040015173ffffffffffffffffffffffffffffffffffffffff1663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fa9190611652565b73ffffffffffffffffffffffffffffffffffffffff16634903b0d160016040518263ffffffff1660e01b8152600401610833919061187b565b602060405180830381865afa15801561084e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108729190611418565b61087c9190611749565b61088691906117b7565b8360c00181815250505b610992565b505f826020015173ffffffffffffffffffffffffffffffffffffffff1663f9d3af2b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109089190611652565b73ffffffffffffffffffffffffffffffffffffffff1663c7f734486040518163ffffffff1660e01b81526004016040805180830381865afa15801561094f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097391906118e1565b9050805f01518460a001818152505080602001518460c0018181525050505b816020015173ffffffffffffffffffffffffffffffffffffffff16638f10369a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a039190611418565b8360e001818152505082858986610a1a91906114a3565b81518110610a2b57610a2a61190c565b5b60200260200101819052505050508080600101915050610125565b505f81604051602001610a599190611ccb565b6040516020818303038152906040529050602081018059038082f35b60608173ffffffffffffffffffffffffffffffffffffffff1663f9d3af2b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610adf57506040513d601f19601f82011682018060405250810190610adc9190611652565b60015b610b20576040518060400160405280600b81526020017f70616e63616b65737761700000000000000000000000000000000000000000008152509050610c00565b508173ffffffffffffffffffffffffffffffffffffffff1663f9d3af2b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8e9190611652565b73ffffffffffffffffffffffffffffffffffffffff166391b9b8276040518163ffffffff1660e01b81526004015f60405180830381865afa158015610bd5573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610bfd9190611d91565b90505b919050565b610c0d6112ee565b81816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb29190611418565b8160400181815250508173ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f06fdde03000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610d629190611e12565b5f604051808303815f865af19150503d805f8114610d9b576040519150601f19603f3d011682016040523d82523d5f602084013e610da0565b606091505b509050815f01819052508173ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e519190611e12565b5f604051808303815f865af19150503d805f8114610e8a576040519150601f19603f3d011682016040523d82523d5f602084013e610e8f565b606091505b5090508160200181905250919050565b60605f829050600267ffffffffffffffff811115610ec057610ebf6114d6565b5b604051908082528060200260200182016040528015610ef957816020015b610ee66112ee565b815260200190600190039081610ede5790505b5091505f8173ffffffffffffffffffffffffffffffffffffffff1663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610f6557506040513d601f19601f82011682018060405250810190610f629190611652565b60015b61111a578173ffffffffffffffffffffffffffffffffffffffff166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fd157506040513d601f19601f82011682018060405250810190610fce9190611652565b60015b610fdd57819050610fe2565b809150505b61105d8173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110529190611652565b610c0560201b60201c565b835f815181106110705761106f61190c565b5b60200260200101819052506110f68173ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110eb9190611652565b610c0560201b60201c565b8360018151811061110a5761110961190c565b5b6020026020010181905250611269565b8091506111a38273ffffffffffffffffffffffffffffffffffffffff1663c66106575f6040518263ffffffff1660e01b81526004016111599190611829565b602060405180830381865afa158015611174573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111989190611652565b610c0560201b60201c565b845f815181106111b6576111b561190c565b5b60200260200101819052506112488273ffffffffffffffffffffffffffffffffffffffff1663c661065760016040518263ffffffff1660e01b81526004016111fe919061187b565b602060405180830381865afa158015611219573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123d9190611652565b610c0560201b60201c565b8460018151811061125c5761125b61190c565b5b6020026020010181905250505b5050919050565b6040518061014001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f81526020015f81526020015f81526020015f81526020015f81526020016112e16112ee565b8152602001606081525090565b604051806080016040528060608152602001606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113648261133b565b9050919050565b6113748161135a565b811461137e575f80fd5b50565b5f8151905061138f8161136b565b92915050565b5f819050919050565b6113a781611395565b81146113b1575f80fd5b50565b5f815190506113c28161139e565b92915050565b5f805f606084860312156113df576113de611333565b5b5f6113ec86828701611381565b93505060206113fd868287016113b4565b925050604061140e868287016113b4565b9150509250925092565b5f6020828403121561142d5761142c611333565b5b5f61143a848285016113b4565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61147a82611395565b915061148583611395565b925082820190508082111561149d5761149c611443565b5b92915050565b5f6114ad82611395565b91506114b883611395565b92508282039050818111156114d0576114cf611443565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61150c81611395565b82525050565b5f6020820190506115255f830184611503565b92915050565b5f80fd5b5f601f19601f8301169050919050565b6115488261152f565b810181811067ffffffffffffffff82111715611567576115666114d6565b5b80604052505050565b5f61157961132a565b9050611585828261153f565b919050565b5f6080828403121561159f5761159e61152b565b5b6115a96080611570565b90505f6115b8848285016113b4565b5f8301525060206115cb84828501611381565b60208301525060406115df84828501611381565b60408301525060606115f384828501611381565b60608301525092915050565b5f6080828403121561161457611613611333565b5b5f6116218482850161158a565b91505092915050565b6116338161135a565b82525050565b5f60208201905061164c5f83018461162a565b92915050565b5f6020828403121561166757611666611333565b5b5f61167484828501611381565b91505092915050565b5f6dffffffffffffffffffffffffffff82169050919050565b61169f8161167d565b81146116a9575f80fd5b50565b5f815190506116ba81611696565b92915050565b5f63ffffffff82169050919050565b6116d8816116c0565b81146116e2575f80fd5b50565b5f815190506116f3816116cf565b92915050565b5f805f606084860312156117105761170f611333565b5b5f61171d868287016116ac565b935050602061172e868287016116ac565b925050604061173f868287016116e5565b9150509250925092565b5f61175382611395565b915061175e83611395565b925082820261176c81611395565b9150828204841483151761178357611782611443565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6117c182611395565b91506117cc83611395565b9250826117dc576117db61178a565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f61181361180e611809846117e7565b6117f0565b611395565b9050919050565b611823816117f9565b82525050565b5f60208201905061183c5f83018461181a565b92915050565b5f819050919050565b5f61186561186061185b84611842565b6117f0565b611395565b9050919050565b6118758161184b565b82525050565b5f60208201905061188e5f83018461186c565b92915050565b5f604082840312156118a9576118a861152b565b5b6118b36040611570565b90505f6118c2848285016113b4565b5f8301525060206118d5848285016113b4565b60208301525092915050565b5f604082840312156118f6576118f5611333565b5b5f61190384828501611894565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61196b8161135a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6119a382611971565b6119ad818561197b565b93506119bd81856020860161198b565b6119c68161152f565b840191505092915050565b6119da81611395565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f611a04826119e0565b611a0e81856119ea565b9350611a1e81856020860161198b565b611a278161152f565b840191505092915050565b5f608083015f8301518482035f860152611a4c82826119fa565b91505060208301518482036020860152611a6682826119fa565b9150506040830151611a7b60408601826119d1565b506060830151611a8e6060860182611962565b508091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f611acd8383611a32565b905092915050565b5f602082019050919050565b5f611aeb82611a99565b611af58185611aa3565b935083602082028501611b0785611ab3565b805f5b85811015611b425784840389528151611b238582611ac2565b9450611b2e83611ad5565b925060208a01995050600181019050611b0a565b50829750879550505050505092915050565b5f61014083015f830151611b6a5f860182611962565b506020830151611b7d6020860182611962565b5060408301518482036040860152611b958282611999565b9150506060830151611baa60608601826119d1565b506080830151611bbd60808601826119d1565b5060a0830151611bd060a08601826119d1565b5060c0830151611be360c08601826119d1565b5060e0830151611bf660e08601826119d1565b50610100830151848203610100860152611c108282611a32565b915050610120830151848203610120860152611c2c8282611ae1565b9150508091505092915050565b5f611c448383611b54565b905092915050565b5f602082019050919050565b5f611c6282611939565b611c6c8185611943565b935083602082028501611c7e85611953565b805f5b85811015611cb95784840389528151611c9a8582611c39565b9450611ca583611c4c565b925060208a01995050600181019050611c81565b50829750879550505050505092915050565b5f6020820190508181035f830152611ce38184611c58565b905092915050565b5f80fd5b5f80fd5b5f67ffffffffffffffff821115611d0d57611d0c6114d6565b5b611d168261152f565b9050602081019050919050565b5f611d35611d3084611cf3565b611570565b905082815260208101848484011115611d5157611d50611cef565b5b611d5c84828561198b565b509392505050565b5f82601f830112611d7857611d77611ceb565b5b8151611d88848260208601611d23565b91505092915050565b5f60208284031215611da657611da5611333565b5b5f82015167ffffffffffffffff811115611dc357611dc2611337565b5b611dcf84828501611d64565b91505092915050565b5f81905092915050565b5f611dec826119e0565b611df68185611dd8565b9350611e0681856020860161198b565b80840191505092915050565b5f611e1d8284611de2565b91508190509291505056fe'
|
|
5
|
+
|
|
6
|
+
const commonInputType = ['address farmBooster, uint256 skip, uint256 limit']
|
|
7
|
+
|
|
8
|
+
const commonOutputTypeHr = [
|
|
9
|
+
'BuildNotDeployedPancakeswapErc20StratsData[] pancakeswapErc20StratsData',
|
|
10
|
+
'struct BuildNotDeployedPancakeswapErc20StratsData { address gaugeAddress; address pool; string manager; uint256 sharesTotalSupply; uint256 stakedInGauge; uint256 token0PerShare; uint256 token1PerShare; uint256 rewardPerSecond; BuildNotDeployedPancakeswapErc20Erc20Data lpToken; BuildNotDeployedPancakeswapErc20Erc20Data[] coins}',
|
|
11
|
+
'struct BuildNotDeployedPancakeswapErc20Erc20Data { bytes _name; bytes _symbol; uint256 _decimals; address _address;}',
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
const buildPancakeswapNotDeployedErc20Strats: BatchMetaData = {
|
|
15
|
+
bytecode: {
|
|
16
|
+
1: commonBytecode,
|
|
17
|
+
56: commonBytecode,
|
|
18
|
+
42161: commonBytecode,
|
|
19
|
+
},
|
|
20
|
+
inputType: {
|
|
21
|
+
1: commonInputType,
|
|
22
|
+
56: commonInputType,
|
|
23
|
+
42161: commonInputType,
|
|
24
|
+
},
|
|
25
|
+
outputTypeHr: {
|
|
26
|
+
1: commonOutputTypeHr,
|
|
27
|
+
56: commonOutputTypeHr,
|
|
28
|
+
42161: commonOutputTypeHr,
|
|
29
|
+
},
|
|
30
|
+
outputType: {
|
|
31
|
+
56: [
|
|
32
|
+
{
|
|
33
|
+
gaugeAddress: 'address',
|
|
34
|
+
pool: 'address',
|
|
35
|
+
manager: 'string',
|
|
36
|
+
sharesTotalSupply: 'uint256',
|
|
37
|
+
stakedInGauge: 'uint256',
|
|
38
|
+
token0PerShare: 'uint256',
|
|
39
|
+
token1PerShare: 'uint256',
|
|
40
|
+
rewardPerSecond: 'uint256',
|
|
41
|
+
lpToken: {
|
|
42
|
+
_name: 'bytes',
|
|
43
|
+
_symbol: 'bytes',
|
|
44
|
+
_decimals: 'uint256',
|
|
45
|
+
_address: 'address',
|
|
46
|
+
},
|
|
47
|
+
coins: [
|
|
48
|
+
{
|
|
49
|
+
_name: 'bytes',
|
|
50
|
+
_symbol: 'bytes',
|
|
51
|
+
_decimals: 'uint256',
|
|
52
|
+
_address: 'address',
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export default buildPancakeswapNotDeployedErc20Strats
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BatchMetaData } from '../../types.js'
|
|
2
|
+
|
|
3
|
+
const buildPendleStrats: BatchMetaData = {
|
|
4
|
+
bytecode: {
|
|
5
|
+
1: '0x608060405234801561000f575f80fd5b50604051610d31380380610d318339818101604052810190610031919061077b565b5f815190505f8167ffffffffffffffff81111561005157610050610594565b5b60405190808252806020026020018201604052801561008a57816020015b6100776104e8565b81526020019060019003908161006f5790505b5090505f5b828110156104b95761009f6104e8565b5f8583815181106100b3576100b26107c2565b5b60200260200101516020015190505f8173ffffffffffffffffffffffffffffffffffffffff1663c4f59f9b6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561010a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061013291906108af565b9050805167ffffffffffffffff81111561014f5761014e610594565b5b60405190808252806020026020018201604052801561018857816020015b610175610533565b81526020019060019003908161016d5790505b5083604001819052505f5b8151811015610391576101a4610533565b5f8383815181106101b8576101b76107c2565b5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b81526004015f60405180830381865afa15801561020a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061023291906109a6565b825f01819052508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610281573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906102a991906109a6565b826020018190525080826060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610332573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103569190610a20565b8260400181815250508186604001518481518110610377576103766107c2565b5b602002602001018190525050508080600101915050610193565b5081835f019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508684815181106103dc576103db6107c2565b5b60200260200101515f015173ffffffffffffffffffffffffffffffffffffffff1663f9a0be686040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104539190610a4b565b836020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508285858151811061049e5761049d6107c2565b5b6020026020010181905250505050808060010191505061008f565b505f816040516020016104cc9190610d10565b6040516020818303038152906040529050602081018059038082f35b60405180606001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b604051806080016040528060608152602001606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ca82610584565b810181811067ffffffffffffffff821117156105e9576105e8610594565b5b80604052505050565b5f6105fb61056f565b905061060782826105c1565b919050565b5f67ffffffffffffffff82111561062657610625610594565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106688261063f565b9050919050565b6106788161065e565b8114610682575f80fd5b50565b5f815190506106938161066f565b92915050565b5f604082840312156106ae576106ad61063b565b5b6106b860406105f2565b90505f6106c784828501610685565b5f8301525060206106da84828501610685565b60208301525092915050565b5f6106f86106f38461060c565b6105f2565b9050808382526020820190506040840283018581111561071b5761071a610637565b5b835b8181101561074457806107308882610699565b84526020840193505060408101905061071d565b5050509392505050565b5f82601f83011261076257610761610580565b5b81516107728482602086016106e6565b91505092915050565b5f602082840312156107905761078f610578565b5b5f82015167ffffffffffffffff8111156107ad576107ac61057c565b5b6107b98482850161074e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f67ffffffffffffffff82111561080957610808610594565b5b602082029050602081019050919050565b5f61082c610827846107ef565b6105f2565b9050808382526020820190506020840283018581111561084f5761084e610637565b5b835b8181101561087857806108648882610685565b845260208401935050602081019050610851565b5050509392505050565b5f82601f83011261089657610895610580565b5b81516108a684826020860161081a565b91505092915050565b5f602082840312156108c4576108c3610578565b5b5f82015167ffffffffffffffff8111156108e1576108e061057c565b5b6108ed84828501610882565b91505092915050565b5f80fd5b5f67ffffffffffffffff82111561091457610913610594565b5b61091d82610584565b9050602081019050919050565b8281835e5f83830152505050565b5f61094a610945846108fa565b6105f2565b905082815260208101848484011115610966576109656108f6565b5b61097184828561092a565b509392505050565b5f82601f83011261098d5761098c610580565b5b815161099d848260208601610938565b91505092915050565b5f602082840312156109bb576109ba610578565b5b5f82015167ffffffffffffffff8111156109d8576109d761057c565b5b6109e484828501610979565b91505092915050565b5f819050919050565b6109ff816109ed565b8114610a09575f80fd5b50565b5f81519050610a1a816109f6565b92915050565b5f60208284031215610a3557610a34610578565b5b5f610a4284828501610a0c565b91505092915050565b5f60208284031215610a6057610a5f610578565b5b5f610a6d84828501610685565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610aa88161065e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f610afb82610ad7565b610b058185610ae1565b9350610b1581856020860161092a565b610b1e81610584565b840191505092915050565b610b32816109ed565b82525050565b5f608083015f8301518482035f860152610b528282610af1565b91505060208301518482036020860152610b6c8282610af1565b9150506040830151610b816040860182610b29565b506060830151610b946060860182610a9f565b508091505092915050565b5f610baa8383610b38565b905092915050565b5f602082019050919050565b5f610bc882610aae565b610bd28185610ab8565b935083602082028501610be485610ac8565b805f5b85811015610c1f5784840389528151610c008582610b9f565b9450610c0b83610bb2565b925060208a01995050600181019050610be7565b50829750879550505050505092915050565b5f606083015f830151610c465f860182610a9f565b506020830151610c596020860182610a9f565b5060408301518482036040860152610c718282610bbe565b9150508091505092915050565b5f610c898383610c31565b905092915050565b5f602082019050919050565b5f610ca782610a76565b610cb18185610a80565b935083602082028501610cc385610a90565b805f5b85811015610cfe5784840389528151610cdf8582610c7e565b9450610cea83610c91565b925060208a01995050600181019050610cc6565b50829750879550505050505092915050565b5f6020820190508181035f830152610d288184610c9d565b90509291505056fe',
|
|
6
|
+
},
|
|
7
|
+
inputType: {
|
|
8
|
+
1: ['Input[] memory inputs', 'struct Input { address vault; address lp; }'],
|
|
9
|
+
},
|
|
10
|
+
outputTypeHr: {
|
|
11
|
+
1: [
|
|
12
|
+
'PendleStrat[] returnData',
|
|
13
|
+
'struct PendleStrat { address lpt; address sdGauge; Erc20Data[] rewards; }',
|
|
14
|
+
'struct Erc20Data { string _name; string _symbol; uint256 _decimals; address _address; }',
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
outputType: {
|
|
18
|
+
1: [
|
|
19
|
+
{
|
|
20
|
+
type: 'tuple[]',
|
|
21
|
+
name: 'returnData',
|
|
22
|
+
components: [
|
|
23
|
+
{ type: 'address', name: 'lpt' },
|
|
24
|
+
{ type: 'address', name: 'sdGauge' },
|
|
25
|
+
{
|
|
26
|
+
type: 'tuple[]',
|
|
27
|
+
name: 'rewards',
|
|
28
|
+
components: [
|
|
29
|
+
{ type: 'string', name: '_name' },
|
|
30
|
+
{ type: 'string', name: '_symbol' },
|
|
31
|
+
{ type: 'uint256', name: '_decimals' },
|
|
32
|
+
{ type: 'address', name: '_address' },
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default buildPendleStrats
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { BatchMetaData } from '
|
|
1
|
+
import type { BatchMetaData } from '../../types.js'
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const buildYearnStrats: BatchMetaData = {
|
|
4
4
|
bytecode: {
|
|
5
5
|
1: '0x608060405234801561000f575f80fd5b506040516113e03803806113e083398181016040528101906100319190610f7d565b5f8151905061003e610cea565b8167ffffffffffffffff81111561005857610057610df0565b5b60405190808252806020026020018201604052801561009157816020015b61007e610cfd565b8152602001906001900390816100765790505b50815f01819052505f5b82811015610cbb575f8482815181106100b7576100b6610fd7565b5b602002602001015190505f816020015190505f825f015173ffffffffffffffffffffffffffffffffffffffff1663f9a0be686040518163ffffffff1660e01b8152600401602060405180830381865afa158015610116573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013a9190611004565b905080855f0151858151811061015357610152610fd7565b5b60200260200101516080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f8190505f845f015173ffffffffffffffffffffffffffffffffffffffff1663a8c62e766040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102069190611004565b73ffffffffffffffffffffffffffffffffffffffff1663b9a09fd586602001516040518263ffffffff1660e01b8152600401610242919061103e565b602060405180830381865afa15801561025d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102819190611004565b905080875f0151878151811061029a57610299610fd7565b5b602002602001015160a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508973ffffffffffffffffffffffffffffffffffffffff1663a0d4b907826040518263ffffffff1660e01b8152600401610311919061103e565b602060405180830381865afa15801561032c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610350919061108a565b875f0151878151811061036657610365610fd7565b5b602002602001015160600181815250508373ffffffffffffffffffffffffffffffffffffffff166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156103de57506040513d601f19601f820116820180604052508101906103db9190611004565b60015b610999575f8473ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104509190611004565b905080885f0151888151811061046957610468610fd7565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663075461726040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561050f57506040513d601f19601f8201168201806040525081019061050c9190611004565b60015b61075257600267ffffffffffffffff81111561052e5761052d610df0565b5b60405190808252806020026020018201604052801561055c5781602001602082028036833780820191505090505b50885f0151888151811061057357610572610fd7565b5b60200260200101515f01819052508073ffffffffffffffffffffffffffffffffffffffff1663c66106575f6040518263ffffffff1660e01b81526004016105ba91906110f7565b602060405180830381865afa1580156105d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105f99190611004565b885f0151888151811061060f5761060e610fd7565b5b60200260200101515f01515f8151811061062c5761062b610fd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c661065760016040518263ffffffff1660e01b81526004016106a09190611149565b602060405180830381865afa1580156106bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106df9190611004565b885f015188815181106106f5576106f4610fd7565b5b60200260200101515f015160018151811061071357610712610fd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610993565b5f819050600267ffffffffffffffff81111561077157610770610df0565b5b60405190808252806020026020018201604052801561079f5781602001602082028036833780820191505090505b508a5f01518a815181106107b6576107b5610fd7565b5b60200260200101515f01819052508073ffffffffffffffffffffffffffffffffffffffff1663c66106575f6040518263ffffffff1660e01b81526004016107fd91906110f7565b602060405180830381865afa158015610818573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083c9190611004565b8a5f01518a8151811061085257610851610fd7565b5b60200260200101515f01515f8151811061086f5761086e610fd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c661065760016040518263ffffffff1660e01b81526004016108e39190611149565b602060405180830381865afa1580156108fe573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109229190611004565b8a5f01518a8151811061093857610937610fd7565b5b60200260200101515f015160018151811061095657610955610fd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505050505b50610acc565b600167ffffffffffffffff8111156109b4576109b3610df0565b5b6040519080825280602002602001820160405280156109e25781602001602082028036833780820191505090505b50885f015188815181106109f9576109f8610fd7565b5b60200260200101515f018190525080885f01518881518110610a1e57610a1d610fd7565b5b60200260200101515f01515f81518110610a3b57610a3a610fd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080885f01518881518110610a8c57610a8b610fd7565b5b60200260200101516040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050505b5f8273ffffffffffffffffffffffffffffffffffffffff1663963c94b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3a919061108a565b90508067ffffffffffffffff811115610b5657610b55610df0565b5b604051908082528060200260200182016040528015610b845781602001602082028036833780820191505090505b50885f01518881518110610b9b57610b9a610fd7565b5b6020026020010151602001819052505f5b81811015610ca7578373ffffffffffffffffffffffffffffffffffffffff166354c49fe9826040518263ffffffff1660e01b8152600401610bed9190611171565b602060405180830381865afa158015610c08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2c9190611004565b895f01518981518110610c4257610c41610fd7565b5b6020026020010151602001518281518110610c6057610c5f610fd7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610bac565b50505050505050808060010191505061009b565b505f81604051602001610cce91906113bf565b6040516020818303038152906040529050602081018059038082f35b6040518060200160405280606081525090565b6040518060c0016040528060608152602001606081526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610dab82610d82565b9050919050565b610dbb81610da1565b8114610dc5575f80fd5b50565b5f81519050610dd681610db2565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610e2682610de0565b810181811067ffffffffffffffff82111715610e4557610e44610df0565b5b80604052505050565b5f610e57610d71565b9050610e638282610e1d565b919050565b5f67ffffffffffffffff821115610e8257610e81610df0565b5b602082029050602081019050919050565b5f80fd5b5f80fd5b5f60408284031215610eb057610eaf610e97565b5b610eba6040610e4e565b90505f610ec984828501610dc8565b5f830152506020610edc84828501610dc8565b60208301525092915050565b5f610efa610ef584610e68565b610e4e565b90508083825260208201905060408402830185811115610f1d57610f1c610e93565b5b835b81811015610f465780610f328882610e9b565b845260208401935050604081019050610f1f565b5050509392505050565b5f82601f830112610f6457610f63610ddc565b5b8151610f74848260208601610ee8565b91505092915050565b5f8060408385031215610f9357610f92610d7a565b5b5f610fa085828601610dc8565b925050602083015167ffffffffffffffff811115610fc157610fc0610d7e565b5b610fcd85828601610f50565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561101957611018610d7a565b5b5f61102684828501610dc8565b91505092915050565b61103881610da1565b82525050565b5f6020820190506110515f83018461102f565b92915050565b5f819050919050565b61106981611057565b8114611073575f80fd5b50565b5f8151905061108481611060565b92915050565b5f6020828403121561109f5761109e610d7a565b5b5f6110ac84828501611076565b91505092915050565b5f819050919050565b5f819050919050565b5f6110e16110dc6110d7846110b5565b6110be565b611057565b9050919050565b6110f1816110c7565b82525050565b5f60208201905061110a5f8301846110e8565b92915050565b5f819050919050565b5f61113361112e61112984611110565b6110be565b611057565b9050919050565b61114381611119565b82525050565b5f60208201905061115c5f83018461113a565b92915050565b61116b81611057565b82525050565b5f6020820190506111845f830184611162565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6111e581610da1565b82525050565b5f6111f683836111dc565b60208301905092915050565b5f602082019050919050565b5f611218826111b3565b61122281856111bd565b935061122d836111cd565b805f5b8381101561125d57815161124488826111eb565b975061124f83611202565b925050600181019050611230565b5085935050505092915050565b61127381611057565b82525050565b5f60c083015f8301518482035f860152611293828261120e565b915050602083015184820360208601526112ad828261120e565b91505060408301516112c260408601826111dc565b5060608301516112d5606086018261126a565b5060808301516112e860808601826111dc565b5060a08301516112fb60a08601826111dc565b508091505092915050565b5f6113118383611279565b905092915050565b5f602082019050919050565b5f61132f8261118a565b6113398185611194565b93508360208202850161134b856111a4565b805f5b8581101561138657848403895281516113678582611306565b945061137283611319565b925060208a0199505060018101905061134e565b50829750879550505050505092915050565b5f602083015f8301518482035f8601526113b28282611325565b9150508091505092915050565b5f6020820190508181035f8301526113d78184611398565b90509291505056fe',
|
|
6
6
|
},
|
|
@@ -38,4 +38,4 @@ const yearnStrats: BatchMetaData = {
|
|
|
38
38
|
},
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export default
|
|
41
|
+
export default buildYearnStrats
|
package/src/endpoints.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export const LLAMA_API_URL = 'https://coins.llama.fi'
|
|
2
2
|
export const AGNOSTIC_QUERY_URL = 'https://proxy.eu-02.agnostic.engineering/query'
|
|
3
|
+
export const THE_GRAPH_BASE_URL =
|
|
4
|
+
'https://gateway-arbitrum.network.thegraph.com/api/e3c2ef8231c88703a5b450c188ce2db6/subgraphs/id'
|
package/src/index.ts
CHANGED
|
@@ -1,9 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export { getGaugesFromRegistry } from './strategies/curve/fetch/curveApiData/getGaugesFromRegistry.js'
|
|
1
|
+
////////////////////////////////////////////////////////////////
|
|
2
|
+
/// --- GLOBAL
|
|
3
|
+
///////////////////////////////////////////////////////////////
|
|
5
4
|
export { getPricesFromLlama, getPricesFromGeckoTerminal } from './prices.js'
|
|
5
|
+
|
|
6
|
+
////////////////////////////////////////////////////////////////
|
|
7
|
+
/// --- SDT
|
|
8
|
+
///////////////////////////////////////////////////////////////
|
|
6
9
|
export { fetchSdt } from './sdt/sdt.js'
|
|
10
|
+
|
|
11
|
+
////////////////////////////////////////////////////////////////
|
|
12
|
+
/// --- LOCKERS
|
|
13
|
+
////////////////////////////////////////////////////////////////
|
|
7
14
|
export { fetchLockers } from './lockers/fetch/index.js'
|
|
8
|
-
|
|
15
|
+
|
|
16
|
+
////////////////////////////////////////////////////////////////
|
|
17
|
+
/// --- STATEGIES
|
|
18
|
+
|
|
9
19
|
export * from './strategies/utils/index.js'
|
|
20
|
+
|
|
21
|
+
// Curve
|
|
22
|
+
export { buildCurveStrategies } from './strategies/curve/build.js'
|
|
23
|
+
export { fetchCurve } from './strategies/curve/fetch/index.js'
|
|
24
|
+
export { getCurveApiData } from './strategies/curve/fetch/curveApiData/getCurveApiData.js'
|
|
25
|
+
export { getGaugesWeights } from './strategies/curve/fetch/curveApiData/getGaugesWeights.js'
|
|
26
|
+
export { getGaugesFromRegistry } from './strategies/curve/fetch/curveApiData/getGaugesFromRegistry.js'
|
|
27
|
+
|
|
28
|
+
// Balancer
|
|
29
|
+
export { buildBalancerStrategies } from './strategies/balancer/build.js'
|
|
30
|
+
export { fetchBalancer } from './strategies/balancer/fetch.js'
|
|
31
|
+
|
|
32
|
+
// Yearn
|
|
33
|
+
export { buildYearnStrategies } from './strategies/yearn/build.js'
|
|
34
|
+
export { fetchYearn } from './strategies/yearn/fetch/index.js'
|
|
35
|
+
|
|
36
|
+
// Pancakeswap
|
|
37
|
+
export { fetchPancakeswap } from './strategies/pancakeswap/fetch/index.js'
|
|
38
|
+
export { buildPancakeSwapStrategies } from './strategies/pancakeswap/build.js'
|
|
39
|
+
export { buildPancakeSwapErc20Strategies } from './strategies/pancakeswap/buildErc20.js'
|
|
40
|
+
|
|
41
|
+
// Pendle
|
|
42
|
+
export { fetchPendle } from './strategies/pendle/fetch.js'
|
|
43
|
+
export { buildPendleStrategies } from './strategies/pendle/build.js'
|
|
44
|
+
export { default as getPendleApiData } from './strategies/pendle/getPendleApiData.js'
|
|
45
|
+
|
|
46
|
+
/// --- END STATEGIES
|
|
47
|
+
///////////////////////////////////////////////////////////////
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { gql } from 'graphql-request'
|
|
2
2
|
|
|
3
|
-
export const SDCAKE_AIRDROP_GRAPH_URL =
|
|
3
|
+
export const SDCAKE_AIRDROP_GRAPH_URL =
|
|
4
|
+
'https://subgraph.satsuma-prod.com/76af23d9dd04/0xs-team--971274/sdcake-airdrop/api'
|
|
4
5
|
|
|
5
6
|
export const SDCAKE_AIRDROP_GLOBAL_QUERY = gql`
|
|
6
7
|
query Global {
|
package/src/prices.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { uniq } from 'lodash-es'
|
|
2
|
+
import { equalTlc } from './utils.js'
|
|
2
3
|
|
|
3
4
|
const LLAMA_API_URL = 'https://coins.llama.fi'
|
|
4
5
|
const GECKO_TERMINAL_API_URL = 'https://api.geckoterminal.com/api/v2'
|
|
@@ -54,13 +55,20 @@ export const getPricesFromCurve = async (chainId: number) => {
|
|
|
54
55
|
return httpRequest
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
export const getPricesFromGeckoTerminal = async (
|
|
58
|
+
export const getPricesFromGeckoTerminal = async (
|
|
59
|
+
tokens: any[],
|
|
60
|
+
chainId = 1,
|
|
61
|
+
defaultErrorValue?: any,
|
|
62
|
+
): Promise<Price[]> => {
|
|
58
63
|
try {
|
|
59
64
|
let network: string
|
|
60
65
|
switch (chainId) {
|
|
61
66
|
case 1:
|
|
62
67
|
network = 'eth'
|
|
63
68
|
break
|
|
69
|
+
case 56:
|
|
70
|
+
network = 'bsc'
|
|
71
|
+
break
|
|
64
72
|
case 137:
|
|
65
73
|
network = 'polygon_pos'
|
|
66
74
|
break
|
|
@@ -72,15 +80,58 @@ export const getPricesFromGeckoTerminal = async (tokens: any[], chainId = 1, def
|
|
|
72
80
|
break
|
|
73
81
|
}
|
|
74
82
|
|
|
75
|
-
const httpArgs = uniq(tokens).join(',')
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
83
|
+
const httpArgs = uniq(tokens.map((t) => t.address)).join(',')
|
|
84
|
+
const url = `${GECKO_TERMINAL_API_URL}/simple/networks/${network}/token_price/${httpArgs}`
|
|
85
|
+
const httpRequest = await (await fetch(url)).json()
|
|
86
|
+
|
|
79
87
|
const coinsData = httpRequest.data.attributes.token_prices
|
|
80
88
|
|
|
81
|
-
|
|
89
|
+
const parsedPrice = tokens.map((t) => {
|
|
90
|
+
return {
|
|
91
|
+
symbol: t.symbol,
|
|
92
|
+
address: t.address,
|
|
93
|
+
usdPrice: coinsData[t.address.toLowerCase()] ? Number(coinsData[t.address.toLowerCase()]) : 0,
|
|
94
|
+
}
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
return parsedPrice
|
|
82
98
|
} catch (e) {
|
|
83
99
|
console.error(e)
|
|
84
100
|
return defaultErrorValue
|
|
85
101
|
}
|
|
86
102
|
}
|
|
103
|
+
|
|
104
|
+
interface TokenToFetch {
|
|
105
|
+
address: string
|
|
106
|
+
symbol: string
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export const getPrices = async (tokens: TokenToFetch[], chainId = 1): Promise<Price[]> => {
|
|
110
|
+
let pricesFromLlama: Price[] = []
|
|
111
|
+
if (tokens.length > 0) {
|
|
112
|
+
pricesFromLlama = pricesFromLlama.concat(await getPricesFromLlama(tokens, chainId))
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const pricesToFetchFromGecko = tokens
|
|
116
|
+
.map((t) => {
|
|
117
|
+
const coinPrice = pricesFromLlama.find((pl) => equalTlc(pl.address, t.address))?.usdPrice || 0
|
|
118
|
+
return coinPrice === 0 ? t : undefined
|
|
119
|
+
})
|
|
120
|
+
.filter(Boolean)
|
|
121
|
+
|
|
122
|
+
let pricesFromGecko: Price[] = []
|
|
123
|
+
if (pricesToFetchFromGecko.length > 0) {
|
|
124
|
+
pricesFromGecko = pricesFromGecko.concat(await getPricesFromGeckoTerminal(pricesToFetchFromGecko, chainId))
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return [pricesFromLlama, pricesFromGecko].flat().filter((p) => p.usdPrice > 0)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export const mergePrices = async (basePrices: Price[], tokens: TokenToFetch[], chainId = 1): Promise<Price[]> => {
|
|
131
|
+
let fetchedPrices: Price[] = []
|
|
132
|
+
if (tokens.length > 0) {
|
|
133
|
+
fetchedPrices = fetchedPrices.concat(await getPrices(tokens, chainId))
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return [...basePrices.filter((p) => p.usdPrice > 0), ...fetchedPrices]
|
|
137
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { chunk } from 'lodash-es'
|
|
2
|
+
import { decodeAbiParameters, encodeAbiParameters, parseAbiParameters } from 'viem'
|
|
3
|
+
|
|
4
|
+
import { contracts } from '@stake-dao/constants'
|
|
5
|
+
import { buildBalancerStrats } from '../../bytecodes/index.js'
|
|
6
|
+
import { concatBytecode } from '../utils/index.js'
|
|
7
|
+
|
|
8
|
+
interface VaultAndLp {
|
|
9
|
+
vault: string
|
|
10
|
+
lpToken: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const buildBalancerStrategies = async (provider: any, stratsList: VaultAndLp[], chainId: number) => {
|
|
14
|
+
const stratsArray = stratsList.map((s) => ({ vault: s.vault, token: s.lpToken }))
|
|
15
|
+
|
|
16
|
+
// Fetch strats infos
|
|
17
|
+
const inputArgsChunks = chunk(stratsArray, 10)
|
|
18
|
+
const decodedPromise = await Promise.allSettled(
|
|
19
|
+
inputArgsChunks.map(async (inputArgs) => {
|
|
20
|
+
const inputData = encodeAbiParameters(parseAbiParameters(buildBalancerStrats.inputType[chainId]!) as any, [
|
|
21
|
+
contracts.balancerVault![chainId],
|
|
22
|
+
inputArgs,
|
|
23
|
+
])
|
|
24
|
+
const contractCreationCode = concatBytecode(buildBalancerStrats.bytecode[chainId]!, inputData)
|
|
25
|
+
const returnedData = await provider.call({
|
|
26
|
+
data: contractCreationCode,
|
|
27
|
+
})
|
|
28
|
+
return decodeAbiParameters(
|
|
29
|
+
parseAbiParameters(buildBalancerStrats.outputTypeHr[chainId]!) as any,
|
|
30
|
+
returnedData.data,
|
|
31
|
+
)
|
|
32
|
+
}),
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
const fetchStratsData = decodedPromise.flatMap((d) => (d.status === 'fulfilled' ? d.value[0] : []))
|
|
36
|
+
|
|
37
|
+
const stratsData = fetchStratsData.map((data) => {
|
|
38
|
+
return {
|
|
39
|
+
key: data.key,
|
|
40
|
+
protocol: 'balancer',
|
|
41
|
+
chainId: chainId,
|
|
42
|
+
vault: data.vault,
|
|
43
|
+
lpToken: {
|
|
44
|
+
name: data.lpToken._name,
|
|
45
|
+
symbol: data.lpToken._symbol,
|
|
46
|
+
address: data.lpToken._address,
|
|
47
|
+
decimals: Number(data.lpToken._decimals),
|
|
48
|
+
},
|
|
49
|
+
gaugeAddress: data.gauge,
|
|
50
|
+
coins: data.coins.map((c) => ({
|
|
51
|
+
name: c._name,
|
|
52
|
+
symbol: c._symbol,
|
|
53
|
+
address: c._address,
|
|
54
|
+
decimals: Number(c._decimals),
|
|
55
|
+
})),
|
|
56
|
+
rewards: data.rewards.map((r) => ({
|
|
57
|
+
name: r._name,
|
|
58
|
+
symbol: r._symbol,
|
|
59
|
+
address: r._address,
|
|
60
|
+
decimals: Number(r._decimals),
|
|
61
|
+
})),
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
return stratsData
|
|
66
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { gql } from 'graphql-request'
|
|
2
|
+
import { THE_GRAPH_BASE_URL } from '../../endpoints.js'
|
|
3
|
+
|
|
4
|
+
export const BALANCER_SUBGRAPH_URL = `${THE_GRAPH_BASE_URL}/C4ayEZP2yTXRAB8vSaTrgN4m9anTe9Mdm2ViyiAuV9TV`
|
|
5
|
+
export const BALANCER_POOLS_DATA_QUERY = gql`
|
|
6
|
+
query Pool($id: [String!]!, $block: Int!) {
|
|
7
|
+
pools(
|
|
8
|
+
first: 1000
|
|
9
|
+
block: { number: $block }
|
|
10
|
+
orderBy: totalLiquidity
|
|
11
|
+
orderDirection: desc
|
|
12
|
+
where: { id_in: $id }
|
|
13
|
+
) {
|
|
14
|
+
id
|
|
15
|
+
totalLiquidity
|
|
16
|
+
totalSwapFee
|
|
17
|
+
totalShares
|
|
18
|
+
poolType
|
|
19
|
+
tokens {
|
|
20
|
+
symbol
|
|
21
|
+
address
|
|
22
|
+
balance
|
|
23
|
+
weight
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
`
|