@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.
Files changed (290) hide show
  1. package/dist/esm/bytecodes/index.js +16 -0
  2. package/dist/esm/bytecodes/index.js.map +1 -0
  3. package/dist/esm/bytecodes/strategies/batches/batchBalancerStrats.js +68 -0
  4. package/dist/esm/bytecodes/strategies/batches/batchBalancerStrats.js.map +1 -0
  5. package/dist/esm/{batches/curveStrats.js → bytecodes/strategies/batches/batchCurveStrats.js} +3 -3
  6. package/dist/esm/bytecodes/strategies/batches/batchCurveStrats.js.map +1 -0
  7. package/dist/esm/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.js +61 -0
  8. package/dist/esm/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.js.map +1 -0
  9. package/dist/esm/bytecodes/strategies/batches/batchPancakeSwapPositions.js +44 -0
  10. package/dist/esm/bytecodes/strategies/batches/batchPancakeSwapPositions.js.map +1 -0
  11. package/dist/esm/bytecodes/strategies/batches/batchPancakeswapStrats.js +48 -0
  12. package/dist/esm/bytecodes/strategies/batches/batchPancakeswapStrats.js.map +1 -0
  13. package/dist/esm/bytecodes/strategies/batches/batchPendleStrats.js +63 -0
  14. package/dist/esm/bytecodes/strategies/batches/batchPendleStrats.js.map +1 -0
  15. package/dist/esm/bytecodes/strategies/builds/buildBalancerStrats.js +54 -0
  16. package/dist/esm/bytecodes/strategies/builds/buildBalancerStrats.js.map +1 -0
  17. package/dist/esm/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.js +64 -0
  18. package/dist/esm/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.js.map +1 -0
  19. package/dist/esm/bytecodes/strategies/builds/buildPancakeSwapStrats.js +51 -0
  20. package/dist/esm/bytecodes/strategies/builds/buildPancakeSwapStrats.js.map +1 -0
  21. package/dist/esm/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.js +54 -0
  22. package/dist/esm/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.js.map +1 -0
  23. package/dist/esm/bytecodes/strategies/builds/buildPendleStrats.js +39 -0
  24. package/dist/esm/bytecodes/strategies/builds/buildPendleStrats.js.map +1 -0
  25. package/dist/esm/{batches → bytecodes/strategies/builds}/buildYearnStrats.js +2 -2
  26. package/dist/esm/bytecodes/strategies/builds/buildYearnStrats.js.map +1 -0
  27. package/dist/esm/bytecodes/strategies/fetchYearnGauges.js.map +1 -0
  28. package/dist/esm/bytecodes/strategies/sdtGaugeRewards.js.map +1 -0
  29. package/dist/esm/bytecodes/tokenData.js.map +1 -0
  30. package/dist/esm/{batches → bytecodes}/types.js.map +1 -1
  31. package/dist/esm/index.js +33 -6
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/lockers/utils/endpoints.js +1 -1
  34. package/dist/esm/lockers/utils/endpoints.js.map +1 -1
  35. package/dist/esm/prices.js +39 -3
  36. package/dist/esm/prices.js.map +1 -1
  37. package/dist/esm/strategies/balancer/build.js +4 -11
  38. package/dist/esm/strategies/balancer/build.js.map +1 -1
  39. package/dist/esm/strategies/balancer/fetch.js +190 -0
  40. package/dist/esm/strategies/balancer/fetch.js.map +1 -0
  41. package/dist/esm/strategies/curve/build.js +4 -4
  42. package/dist/esm/strategies/curve/build.js.map +1 -1
  43. package/dist/esm/strategies/curve/fetch/curveApiData/bytecode.js +0 -1
  44. package/dist/esm/strategies/curve/fetch/curveApiData/bytecode.js.map +1 -1
  45. package/dist/esm/strategies/curve/fetch/curveApiData/getCurveApiData.js +3 -2
  46. package/dist/esm/strategies/curve/fetch/curveApiData/getCurveApiData.js.map +1 -1
  47. package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesFromRegistry.js +3 -2
  48. package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesFromRegistry.js.map +1 -1
  49. package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesWeights.js +2 -1
  50. package/dist/esm/strategies/curve/fetch/curveApiData/getGaugesWeights.js.map +1 -1
  51. package/dist/esm/strategies/curve/fetch/curveApiData/getPoolsFromRegistries.ts.js +2 -1
  52. package/dist/esm/strategies/curve/fetch/curveApiData/getPoolsFromRegistries.ts.js.map +1 -1
  53. package/dist/esm/strategies/curve/fetch/index.js +22 -4
  54. package/dist/esm/strategies/curve/fetch/index.js.map +1 -1
  55. package/dist/esm/strategies/curve/httpCalls.js +3 -3
  56. package/dist/esm/strategies/curve/httpCalls.js.map +1 -1
  57. package/dist/esm/strategies/curve/onChainCalls.js +3 -2
  58. package/dist/esm/strategies/curve/onChainCalls.js.map +1 -1
  59. package/dist/esm/strategies/pancakeswap/abis/PancakeSwapMasterchef.json +1575 -0
  60. package/dist/esm/strategies/pancakeswap/build.js +48 -0
  61. package/dist/esm/strategies/pancakeswap/build.js.map +1 -0
  62. package/dist/esm/strategies/pancakeswap/buildErc20.js +63 -0
  63. package/dist/esm/strategies/pancakeswap/buildErc20.js.map +1 -0
  64. package/dist/esm/strategies/pancakeswap/config.js +7 -0
  65. package/dist/esm/strategies/pancakeswap/config.js.map +1 -0
  66. package/dist/esm/strategies/pancakeswap/endpoints.js +10 -0
  67. package/dist/esm/strategies/pancakeswap/endpoints.js.map +1 -0
  68. package/dist/esm/strategies/pancakeswap/fetch/getPancakeApisData.js +24 -0
  69. package/dist/esm/strategies/pancakeswap/fetch/getPancakeApisData.js.map +1 -0
  70. package/dist/esm/strategies/pancakeswap/fetch/getPancakeErc20Vaults.js +134 -0
  71. package/dist/esm/strategies/pancakeswap/fetch/getPancakeErc20Vaults.js.map +1 -0
  72. package/dist/esm/strategies/pancakeswap/fetch/getPancakeNotDeployed.js +102 -0
  73. package/dist/esm/strategies/pancakeswap/fetch/getPancakeNotDeployed.js.map +1 -0
  74. package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js +142 -0
  75. package/dist/esm/strategies/pancakeswap/fetch/getPancakeV3Vaults.js.map +1 -0
  76. package/dist/esm/strategies/pancakeswap/fetch/index.js +25 -0
  77. package/dist/esm/strategies/pancakeswap/fetch/index.js.map +1 -0
  78. package/dist/esm/strategies/pancakeswap/fetch/pancakePositions.js +87 -0
  79. package/dist/esm/strategies/pancakeswap/fetch/pancakePositions.js.map +1 -0
  80. package/dist/esm/strategies/pancakeswap/fetch/pancakeswapMath.js +199 -0
  81. package/dist/esm/strategies/pancakeswap/fetch/pancakeswapMath.js.map +1 -0
  82. package/dist/esm/strategies/pendle/abis/MulticallPendleStratsAbi.json +103 -0
  83. package/dist/esm/strategies/pendle/build.js +70 -0
  84. package/dist/esm/strategies/pendle/build.js.map +1 -0
  85. package/dist/esm/strategies/pendle/fetch.js +267 -0
  86. package/dist/esm/strategies/pendle/fetch.js.map +1 -0
  87. package/dist/esm/strategies/pendle/getPendleApiData.js +15 -0
  88. package/dist/esm/strategies/pendle/getPendleApiData.js.map +1 -0
  89. package/dist/esm/strategies/pendle/pendlePoints.js +71 -0
  90. package/dist/esm/strategies/pendle/pendlePoints.js.map +1 -0
  91. package/dist/esm/strategies/utils/getAprBreakdown.js +9 -9
  92. package/dist/esm/strategies/utils/getAprBreakdown.js.map +1 -1
  93. package/dist/esm/strategies/utils/index.js +10 -1
  94. package/dist/esm/strategies/utils/index.js.map +1 -1
  95. package/dist/esm/strategies/yearn/build.js +5 -4
  96. package/dist/esm/strategies/yearn/build.js.map +1 -1
  97. package/dist/esm/strategies/yearn/fetch/fetchAllYearnGauges.js +3 -2
  98. package/dist/esm/strategies/yearn/fetch/fetchAllYearnGauges.js.map +1 -1
  99. package/dist/esm/strategies/yearn/fetch/index.js +1 -1
  100. package/dist/esm/strategies/yearn/fetch/index.js.map +1 -1
  101. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  102. package/dist/esm/utils.js +1 -1
  103. package/dist/esm/utils.js.map +1 -1
  104. package/dist/types/bytecodes/index.d.ts +16 -0
  105. package/dist/types/bytecodes/index.d.ts.map +1 -0
  106. package/dist/types/bytecodes/strategies/batches/batchBalancerStrats.d.ts +4 -0
  107. package/dist/types/bytecodes/strategies/batches/batchBalancerStrats.d.ts.map +1 -0
  108. package/dist/types/bytecodes/strategies/batches/batchCurveStrats.d.ts +4 -0
  109. package/dist/types/bytecodes/strategies/batches/batchCurveStrats.d.ts.map +1 -0
  110. package/dist/types/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.d.ts +4 -0
  111. package/dist/types/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.d.ts.map +1 -0
  112. package/dist/types/bytecodes/strategies/batches/batchPancakeSwapPositions.d.ts +4 -0
  113. package/dist/types/bytecodes/strategies/batches/batchPancakeSwapPositions.d.ts.map +1 -0
  114. package/dist/types/bytecodes/strategies/batches/batchPancakeswapStrats.d.ts +4 -0
  115. package/dist/types/bytecodes/strategies/batches/batchPancakeswapStrats.d.ts.map +1 -0
  116. package/dist/types/bytecodes/strategies/batches/batchPendleStrats.d.ts +4 -0
  117. package/dist/types/bytecodes/strategies/batches/batchPendleStrats.d.ts.map +1 -0
  118. package/dist/types/bytecodes/strategies/builds/buildBalancerStrats.d.ts +4 -0
  119. package/dist/types/bytecodes/strategies/builds/buildBalancerStrats.d.ts.map +1 -0
  120. package/dist/types/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.d.ts +4 -0
  121. package/dist/types/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.d.ts.map +1 -0
  122. package/dist/types/bytecodes/strategies/builds/buildPancakeSwapStrats.d.ts +4 -0
  123. package/dist/types/bytecodes/strategies/builds/buildPancakeSwapStrats.d.ts.map +1 -0
  124. package/dist/types/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.d.ts +4 -0
  125. package/dist/types/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.d.ts.map +1 -0
  126. package/dist/types/bytecodes/strategies/builds/buildPendleStrats.d.ts +4 -0
  127. package/dist/types/bytecodes/strategies/builds/buildPendleStrats.d.ts.map +1 -0
  128. package/dist/types/bytecodes/strategies/builds/buildYearnStrats.d.ts +4 -0
  129. package/dist/types/bytecodes/strategies/builds/buildYearnStrats.d.ts.map +1 -0
  130. package/dist/types/bytecodes/strategies/fetchYearnGauges.d.ts +4 -0
  131. package/dist/types/bytecodes/strategies/fetchYearnGauges.d.ts.map +1 -0
  132. package/dist/types/bytecodes/strategies/sdtGaugeRewards.d.ts +4 -0
  133. package/dist/types/bytecodes/strategies/sdtGaugeRewards.d.ts.map +1 -0
  134. package/dist/types/bytecodes/tokenData.d.ts.map +1 -0
  135. package/dist/types/bytecodes/types.d.ts.map +1 -0
  136. package/dist/types/index.d.ts +15 -6
  137. package/dist/types/index.d.ts.map +1 -1
  138. package/dist/types/lockers/utils/endpoints.d.ts +1 -1
  139. package/dist/types/lockers/utils/endpoints.d.ts.map +1 -1
  140. package/dist/types/prices.d.ts +8 -1
  141. package/dist/types/prices.d.ts.map +1 -1
  142. package/dist/types/strategies/balancer/build.d.ts +0 -1
  143. package/dist/types/strategies/balancer/build.d.ts.map +1 -1
  144. package/dist/types/strategies/balancer/fetch.d.ts +11 -0
  145. package/dist/types/strategies/balancer/fetch.d.ts.map +1 -0
  146. package/dist/types/strategies/curve/build.d.ts.map +1 -1
  147. package/dist/types/strategies/curve/fetch/curveApiData/bytecode.d.ts.map +1 -1
  148. package/dist/types/strategies/curve/fetch/curveApiData/getCurveApiData.d.ts +1 -1
  149. package/dist/types/strategies/curve/fetch/curveApiData/getCurveApiData.d.ts.map +1 -1
  150. package/dist/types/strategies/curve/fetch/curveApiData/getGaugesFromRegistry.d.ts.map +1 -1
  151. package/dist/types/strategies/curve/fetch/curveApiData/getGaugesWeights.d.ts.map +1 -1
  152. package/dist/types/strategies/curve/fetch/curveApiData/getPoolsFromRegistries.ts.d.ts.map +1 -1
  153. package/dist/types/strategies/curve/fetch/index.d.ts +15 -2
  154. package/dist/types/strategies/curve/fetch/index.d.ts.map +1 -1
  155. package/dist/types/strategies/curve/onChainCalls.d.ts.map +1 -1
  156. package/dist/types/strategies/pancakeswap/build.d.ts +2 -0
  157. package/dist/types/strategies/pancakeswap/build.d.ts.map +1 -0
  158. package/dist/types/strategies/pancakeswap/buildErc20.d.ts +7 -0
  159. package/dist/types/strategies/pancakeswap/buildErc20.d.ts.map +1 -0
  160. package/dist/types/strategies/pancakeswap/config.d.ts +7 -0
  161. package/dist/types/strategies/pancakeswap/config.d.ts.map +1 -0
  162. package/dist/types/strategies/pancakeswap/endpoints.d.ts +8 -0
  163. package/dist/types/strategies/pancakeswap/endpoints.d.ts.map +1 -0
  164. package/dist/types/strategies/pancakeswap/fetch/getPancakeApisData.d.ts +10 -0
  165. package/dist/types/strategies/pancakeswap/fetch/getPancakeApisData.d.ts.map +1 -0
  166. package/dist/types/strategies/pancakeswap/fetch/getPancakeErc20Vaults.d.ts +44 -0
  167. package/dist/types/strategies/pancakeswap/fetch/getPancakeErc20Vaults.d.ts.map +1 -0
  168. package/dist/types/strategies/pancakeswap/fetch/getPancakeNotDeployed.d.ts +3 -0
  169. package/dist/types/strategies/pancakeswap/fetch/getPancakeNotDeployed.d.ts.map +1 -0
  170. package/dist/types/strategies/pancakeswap/fetch/getPancakeV3Vaults.d.ts +7 -0
  171. package/dist/types/strategies/pancakeswap/fetch/getPancakeV3Vaults.d.ts.map +1 -0
  172. package/dist/types/strategies/pancakeswap/fetch/index.d.ts +17 -0
  173. package/dist/types/strategies/pancakeswap/fetch/index.d.ts.map +1 -0
  174. package/dist/types/strategies/pancakeswap/fetch/pancakePositions.d.ts +11 -0
  175. package/dist/types/strategies/pancakeswap/fetch/pancakePositions.d.ts.map +1 -0
  176. package/dist/types/strategies/pancakeswap/fetch/pancakeswapMath.d.ts +33 -0
  177. package/dist/types/strategies/pancakeswap/fetch/pancakeswapMath.d.ts.map +1 -0
  178. package/dist/types/strategies/pendle/build.d.ts +42 -0
  179. package/dist/types/strategies/pendle/build.d.ts.map +1 -0
  180. package/dist/types/strategies/pendle/fetch.d.ts +60 -0
  181. package/dist/types/strategies/pendle/fetch.d.ts.map +1 -0
  182. package/dist/types/strategies/pendle/getPendleApiData.d.ts +3 -0
  183. package/dist/types/strategies/pendle/getPendleApiData.d.ts.map +1 -0
  184. package/dist/types/strategies/pendle/pendlePoints.d.ts +80 -0
  185. package/dist/types/strategies/pendle/pendlePoints.d.ts.map +1 -0
  186. package/dist/types/strategies/types.d.ts +17 -3
  187. package/dist/types/strategies/types.d.ts.map +1 -1
  188. package/dist/types/strategies/utils/getAprBreakdown.d.ts +1 -4
  189. package/dist/types/strategies/utils/getAprBreakdown.d.ts.map +1 -1
  190. package/dist/types/strategies/utils/index.d.ts +2 -0
  191. package/dist/types/strategies/utils/index.d.ts.map +1 -1
  192. package/dist/types/strategies/yearn/build.d.ts.map +1 -1
  193. package/dist/types/strategies/yearn/fetch/fetchAllYearnGauges.d.ts.map +1 -1
  194. package/dist/types/strategies/yearn/fetch/index.d.ts +13 -2
  195. package/dist/types/strategies/yearn/fetch/index.d.ts.map +1 -1
  196. package/dist/types/utils.d.ts.map +1 -1
  197. package/package.json +3 -2
  198. package/src/bytecodes/index.ts +18 -0
  199. package/src/bytecodes/strategies/batches/batchBalancerStrats.ts +70 -0
  200. package/src/{batches/curveStrats.ts → bytecodes/strategies/batches/batchCurveStrats.ts} +3 -3
  201. package/src/bytecodes/strategies/batches/batchPancakeSwapErc20Strats.ts +67 -0
  202. package/src/bytecodes/strategies/batches/batchPancakeSwapPositions.ts +50 -0
  203. package/src/bytecodes/strategies/batches/batchPancakeswapStrats.ts +54 -0
  204. package/src/bytecodes/strategies/batches/batchPendleStrats.ts +65 -0
  205. package/src/bytecodes/strategies/builds/buildBalancerStrats.ts +56 -0
  206. package/src/bytecodes/strategies/builds/buildPancakeSwapErc20Strats.ts +70 -0
  207. package/src/bytecodes/strategies/builds/buildPancakeSwapStrats.ts +57 -0
  208. package/src/bytecodes/strategies/builds/buildPancakeswapNotDeployedErc20Strats.ts +60 -0
  209. package/src/bytecodes/strategies/builds/buildPendleStrats.ts +41 -0
  210. package/src/{batches → bytecodes/strategies/builds}/buildYearnStrats.ts +3 -3
  211. package/src/{batches → bytecodes/strategies}/fetchYearnGauges.ts +1 -1
  212. package/src/{batches → bytecodes/strategies}/sdtGaugeRewards.ts +1 -1
  213. package/src/endpoints.ts +2 -0
  214. package/src/index.ts +43 -5
  215. package/src/lockers/utils/endpoints.ts +2 -1
  216. package/src/prices.ts +57 -6
  217. package/src/strategies/balancer/build.ts +66 -0
  218. package/src/strategies/balancer/endpoints.ts +27 -0
  219. package/src/strategies/balancer/fetch.ts +266 -0
  220. package/src/strategies/curve/build.ts +4 -3
  221. package/src/strategies/curve/fetch/curveApiData/bytecode.ts +0 -1
  222. package/src/strategies/curve/fetch/curveApiData/getCurveApiData.ts +4 -3
  223. package/src/strategies/curve/fetch/curveApiData/getGaugesFromRegistry.ts +7 -3
  224. package/src/strategies/curve/fetch/curveApiData/getGaugesWeights.ts +3 -2
  225. package/src/strategies/curve/fetch/curveApiData/getPoolsFromRegistries.ts.ts +3 -2
  226. package/src/strategies/curve/fetch/index.ts +53 -15
  227. package/src/strategies/curve/httpCalls.ts +3 -3
  228. package/src/strategies/curve/onChainCalls.ts +4 -2
  229. package/src/strategies/pancakeswap/build.ts +57 -0
  230. package/src/strategies/pancakeswap/buildErc20.ts +73 -0
  231. package/src/strategies/pancakeswap/config.ts +7 -0
  232. package/src/strategies/pancakeswap/endpoints.ts +12 -0
  233. package/src/strategies/pancakeswap/fetch/getPancakeApisData.ts +32 -0
  234. package/src/strategies/pancakeswap/fetch/getPancakeErc20Vaults.ts +184 -0
  235. package/src/strategies/pancakeswap/fetch/getPancakeNotDeployed.ts +132 -0
  236. package/src/strategies/pancakeswap/fetch/getPancakeV3Vaults.ts +191 -0
  237. package/src/strategies/pancakeswap/fetch/index.ts +50 -0
  238. package/src/strategies/pancakeswap/fetch/pancakePositions.ts +147 -0
  239. package/src/strategies/pancakeswap/fetch/pancakeswapMath.ts +305 -0
  240. package/src/strategies/pendle/build.ts +93 -0
  241. package/src/strategies/pendle/fetch.ts +349 -0
  242. package/src/strategies/pendle/getPendleApiData.ts +20 -0
  243. package/src/strategies/pendle/pendlePoints.ts +71 -0
  244. package/src/strategies/types.ts +20 -3
  245. package/src/strategies/utils/getAprBreakdown.ts +9 -9
  246. package/src/strategies/utils/index.ts +14 -1
  247. package/src/strategies/yearn/build.ts +5 -4
  248. package/src/strategies/yearn/fetch/fetchAllYearnGauges.ts +4 -3
  249. package/src/strategies/yearn/fetch/index.ts +22 -11
  250. package/src/utils.ts +3 -3
  251. package/dist/esm/batches/balancerStrats.js +0 -73
  252. package/dist/esm/batches/balancerStrats.js.map +0 -1
  253. package/dist/esm/batches/buildBalancerStrats.js +0 -62
  254. package/dist/esm/batches/buildBalancerStrats.js.map +0 -1
  255. package/dist/esm/batches/buildYearnStrats.js.map +0 -1
  256. package/dist/esm/batches/curveStrats.js.map +0 -1
  257. package/dist/esm/batches/fetchYearnGauges.js.map +0 -1
  258. package/dist/esm/batches/index.js +0 -8
  259. package/dist/esm/batches/index.js.map +0 -1
  260. package/dist/esm/batches/sdtGaugeRewards.js.map +0 -1
  261. package/dist/esm/batches/tokenData.js.map +0 -1
  262. package/dist/esm/strategies/balancer/fetch/index.js +0 -203
  263. package/dist/esm/strategies/balancer/fetch/index.js.map +0 -1
  264. package/dist/types/batches/balancerStrats.d.ts +0 -4
  265. package/dist/types/batches/balancerStrats.d.ts.map +0 -1
  266. package/dist/types/batches/buildBalancerStrats.d.ts +0 -4
  267. package/dist/types/batches/buildBalancerStrats.d.ts.map +0 -1
  268. package/dist/types/batches/buildYearnStrats.d.ts +0 -4
  269. package/dist/types/batches/buildYearnStrats.d.ts.map +0 -1
  270. package/dist/types/batches/curveStrats.d.ts +0 -4
  271. package/dist/types/batches/curveStrats.d.ts.map +0 -1
  272. package/dist/types/batches/fetchYearnGauges.d.ts +0 -4
  273. package/dist/types/batches/fetchYearnGauges.d.ts.map +0 -1
  274. package/dist/types/batches/index.d.ts +0 -8
  275. package/dist/types/batches/index.d.ts.map +0 -1
  276. package/dist/types/batches/sdtGaugeRewards.d.ts +0 -4
  277. package/dist/types/batches/sdtGaugeRewards.d.ts.map +0 -1
  278. package/dist/types/batches/tokenData.d.ts.map +0 -1
  279. package/dist/types/batches/types.d.ts.map +0 -1
  280. package/dist/types/strategies/balancer/fetch/index.d.ts +0 -6
  281. package/dist/types/strategies/balancer/fetch/index.d.ts.map +0 -1
  282. package/src/batches/index.ts +0 -5
  283. /package/dist/esm/{batches → bytecodes/strategies}/fetchYearnGauges.js +0 -0
  284. /package/dist/esm/{batches → bytecodes/strategies}/sdtGaugeRewards.js +0 -0
  285. /package/dist/esm/{batches → bytecodes}/tokenData.js +0 -0
  286. /package/dist/esm/{batches → bytecodes}/types.js +0 -0
  287. /package/dist/types/{batches → bytecodes}/tokenData.d.ts +0 -0
  288. /package/dist/types/{batches → bytecodes}/types.d.ts +0 -0
  289. /package/src/{batches → bytecodes}/tokenData.ts +0 -0
  290. /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 './types.js'
1
+ import type { BatchMetaData } from '../../types.js'
2
2
 
3
- const yearnStrats: BatchMetaData = {
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 yearnStrats
41
+ export default buildYearnStrats
@@ -1,4 +1,4 @@
1
- import type { BatchMetaData } from './types.js'
1
+ import type { BatchMetaData } from '../types.js'
2
2
 
3
3
  const fetchYearnGauges: BatchMetaData = {
4
4
  bytecode: {
@@ -1,4 +1,4 @@
1
- import type { BatchMetaData } from './types.js'
1
+ import type { BatchMetaData } from '../types.js'
2
2
 
3
3
  const commonInputType = ['address[] vaults']
4
4
  const commonOutputType = [
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
- export { fetchCurve } from './strategies/curve/fetch/index.js'
2
- export { fetchCurveBase } from './strategies/curve/fetch/curveApiData/getCurveApiData.js'
3
- export { getGaugesWeights } from './strategies/curve/fetch/curveApiData/getGaugesWeights.js'
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
- export { fetchYearn } from './strategies/yearn/fetch/index.js'
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 = 'https://api.thegraph.com/subgraphs/name/lucasramadour/sdcake-airdrop'
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 (tokens: any[], chainId = 1, defaultErrorValue?: any): Promise<any> => {
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 httpRequest = await (
77
- await fetch(`${GECKO_TERMINAL_API_URL}/simple/networks/${network}/token_price/${httpArgs}`)
78
- ).json()
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
- return coinsData
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
+ `