Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Releases prior to 7.0 has been removed from this file to declutter search result

### Fixed

- codegen: Fixed loading ABIs from the project with no ABI datasources configured.
- project: Fixed `make image` command and default workdir.

## [8.3.3] - 2025-04-29
Expand Down
2 changes: 2 additions & 0 deletions docs/9.release-notes/_8.0_changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
- cli: Fixed progress estimation when there are indexes with `last_level` option set.
- cli: Import some dependencies on demand to reduce memory footprint.
- cli: Improved logging of indexer status.
- codegen: Fixed loading ABIs from the project with no ABI datasources configured.
- config: Allow `sentry.dsn` to be empty string.
- config: Fixed (de)serialization of hex strings in config.
- config: Fixed setting logging levels according to the config.
Expand All @@ -44,6 +45,7 @@
- package: Create package in-place if cwd equals package name.
- performance: Add index name to fetcher and realtime queues.
- performance: Fixed estimation indexing speed in levels per second.
- project: Fixed `make image` command and default workdir.
- starknet.events: Fixed filtering events by key.
- subsquid: Fixed missing entry in `dipdup_head` internal table.
- tezos.big_maps: Fixed logging status message in `skip_history` mode.
Expand Down
153 changes: 78 additions & 75 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,22 +78,22 @@ attrs==25.3.0 \
base58==2.1.1 \
--hash=sha256:11a36f4d3ce51dfc1043f3218591ac4eb1ceb172919cebe05b52a5bcc8d245c2 \
--hash=sha256:c5d0cb3f5b6e81e8e35da5754388ddcc6d0d14b6c6a132cb93d69ed580a7278c
bitarray==3.3.1 \
--hash=sha256:0580b905ad589e3be52d36fbc83d32f6e3f6a63751d6c0da0ca328c32d037790 \
--hash=sha256:14f04e4eec65891523a8ca3bf9e1dcdefed52d695f40c4e50d5980471ffd22a4 \
--hash=sha256:42376c9e0a1357acc8830c4c0267e1c30ebd04b2d822af702044962a9f30b795 \
--hash=sha256:4bb2fa914a7bbcd7c6a457d44461a8540b9450e9bb4163d734eb74bffba90e69 \
--hash=sha256:50da5ecd86ee25df9f658d8724efbe8060de97217fb12a1163bee61d42946d83 \
--hash=sha256:673a21ebb6c72904d7de58fe8c557bad614fce773f21ddc86bcf8dd09a387a32 \
--hash=sha256:8627fc0c9806d6dac2fb422d9cd650b0d225f498601381d334685b9f071b793c \
--hash=sha256:8c89219a672d0a15ab70f8a6f41bc8355296ec26becef89a127c1a32bb2e6345 \
--hash=sha256:946e97712014784c3257e4ca45cf5071ffdbbebe83977d429e8f7329d0e2387f \
--hash=sha256:99ea63932e86b08e36d6246ff8f663728a5baefa7e9a0e2f682864fe13297514 \
--hash=sha256:b77a03aba84bf2d2c8f2d5a81af5957da42324d9f701d584236dc735b6a191f8 \
--hash=sha256:dc6407e899fc3148d796fc4c3b0cec78153f034c5ff9baa6ae9c91d7ea05fb45 \
--hash=sha256:dd0ba0cc46b9a7d5cee4c4a9733dce2f0aa21caf04fe18d18d2025a4211adc18 \
--hash=sha256:e9b18889a809d8f190e09dd6ee513983e1cdc04c3f23395d237ccf699dce5eaf \
--hash=sha256:f4e2fc0f6a573979462786edbf233fc9e1b644b4e790e8c29796f96bbe45353a
bitarray==3.3.2 \
--hash=sha256:05a4529d4cf17493b33cfea0d8923cba640e048962e9ea10ba0a4d312fedc6b8 \
--hash=sha256:2916a52ce97a80926f7bbc6170ac5b8a15f61fa560be5083fe12e0feb2c66ae1 \
--hash=sha256:2b0817dc6954d716468d30db82546285b3a89774698d518db581d886bf8cbf65 \
--hash=sha256:46e60a4fb5ce262032d4a01e68ccc4a07bfb82434fba3743d29a658e44cddeae \
--hash=sha256:57d61ab68631fab95777772a40c1a315dc018e84acc8b5043c588aaff07b1b9f \
--hash=sha256:5d35a57c6656475d5fbac60103af41b336018cf5e69ff7b8dcbd7c203ca62db8 \
--hash=sha256:5ecc01600beff9cec9711da18e15a783d96a0f0fccf66f131b231ed0d9c0c556 \
--hash=sha256:63971b6a68bf313f0091dba13ff65d037279a5c4cbb63382e4b0f6d3c8550368 \
--hash=sha256:6801402e5dc0acf5d0f541d2cefa3dcf26559d5707d600b0d6a8bfbd765ac033 \
--hash=sha256:70e9228830b3fcfffb18719aa78e0b8f3d724db300fb9009fc24b6f66969823e \
--hash=sha256:88136ae424ce92052bc6774001fc455b9d76a509c7a44bb933004b23b02ceecf \
--hash=sha256:b0139e8c8e5ac269308ebaf55c67d1f32226815c90905c890fafbd1ce70925cc \
--hash=sha256:c30333686e54dbea97d2425710eafff4e24c5b432e192cb33c66235487c6ac3d \
--hash=sha256:d21b8a74b765435588688d0514776402acc17032827056bea9995f43d9150ea2 \
--hash=sha256:e91ddcdf4075de26234ae74b60cdd39e170e3e4fafa1c593ecc28749e9b165e2
black==25.1.0 \
--hash=sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc \
--hash=sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666 \
Expand All @@ -104,22 +104,22 @@ black==25.1.0 \
certifi==2025.4.26 \
--hash=sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6 \
--hash=sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3
charset-normalizer==3.4.1 \
--hash=sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d \
--hash=sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa \
--hash=sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3 \
--hash=sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9 \
--hash=sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f \
--hash=sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545 \
--hash=sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b \
--hash=sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35 \
--hash=sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d \
--hash=sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757 \
--hash=sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a \
--hash=sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85 \
--hash=sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7 \
--hash=sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1 \
--hash=sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616
charset-normalizer==3.4.2 \
--hash=sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7 \
--hash=sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a \
--hash=sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e \
--hash=sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63 \
--hash=sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b \
--hash=sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0 \
--hash=sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981 \
--hash=sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c \
--hash=sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d \
--hash=sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3 \
--hash=sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd \
--hash=sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214 \
--hash=sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c \
--hash=sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f \
--hash=sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a
ckzg==2.1.1 \
--hash=sha256:025dd31ffdcc799f3ff842570a2a6683b6c5b01567da0109c0c05d11768729c4 \
--hash=sha256:1be3890fc1543f4fcfc0063e4baf5c036eb14bcf736dabdc6171ab017e0f1671 \
Expand Down Expand Up @@ -293,9 +293,9 @@ marshmallow-dataclass==8.7.1 \
marshmallow-oneofschema==3.1.1 \
--hash=sha256:68b4a57d0281a04ac25d4eb7a4c5865a57090a0a8fd30fd6362c8e833ac6a6d9 \
--hash=sha256:ff4cb2a488785ee8edd521a765682c2c80c78b9dc48894124531bdfa1ec9303b
mcp==1.6.0 \
--hash=sha256:7bd24c6ea042dbec44c754f100984d186620d8b841ec30f1b19eda9b93a634d0 \
--hash=sha256:d9324876de2c5637369f43161cd71eebfd803df5a95e46225cab8d280e366723
mcp==1.7.1 \
--hash=sha256:eb4f1f53bd717f75dda8a1416e00804b831a8f3c331e23447a03b78f04b43a6e \
--hash=sha256:f7e6108977db6d03418495426c7ace085ba2341b75197f8727f96f9cfd30057a
more-itertools==10.7.0 \
--hash=sha256:9fddd5403be01a94b204faadcff459ec3568cf110265d3c54323e1e866ad29d3 \
--hash=sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e
Expand Down Expand Up @@ -338,23 +338,23 @@ multidict==6.4.3 \
mypy-extensions==1.1.0 \
--hash=sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505 \
--hash=sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558
orjson==3.10.17 \
--hash=sha256:28eeae6a15243966962b658dfcf7bae9e7bb1f3260dfcf0370dbd41f5ff6058b \
--hash=sha256:37595318ac4ffb7d75b8d025b48ebe9203243bceb216a3b648d91c806163de35 \
--hash=sha256:53fdb906f7a22b9e6ece0b1bc5b5d7cccfb753646907c35383ecf6237b16d42a \
--hash=sha256:6addbf04eb07e51e7b4dba7ed5a2608ad45085c4abeacb133872efd37951d4cb \
--hash=sha256:70ea106d9450c71f969865eeb44132c68b716d2e68ee87add8f2d60651f748ec \
--hash=sha256:8924df38e1a8e4c0d94076ff9bc0d459cb2df6ba3627ec4355842da99a400a97 \
--hash=sha256:9ad6cf08e41dddc709fdf2dedfb1e4187e49e72436be71805003531037c2bcd6 \
--hash=sha256:a00b3252a7f337f2a33ce6ae0cb7923921f8024c6cd834d02b75be193c1efcee \
--hash=sha256:a4aac9de5b6cb356c56fa488c8ef77802f61dbdaa6a5fe9178edb750742d536f \
--hash=sha256:ae36abe17765dbe7cc4b46303bb093594739703ece97fd87b6bd421ea26d1c32 \
--hash=sha256:b1d17742f7ee4487103e9cbc3356d283291bab1956c511720ffca54c0befb255 \
--hash=sha256:b275ccd7b90a44e4624faaf675e45c959692f999e084c678ddd9d15e81a2321e \
--hash=sha256:c11841d5b5e1e5b1fed1b0ad177725b65a7ee73941189b9994ed98cf2fa03230 \
--hash=sha256:cee320b0c353c7bdd69c4e60b8e0329e5eaf085254904501f4f1d41a0e1077ba \
--hash=sha256:d8c8d5eb32d3276c7798b23bd2a97d8940f86ca4ae909d7528ab497d9ead0b04 \
--hash=sha256:fb1c9b14bd9c981ce62f0002d9798eca3c512b6931e5c050b3708a84fac8f7f4
orjson==3.10.18 \
--hash=sha256:187ec33bbec58c76dbd4066340067d9ece6e10067bb0cc074a21ae3300caa84e \
--hash=sha256:22748de2a07fcc8781a70edb887abf801bb6142e6236123ff93d12d92db3d406 \
--hash=sha256:303565c67a6c7b1f194c94632a4a39918e067bd6176a48bec697393865ce4f06 \
--hash=sha256:356b076f1662c9813d5fa56db7d63ccceef4c271b1fb3dd522aca291375fcf17 \
--hash=sha256:3a83c9954a4107b9acd10291b7f12a6b29e35e8d43a414799906ea10e75438e6 \
--hash=sha256:3d600be83fe4514944500fa8c2a0a77099025ec6482e8087d7659e891f23058a \
--hash=sha256:50c15557afb7f6d63bc6d6348e0337a880a04eaa9cd7c9d569bcb4e760a24753 \
--hash=sha256:559eb40a70a7494cd5beab2d73657262a74a2c59aff2068fdba8f0424ec5b39d \
--hash=sha256:6612787e5b0756a171c7d81ba245ef63a3533a637c335aa7fcb8e665f4a0966f \
--hash=sha256:7ac6bd7be0dcab5b702c9d43d25e70eb456dfd2e119d512447468f6405b4a69c \
--hash=sha256:86314fdb5053a2f5a5d881f03fca0219bfdf832912aa88d18676a5175c6916b5 \
--hash=sha256:9dca85398d6d093dd41dc0983cbf54ab8e6afd1c547b6b8a311643917fbf4e0c \
--hash=sha256:9f72f100cee8dde70100406d5c1abba515a7df926d4ed81e20a9730c062fe9ad \
--hash=sha256:e8da3947d92123eda795b68228cafe2724815621fe35e8e320a9e9593a4bcd53 \
--hash=sha256:f3c29eb9a81e2fbc6fd7ddcfba3e101ba92eaff455b8d602bf7511088bbc0eae \
--hash=sha256:f9f94cf6d3f9cd720d641f8399e390e7411487e493962213390d1ae45c7814fc
packaging==25.0 \
--hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \
--hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f
Expand Down Expand Up @@ -455,6 +455,9 @@ python-dotenv==1.1.0 \
python-json-logger==2.0.7 \
--hash=sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c \
--hash=sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd
python-multipart==0.0.20 \
--hash=sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104 \
--hash=sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13
pytz==2025.2 \
--hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \
--hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00
Expand Down Expand Up @@ -513,25 +516,25 @@ ruamel-yaml-clib==0.2.12 ; platform_python_implementation == 'CPython' \
--hash=sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d \
--hash=sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31 \
--hash=sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5
ruff==0.11.7 \
--hash=sha256:07f1496ad00a4a139f4de220b0c97da6d4c85e0e4aa9b2624167b7d4d44fd6b6 \
--hash=sha256:0a931d85959ceb77e92aea4bbedfded0a31534ce191252721128f77e5ae1f98a \
--hash=sha256:169027e31c52c0e36c44ae9a9c7db35e505fee0b39f8d9fca7274a6305295a92 \
--hash=sha256:2b19cdb9cf7dae00d5ee2e7c013540cdc3b31c4f281f1dacb5a799d610e90db4 \
--hash=sha256:305b93f9798aee582e91e34437810439acb28b5fc1fee6b8205c78c806845a94 \
--hash=sha256:4809df77de390a1c2077d9b7945d82f44b95d19ceccf0c287c56e4dc9b91ca64 \
--hash=sha256:49b888200a320dd96a68e86736cf531d6afba03e4f6cf098401406a257fcf3d6 \
--hash=sha256:64e0ee994c9e326b43539d133a36a455dbaab477bc84fe7bfbd528abe2f05c1e \
--hash=sha256:655089ad3224070736dc32844fde783454f8558e71f501cb207485fe4eee23d4 \
--hash=sha256:778c1e5d6f9e91034142dfd06110534ca13220bfaad5c3735f6cb844654f6177 \
--hash=sha256:7940665e74e7b65d427b82bffc1e46710ec7f30d58b4b2d5016e3f0321436502 \
--hash=sha256:a681db041ef55550c371f9cd52a3cf17a0da4c75d6bd691092dfc38170ebc4b6 \
--hash=sha256:bad82052311479a5865f52c76ecee5d468a58ba44fb23ee15079f17dd4c8fd63 \
--hash=sha256:d29e909d9a8d02f928d72ab7837b5cbc450a5bdf578ab9ebee3263d0a525091c \
--hash=sha256:d3d7d2e140a6fbbc09033bce65bd7ea29d6a0adeb90b8430262fbacd58c38ada \
--hash=sha256:dd1fb86b168ae349fb01dd497d83537b2c5541fe0626e70c786427dd8363aaee \
--hash=sha256:f25dfb853ad217e6e5f1924ae8a5b3f6709051a13e9dad18690de6c8ff299e26 \
--hash=sha256:f3a0c2e169e6b545f8e2dba185eabbd9db4f08880032e75aa0e285a6d3f48201
ruff==0.11.8 \
--hash=sha256:0eba551324733efc76116d9f3a0d52946bc2751f0cd30661564117d6fd60897c \
--hash=sha256:161eb4cff5cfefdb6c9b8b3671d09f7def2f960cee33481dd898caf2bcd02304 \
--hash=sha256:258f3585057508d317610e8a412788cf726efeefa2fec4dba4001d9e6f90d46c \
--hash=sha256:304432e4c4a792e3da85b7699feb3426a0908ab98bf29df22a31b0cdd098fac2 \
--hash=sha256:3dca977cc4fc8f66e89900fa415ffe4dbc2e969da9d7a54bfca81a128c5ac219 \
--hash=sha256:4d9aaa91035bdf612c8ee7266153bcf16005c7c7e2f5878406911c92a31633cb \
--hash=sha256:5b18caa297a786465cc511d7f8be19226acf9c0a1127e06e736cd4e1878c3ea2 \
--hash=sha256:6d742d10626f9004b781f4558154bb226620a7242080e11caeffab1a40e99df8 \
--hash=sha256:6e70d11043bef637c5617297bdedec9632af15d53ac1e1ba29c448da9341b0c4 \
--hash=sha256:727d01702f7c30baed3fc3a34901a640001a2828c793525043c29f7614994a8c \
--hash=sha256:7f024d32e62faad0f76b2d6afd141b8c171515e4fb91ce9fd6464335c81244e5 \
--hash=sha256:896a37516c594805e34020c4a7546c8f8a234b679a7716a3f08197f38913e1a3 \
--hash=sha256:ab86d22d3d721a40dd3ecbb5e86ab03b2e053bc93c700dc68d1c3346b36ce835 \
--hash=sha256:c1dba3135ca503727aa4648152c0fa67c3b1385d3dc81c75cd8a229c4b2a1458 \
--hash=sha256:c657fa987d60b104d2be8b052d66da0a2a88f9bd1d66b2254333e84ea2720c7f \
--hash=sha256:d365618d3ad747432e1ae50d61775b78c055fee5936d77fb4d92c6f559741948 \
--hash=sha256:f2e74b021d0de5eceb8bd32919f6ff8a9b40ee62ed97becd44993ae5b9949474 \
--hash=sha256:f9b5ef39820abc0f2c62111f7045009e46b275f5b99d5e59dda113c39b7f4f38
scalecodec==1.2.11 \
--hash=sha256:99a2cdbfccdcaf22bd86b86da55a730a2855514ad2309faef4a4a93ac6cbeb8d \
--hash=sha256:d15c94965f617caa25096f83a45f5f73031d05e6ee08d6039969f0a64fc35de1
Expand All @@ -547,9 +550,9 @@ sniffio==1.3.1 \
sqlparse==0.5.3 \
--hash=sha256:09f67787f56a0b16ecdbde1bfc7f5d9c3371ca683cfeaa8e6ff60b4807ec9272 \
--hash=sha256:cf2196ed3418f3ba5de6af7e82c694a9fbdbfecccdfc72e281548517081f16ca
sse-starlette==2.3.3 \
--hash=sha256:8b0a0ced04a329ff7341b01007580dd8cf71331cc21c0ccea677d500618da1e0 \
--hash=sha256:fdd47c254aad42907cfd5c5b83e2282be15be6c51197bf1a9b70b8e990522072
sse-starlette==2.3.4 \
--hash=sha256:0ffd6bed217cdbb74a84816437c609278003998b4991cd2e6872d0b35130e4d5 \
--hash=sha256:b8100694f3f892b133d0f7483acb7aacfcf6ed60f863b31947664b6dc74e529f
starknet-py==0.25.0 \
--hash=sha256:452f2c9ed5e235540209ec2042d22dcf79c6cec2a6850f5b518d61b3fada3706
starlette==0.46.2 \
Expand Down Expand Up @@ -596,7 +599,7 @@ tzlocal==5.3.1 \
urllib3==2.4.0 \
--hash=sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466 \
--hash=sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813
uvicorn==0.34.2 \
uvicorn==0.34.2 ; sys_platform != 'emscripten' \
--hash=sha256:0e929828f6186353a80b58ea719861d2629d766293b6d19baf086ba31d4f3328 \
--hash=sha256:deb49af569084536d269fe0a6d67e3754f104cf03aba7c11c40f01aadf33c403
uvloop==0.21.0 \
Expand Down
30 changes: 30 additions & 0 deletions src/dipdup/codegen/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,14 @@
from dipdup.config import HandlerConfig
from dipdup.config import IndexTemplateConfig
from dipdup.config._mixin import CallbackMixin
from dipdup.datasources import AbiDatasource
from dipdup.datasources import AbiJson
from dipdup.datasources import ContractConfigT
from dipdup.datasources import Datasource
from dipdup.datasources import DatasourceConfigT
from dipdup.exceptions import AbiNotAvailableError
from dipdup.exceptions import ConfigurationError
from dipdup.exceptions import DatasourceError
from dipdup.package import DEFAULT_ENV
from dipdup.package import KEEP_MARKER
from dipdup.package import PACKAGE_MARKER
Expand Down Expand Up @@ -224,6 +231,29 @@ async def _generate_type(self, schema_path: Path, force: bool) -> None:
def _cleanup_schemas(self) -> None:
rmtree(self.schemas_dir, ignore_errors=True)

async def _lookup_abi(
self,
contract: ContractConfigT,
datasources: list[AbiDatasource[DatasourceConfigT]],
) -> AbiJson:
"""For every contract goes over each datasourse and tries to obtain abi file.
If no ABI exists for any of the contracts - raises error.
"""
address = contract.address or contract.abi
if not address:
raise ConfigurationError(f'`address` or `abi` must be specified for contract `{contract.module_name}`')

for datasource in datasources:
try:
return await datasource.get_abi(address=address)
except DatasourceError as e:
_logger.warning('Failed to fetch ABI from `%s`: %s', datasource.name, e)

raise AbiNotAvailableError(
address=address,
typename=contract.module_name,
)


@final
class CommonCodeGenerator(_BaseCodeGenerator):
Expand Down
Loading