ypricemagic 4.7.2.dev0__tar.gz → 4.7.3.dev0__tar.gz

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 (190) hide show
  1. ypricemagic-4.7.3.dev0/.github/ISSUE_TEMPLATE/add_a_chain.yml +128 -0
  2. {ypricemagic-4.7.2.dev0/ypricemagic.egg-info → ypricemagic-4.7.3.dev0}/PKG-INFO +1 -1
  3. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/classes/common.py +1 -0
  4. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/constants.py +17 -0
  5. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/networks.py +7 -0
  6. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/balancer/v2.py +3 -0
  7. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/uniswap/v3.py +8 -0
  8. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/multicall.py +1 -0
  9. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0/ypricemagic.egg-info}/PKG-INFO +1 -1
  10. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/ypricemagic.egg-info/SOURCES.txt +1 -0
  11. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.env.sample +0 -0
  12. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.github/workflows/black.yaml +0 -0
  13. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.github/workflows/codeql-analysis.yml +0 -0
  14. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.github/workflows/compile.yaml +0 -0
  15. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.github/workflows/deploy-docs.yml +0 -0
  16. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.github/workflows/mypy.yaml +0 -0
  17. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.github/workflows/pytest.yaml +0 -0
  18. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.github/workflows/release.yaml +0 -0
  19. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/.gitignore +0 -0
  20. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/CONTRIBUTING.md +0 -0
  21. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/FUNDING.json +0 -0
  22. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/LICENSE.txt +0 -0
  23. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/Makefile +0 -0
  24. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/README.md +0 -0
  25. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/brownie-config.yaml +0 -0
  26. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/Makefile +0 -0
  27. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/alabaster.css +0 -0
  28. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/basic.css +0 -0
  29. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/custom.css +0 -0
  30. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/doctools.js +0 -0
  31. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/documentation_options.js +0 -0
  32. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/file.png +0 -0
  33. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/language_data.js +0 -0
  34. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/minus.png +0 -0
  35. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/plus.png +0 -0
  36. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/pygments.css +0 -0
  37. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/searchtools.js +0 -0
  38. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/_build/html/_static/sphinx_highlight.js +0 -0
  39. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/caching.rst +0 -0
  40. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/cli.rst +0 -0
  41. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/conf.py +0 -0
  42. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/environment.rst +0 -0
  43. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/index.rst +0 -0
  44. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/docs/make.bat +0 -0
  45. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/pyproject.toml +0 -0
  46. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/renovate.json +0 -0
  47. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/requirements-dev.txt +0 -0
  48. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/requirements.txt +0 -0
  49. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/scripts/debug-curve.py +0 -0
  50. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/scripts/debug-price.py +0 -0
  51. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/setup.cfg +0 -0
  52. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/setup.py +0 -0
  53. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/__init__.py +0 -0
  54. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/classes/test_erc20.py +0 -0
  55. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/classes/test_singleton.py +0 -0
  56. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/conftest.py +0 -0
  57. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/fixtures.py +0 -0
  58. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/__init__.py +0 -0
  59. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/dex/__init__.py +0 -0
  60. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/dex/test_balancer.py +0 -0
  61. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/dex/test_uniswap.py +0 -0
  62. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/dex/test_velodrome.py +0 -0
  63. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/lending/__init__.py +0 -0
  64. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/lending/test_aave.py +0 -0
  65. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/lending/test_compound.py +0 -0
  66. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/stable_swap/test_curve.py +0 -0
  67. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/test_chainlink.py +0 -0
  68. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/test_gearbox.py +0 -0
  69. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/test_magic.py +0 -0
  70. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/test_popsicle.py +0 -0
  71. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/test_synthetix.py +0 -0
  72. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/test_yearn.py +0 -0
  73. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/tokenized_fund/test_piedao.py +0 -0
  74. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/prices/utils/test_buckets.py +0 -0
  75. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/tests/test_constants.py +0 -0
  76. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/ENVIRONMENT_VARIABLES.py +0 -0
  77. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/__init__.py +0 -0
  78. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/__init__.py +0 -0
  79. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/brownie.py +0 -0
  80. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/common.py +0 -0
  81. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/config.py +0 -0
  82. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/decorators.py +0 -0
  83. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/entities.py +0 -0
  84. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/exceptions.py +0 -0
  85. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/log.py +0 -0
  86. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/structs.py +0 -0
  87. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/__init__.py +0 -0
  88. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/_ep.py +0 -0
  89. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/bulk.py +0 -0
  90. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/contract.py +0 -0
  91. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/logs.py +0 -0
  92. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/price.py +0 -0
  93. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/stringify.py +0 -0
  94. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/token.py +0 -0
  95. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/traces.py +0 -0
  96. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_db/utils/utils.py +0 -0
  97. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/_decorators.py +0 -0
  98. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/classes/__init__.py +0 -0
  99. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/classes/_abc.py +0 -0
  100. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/classes/singleton.py +0 -0
  101. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/cli.py +0 -0
  102. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/contracts.py +0 -0
  103. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/convert.py +0 -0
  104. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/datatypes.py +0 -0
  105. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/exceptions.py +0 -0
  106. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/ERC20.py +0 -0
  107. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/__init__.py +0 -0
  108. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/balancer/WeightedPool.py +0 -0
  109. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/balancer/__init__.py +0 -0
  110. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/compound/__init__.py +0 -0
  111. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/compound/unitroller.py +0 -0
  112. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/curve/CurveRegistry.py +0 -0
  113. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/curve/__init__.py +0 -0
  114. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/multicall2.py +0 -0
  115. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/uniswap/__init__.py +0 -0
  116. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/uniswap/factoryv2.py +0 -0
  117. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/uniswap/quoterv3.py +0 -0
  118. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/interfaces/uniswap/velov2.py +0 -0
  119. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/monkey_patches.py +0 -0
  120. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/__init__.py +0 -0
  121. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/band.py +0 -0
  122. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/chainlink.py +0 -0
  123. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/convex.py +0 -0
  124. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/__init__.py +0 -0
  125. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/balancer/__init__.py +0 -0
  126. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/balancer/_abc.py +0 -0
  127. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/balancer/balancer.py +0 -0
  128. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/balancer/v1.py +0 -0
  129. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/genericamm.py +0 -0
  130. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/mooniswap.py +0 -0
  131. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/solidly.py +0 -0
  132. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/uniswap/__init__.py +0 -0
  133. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/uniswap/uniswap.py +0 -0
  134. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/uniswap/v1.py +0 -0
  135. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/uniswap/v2.py +0 -0
  136. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/uniswap/v2_forks.py +0 -0
  137. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/dex/velodrome.py +0 -0
  138. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/eth_derivs/__init__.py +0 -0
  139. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/eth_derivs/creth.py +0 -0
  140. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/eth_derivs/wsteth.py +0 -0
  141. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/gearbox.py +0 -0
  142. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/lending/__init__.py +0 -0
  143. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/lending/aave.py +0 -0
  144. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/lending/compound.py +0 -0
  145. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/lending/ib.py +0 -0
  146. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/magic.py +0 -0
  147. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/one_to_one.py +0 -0
  148. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/pendle.py +0 -0
  149. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/popsicle.py +0 -0
  150. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/rkp3r.py +0 -0
  151. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/solidex.py +0 -0
  152. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/stable_swap/__init__.py +0 -0
  153. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/stable_swap/belt.py +0 -0
  154. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/stable_swap/curve.py +0 -0
  155. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/stable_swap/ellipsis.py +0 -0
  156. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/stable_swap/froyo.py +0 -0
  157. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/stable_swap/mstablefeederpool.py +0 -0
  158. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/stable_swap/saddle.py +0 -0
  159. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/synthetix.py +0 -0
  160. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/tokenized_fund/__init__.py +0 -0
  161. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/tokenized_fund/basketdao.py +0 -0
  162. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/tokenized_fund/gelato.py +0 -0
  163. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/tokenized_fund/piedao.py +0 -0
  164. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/tokenized_fund/reserve.py +0 -0
  165. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/tokenized_fund/tokensets.py +0 -0
  166. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/utils/__init__.py +0 -0
  167. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/utils/buckets.py +0 -0
  168. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/utils/debug.py +0 -0
  169. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/utils/sense_check.py +0 -0
  170. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/utils/ypriceapi.py +0 -0
  171. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/prices/yearn.py +0 -0
  172. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/py.typed +0 -0
  173. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/time.py +0 -0
  174. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/__init__.py +0 -0
  175. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/_erc20.py +0 -0
  176. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/cache.py +0 -0
  177. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/checks.py +0 -0
  178. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/client.py +0 -0
  179. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/dank_mids.py +0 -0
  180. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/events.py +0 -0
  181. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/fakes.py +0 -0
  182. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/gather.py +0 -0
  183. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/logging.py +0 -0
  184. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/middleware.py +0 -0
  185. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/y/utils/raw_calls.py +0 -0
  186. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/ypricemagic.egg-info/dependency_links.txt +0 -0
  187. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/ypricemagic.egg-info/entry_points.txt +0 -0
  188. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/ypricemagic.egg-info/not-zip-safe +0 -0
  189. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/ypricemagic.egg-info/requires.txt +0 -0
  190. {ypricemagic-4.7.2.dev0 → ypricemagic-4.7.3.dev0}/ypricemagic.egg-info/top_level.txt +0 -0
@@ -0,0 +1,128 @@
1
+ name: "Add New Blockchain"
2
+ description: "A checklist for adding support for a new blockchain to ypricemagic"
3
+ title: "[Blockchain] Add: "
4
+ labels: [blockchain, enhancement]
5
+ body:
6
+ - type: input
7
+ id: blockchain_name
8
+ attributes:
9
+ label: Blockchain Name
10
+ description: "What is the name of the blockchain?"
11
+ placeholder: "ExampleChain"
12
+ validations:
13
+ required: true
14
+
15
+ - type: input
16
+ id: documentation
17
+ attributes:
18
+ label: Documentation / Website URL
19
+ description: "Link to official docs, developer portal, etc."
20
+ placeholder: "https://docs.examplechain.org"
21
+ validations:
22
+ required: true
23
+
24
+ - type: checkboxes
25
+ id: integration_files
26
+ attributes:
27
+ label: Integration File Checklist
28
+ description: |
29
+ For each file, check off when the main work is done.
30
+ **Subtasks for each file are shown as Markdown for reference.**
31
+ options:
32
+
33
+ - label: "Add network details to `./y/networks.py`"
34
+ description: |
35
+ - [ ] Add the chainid to the `Network` enum
36
+ - [ ] Add a short label for the chain to `Network.label`
37
+ - [ ] Add the network name to `Network.name`
38
+
39
+ - label: "Add contract addresses for common tokens to `./y/constants.py`"
40
+ description: |
41
+ Define the Contract for each of the tokens below. If the new blockchain does not have one of the tokens, simply assign `None`. Follow the same format as the others.
42
+ - [ ] WETH
43
+ - [ ] WBTC
44
+ - [ ] USDC
45
+ - [ ] USDT
46
+ - [ ] DAI
47
+
48
+ - [ ] Add the contract addresses for any "safe" stablecoins to the `_STABLECOINS` mapping
49
+ - [ ] Add the contract address for the wrapped form of the network's gas token to `WRAPPED_GAS_COINS`. For example, on Ethereum, Optimism, and Arbitrum it would be the WETH address but on Polygon it is the WMATIC address
50
+
51
+ - label: "Add chainlink feeds to `./y/prices/chainlink.py`"
52
+ description: |
53
+ - [ ] Map any tokens with all chainlink feeds from https://docs.chain.link/data-feeds/price-feeds/addresses that show a green indicator
54
+
55
+ - label: "Update `./y/classes/common.py`"
56
+ description: |
57
+ - [ ] Add the symbol for the wrapped form of the network's gas token. For example, on Ethereum, Optimism, and Arbitrum it would be "WETH" but on Polygon it is "WMATIC"
58
+
59
+ - label: "Add Uniswap V2 deployment details and any forks to `./y/prices/dex/uniswap/v2_forks.py`"
60
+ description:
61
+ - [ ] Add the factory and router addresses for Uniswap V2 and all known direct forks
62
+
63
+ - label: "Add Uniswap V3 deployment details to `./y/prices/dex/uniswap/v3.py`"
64
+ description: |
65
+ - [ ] Add the factory address for the new chain
66
+ - [ ] Add the quoter address for the new chain
67
+ - [ ] Add the fee tiers that Uniswap V3 supports on the new chain
68
+
69
+ - label: "Add any Uniswap V3 fork deployment details to `forked_deployments` in `./y/prices/dex/uniswap/v3.py`"
70
+ description: |
71
+ - [ ] Add the factory address for the new chain
72
+ - [ ] Add the quoter address for the new chain
73
+ - [ ] Add the fee tiers that Uniswap V3 supports on the new chain
74
+
75
+ - label: "Add Balancer V2 and any forks to `./y/prices/dex/balancer/v2.py`"
76
+ description: |
77
+ - [ ] Add the Vault address for Balancer V2 and all known direct forks, if applicable
78
+
79
+ - label: "Add multicall address to `./y/utils/multicall.py`"
80
+ description: |
81
+ - [ ] Add the multicall3 address for the new chain. This will typically be `0xcA11bde05977b3631167028862bE2a173976CA11`
82
+
83
+ - type: textarea
84
+ id: extra
85
+ attributes:
86
+ label: Additional Information
87
+ description: "Add any extra details, context, links, or considerations here."
88
+ placeholder: "Anything else reviewers should know?"
89
+
90
+
91
+ - in ./yearn/prices/chainlink.py:
92
+ - [ ] specify any chainlink feeds available on the chain in `feeds`.
93
+ - [ ] specify the chainlink registry address in `registries` if applicable, or specify None if not applicable.
94
+
95
+ - in ./yearn/ironbank.py:
96
+ - [ ] add ironbank deployment address
97
+
98
+ - in ./yearn/prices/compound.py:
99
+ - [ ] add ib comptroller
100
+
101
+ - in ./yearn/v2/registry.py:
102
+ - [ ] add v2 vault registry
103
+
104
+ - in yearn/yearn.py:
105
+ - [ ] add v2 vault registry and
106
+ - [ ]ironbank registry
107
+
108
+ - in ./yearn/prices/constants.py:
109
+ - [ ] specify `ib_snapshot_block_by_network`, if any, the start block of Ironbank on this network or specify '1' if not applicable.
110
+
111
+ - in ./yearn/prices/uniswap/v2.py:
112
+ - [ ] specify the factory and router address for any important uni v2 forks on the chain.
113
+
114
+ in ./yearn/prices/uniswap/v3.py:
115
+ - [ ] add info about uni v3 deployed on network
116
+
117
+ - in ./yearn/utils.py:
118
+ - [ ] specify `BINARY_SEARCH_BARRIER` as 0 if all historical data is available. If historical data not available due to a network upgrade/etc, specify the first block of the available historical data.
119
+
120
+ - in ./yearn/middleware/middleware.py:
121
+ - [ ] specify `BATCH_SIZE` of approx 1 day based on avg block times on the chain.
122
+
123
+
124
+ It's important to test to make sure everything works!
125
+
126
+ Once you've handled everything above, type `make up <network>` into your terminal replacing network with your network name at the project root. The network specific exporters will start running in docker and any exceptions will show in your terminal. If there are no exceptions, and everything appears to be running smoothly then it should be working correctly.
127
+
128
+ - [ ] yes I have tested it and it is running as expected
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ypricemagic
3
- Version: 4.7.2.dev0
3
+ Version: 4.7.3.dev0
4
4
  Summary: Use this tool to extract historical on-chain price data from an archive node. Shoutout to @bantg and @nymmrx for their awesome work on yearn-exporter that made this library possible.
5
5
  Home-page: https://github.com/BobTheBuidler/ypricemagic
6
6
  Author: BobTheBuidler
@@ -253,6 +253,7 @@ class ERC20(ContractBase):
253
253
  Network.Arbitrum: "ETH",
254
254
  Network.Optimism: "ETH",
255
255
  Network.Base: "ETH",
256
+ Network.Berachain: "BERA",
256
257
  }.get(chain.id, "ETH")
257
258
  import y._db.utils.token as db
258
259
 
@@ -285,6 +285,19 @@ elif CHAINID == Network.Base:
285
285
  This is a temporary placeholder and may not represent the actual WBTC contract on Base.
286
286
  """
287
287
 
288
+ elif CHAINID == Network.Berachain:
289
+
290
+ weth = Contract("0x2F6F07CDcf3588944Bf4C42aC74ff24bF56e7590")
291
+ """Wrapped Ether (WETH) contract on Berachain."""
292
+
293
+ usdc = Contract("0x549943e04f40284185054145c6E4e9568C1D3241") # usdbc
294
+ """USD Coin (USDC) contract on Berachain."""
295
+
296
+ wbtc = Contract("0x0555E30da8f98308EdB960aa94C0Db47230d2B9c")
297
+ """Wrapped Bitcoin (WBTC) contract on Berachain."""
298
+
299
+ usdt, dai = None, None
300
+
288
301
  else:
289
302
  weth, dai, wbtc, usdc, usdt = None, None, None, None, None
290
303
 
@@ -356,6 +369,9 @@ _STABLECOINS: Final[Dict[Network, Dict[ChecksumAddress, str]]] = {
356
369
  "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA": "usdbc",
357
370
  "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913": "usdc",
358
371
  },
372
+ Network.Berachain: {
373
+ "0x549943e04f40284185054145c6E4e9568C1D3241": "usdc",
374
+ },
359
375
  }
360
376
 
361
377
  STABLECOINS: Final[Dict[ChecksumAddress, str]] = _STABLECOINS.get(CHAINID, {})
@@ -384,6 +400,7 @@ WRAPPED_GAS_COINS: Final[Dict[Network, ChecksumAddress]] = {
384
400
  Network.Cronos: "0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23",
385
401
  Network.Optimism: "0x4200000000000000000000000000000000000006",
386
402
  Network.Base: "0x4200000000000000000000000000000000000006",
403
+ Network.Berachain: "0x6969696969696969696969696969696969696969",
387
404
  }
388
405
 
389
406
  WRAPPED_GAS_COIN: Final[ChecksumAddress] = WRAPPED_GAS_COINS[CHAINID]
@@ -76,6 +76,9 @@ class Network(IntEnum):
76
76
  Aurora = 1313161554
77
77
  """The Chain ID for Aurora"""
78
78
 
79
+ Berachain = 80094
80
+ """The Chain ID for Berachain"""
81
+
79
82
  @staticmethod
80
83
  def label(chain_id: Optional[int] = None) -> str:
81
84
  """
@@ -128,6 +131,8 @@ class Network(IntEnum):
128
131
  return "OPTI"
129
132
  elif chain_id == Network.Base:
130
133
  return "BASE"
134
+ elif chain_id == Network.Berachain:
135
+ return "BERA"
131
136
 
132
137
  @staticmethod
133
138
  def name(chain_id: Optional[int] = None) -> str:
@@ -181,6 +186,8 @@ class Network(IntEnum):
181
186
  return "Optimism"
182
187
  elif chain_id == Network.Base:
183
188
  return "Base"
189
+ elif chain_id == Network.Berachain:
190
+ return "Berachain"
184
191
 
185
192
  @staticmethod
186
193
  def printable(chain_id: Optional[int] = None) -> str:
@@ -58,6 +58,9 @@ BALANCER_V2_VAULTS = {
58
58
  Network.Base: [
59
59
  "0xBA12222222228d8Ba445958a75a0704d566BF2C8",
60
60
  ],
61
+ Network.Berachain: [
62
+ "0x4Be03f781C497A489E3cB0287833452cA9B9E80B", # BEX Exchange https://docs.bex.berachain.com/developers/
63
+ ],
61
64
  }.get(CHAINID, [])
62
65
 
63
66
  MESSED_UP_POOLS = {
@@ -93,6 +93,14 @@ forked_deployments: Final = {
93
93
  "fee_tiers": (3000, 500, 10_000, 100),
94
94
  },
95
95
  ],
96
+ Network.Berachain: [
97
+ {
98
+ # kodiak exchange https://documentation.kodiak.finance/overview/kodiak-contracts
99
+ "factory": "0xD84CBf0B02636E7f53dB9E5e45A616E05d710990",
100
+ "quoter": "0x644C8D6E501f7C994B74F5ceA96abe65d0BA662B", # quoter v2
101
+ "fee_tiers": (3000, 500, 10_000, 20_000),
102
+ },
103
+ ],
96
104
  }
97
105
 
98
106
  _FEE_DENOMINATOR: Final = Decimal(1_000_000)
@@ -36,6 +36,7 @@ MULTICALL2 = {
36
36
  Network.Cronos: "0x5e954f5972EC6BFc7dECd75779F10d848230345F",
37
37
  Network.Optimism: "0xcA11bde05977b3631167028862bE2a173976CA11", # Multicall 3
38
38
  Network.Base: "0xcA11bde05977b3631167028862bE2a173976CA11", # mc3
39
+ Network.Berachain: "0xcA11bde05977b3631167028862bE2a173976CA11",
39
40
  }.get(brownie.chain.id)
40
41
 
41
42
  multicall = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ypricemagic
3
- Version: 4.7.2.dev0
3
+ Version: 4.7.3.dev0
4
4
  Summary: Use this tool to extract historical on-chain price data from an archive node. Shoutout to @bantg and @nymmrx for their awesome work on yearn-exporter that made this library possible.
5
5
  Home-page: https://github.com/BobTheBuidler/ypricemagic
6
6
  Author: BobTheBuidler
@@ -12,6 +12,7 @@ requirements-dev.txt
12
12
  requirements.txt
13
13
  setup.cfg
14
14
  setup.py
15
+ .github/ISSUE_TEMPLATE/add_a_chain.yml
15
16
  .github/workflows/black.yaml
16
17
  .github/workflows/codeql-analysis.yml
17
18
  .github/workflows/compile.yaml