web3 7.11.0__tar.gz → 7.11.1__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 (363) hide show
  1. {web3-7.11.0/web3.egg-info → web3-7.11.1}/PKG-INFO +2 -15
  2. {web3-7.11.0 → web3-7.11.1}/pyproject.toml +1 -1
  3. {web3-7.11.0 → web3-7.11.1}/setup.py +1 -1
  4. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_websocket_provider.py +17 -1
  5. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_abi.py +1 -1
  6. web3-7.11.1/tests/core/utilities/test_construct_event_filter_params.py +329 -0
  7. {web3-7.11.0 → web3-7.11.1}/tests/integration/generate_fixtures/go_ethereum.py +15 -0
  8. web3-7.11.1/tests/integration/geth-1.15.11-fixture.zip +0 -0
  9. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/conftest.py +1 -1
  10. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/ambiguous_function_contract.py +3 -3
  11. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/arrays_contract.py +3 -3
  12. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/bytes_contracts.py +5 -5
  13. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/constructor_contracts.py +7 -7
  14. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/contract_caller_tester.py +3 -3
  15. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/emitter_contract.py +3 -3
  16. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/event_contracts.py +7 -7
  17. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/extended_resolver.py +3 -3
  18. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/fallback_function_contract.py +3 -3
  19. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +3 -3
  20. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/math_contract.py +3 -3
  21. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/offchain_lookup.py +3 -3
  22. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/offchain_resolver.py +3 -3
  23. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/panic_errors_contract.py +3 -3
  24. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/payable_tester.py +3 -3
  25. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/receive_function_contracts.py +5 -5
  26. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/reflector_contracts.py +3 -3
  27. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/revert_contract.py +3 -3
  28. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/simple_resolver.py +3 -3
  29. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/storage_contract.py +3 -3
  30. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/string_contract.py +3 -3
  31. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/tuple_contracts.py +5 -5
  32. {web3-7.11.0 → web3-7.11.1}/web3/_utils/decorators.py +2 -2
  33. {web3-7.11.0 → web3-7.11.1}/web3/_utils/error_formatters_utils.py +17 -0
  34. {web3-7.11.0 → web3-7.11.1}/web3/_utils/filters.py +39 -28
  35. {web3-7.11.0 → web3-7.11.1}/web3/_utils/method_formatters.py +2 -0
  36. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/eth_module.py +83 -34
  37. {web3-7.11.0 → web3-7.11.1}/web3/eth/async_eth.py +4 -0
  38. {web3-7.11.0 → web3-7.11.1}/web3/eth/eth.py +15 -2
  39. {web3-7.11.0 → web3-7.11.1}/web3/method.py +10 -2
  40. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/async_ipc.py +3 -1
  41. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/subscription_manager.py +1 -0
  42. {web3-7.11.0 → web3-7.11.1}/web3/utils/abi.py +1 -1
  43. {web3-7.11.0 → web3-7.11.1/web3.egg-info}/PKG-INFO +2 -15
  44. {web3-7.11.0 → web3-7.11.1}/web3.egg-info/SOURCES.txt +1 -3
  45. web3-7.11.0/tests/.DS_Store +0 -0
  46. web3-7.11.0/tests/core/utilities/test_construct_event_filter_params.py +0 -103
  47. web3-7.11.0/tests/integration/.DS_Store +0 -0
  48. web3-7.11.0/tests/integration/geth-1.15.5-fixture.zip +0 -0
  49. {web3-7.11.0 → web3-7.11.1}/LICENSE +0 -0
  50. {web3-7.11.0 → web3-7.11.1}/MANIFEST.in +0 -0
  51. {web3-7.11.0 → web3-7.11.1}/README.md +0 -0
  52. {web3-7.11.0 → web3-7.11.1}/ens/__init__.py +0 -0
  53. {web3-7.11.0 → web3-7.11.1}/ens/_normalization.py +0 -0
  54. {web3-7.11.0 → web3-7.11.1}/ens/abis.py +0 -0
  55. {web3-7.11.0 → web3-7.11.1}/ens/async_ens.py +0 -0
  56. {web3-7.11.0 → web3-7.11.1}/ens/auto.py +0 -0
  57. {web3-7.11.0 → web3-7.11.1}/ens/base_ens.py +0 -0
  58. {web3-7.11.0 → web3-7.11.1}/ens/constants.py +0 -0
  59. {web3-7.11.0 → web3-7.11.1}/ens/contract_data.py +0 -0
  60. {web3-7.11.0 → web3-7.11.1}/ens/ens.py +0 -0
  61. {web3-7.11.0 → web3-7.11.1}/ens/exceptions.py +0 -0
  62. {web3-7.11.0 → web3-7.11.1}/ens/specs/nf.json +0 -0
  63. {web3-7.11.0 → web3-7.11.1}/ens/specs/normalization_spec.json +0 -0
  64. {web3-7.11.0 → web3-7.11.1}/ens/utils.py +0 -0
  65. {web3-7.11.0 → web3-7.11.1}/scripts/release/test_package.py +0 -0
  66. {web3-7.11.0 → web3-7.11.1}/setup.cfg +0 -0
  67. {web3-7.11.0 → web3-7.11.1}/tests/__init__.py +0 -0
  68. {web3-7.11.0 → web3-7.11.1}/tests/beacon/test_async_beacon.py +0 -0
  69. {web3-7.11.0 → web3-7.11.1}/tests/beacon/test_beacon.py +0 -0
  70. {web3-7.11.0 → web3-7.11.1}/tests/conftest.py +0 -0
  71. {web3-7.11.0 → web3-7.11.1}/tests/core/admin-module/test_admin_addPeer.py +0 -0
  72. {web3-7.11.0 → web3-7.11.1}/tests/core/admin-module/test_admin_nodeInfo.py +0 -0
  73. {web3-7.11.0 → web3-7.11.1}/tests/core/admin-module/test_admin_peers.py +0 -0
  74. {web3-7.11.0 → web3-7.11.1}/tests/core/block-utils/test_select_method_for_block_identifier.py +0 -0
  75. {web3-7.11.0 → web3-7.11.1}/tests/core/caching-utils/test_generate_cache_key.py +0 -0
  76. {web3-7.11.0 → web3-7.11.1}/tests/core/caching-utils/test_request_caching.py +0 -0
  77. {web3-7.11.0 → web3-7.11.1}/tests/core/conftest.py +0 -0
  78. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/conftest.py +0 -0
  79. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_ambiguous_events.py +0 -0
  80. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_ambiguous_functions.py +0 -0
  81. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_attributes.py +0 -0
  82. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_build_transaction.py +0 -0
  83. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_call_interface.py +0 -0
  84. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_caller_interface.py +0 -0
  85. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_class_construction.py +0 -0
  86. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_constructor.py +0 -0
  87. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_constructor_encoding.py +0 -0
  88. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_deployment.py +0 -0
  89. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_estimate_gas.py +0 -0
  90. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_events.py +0 -0
  91. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_events_build_filter.py +0 -0
  92. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_example.py +0 -0
  93. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_init.py +0 -0
  94. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_method_abi_decoding.py +0 -0
  95. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_method_abi_encoding.py +0 -0
  96. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_method_to_argument_matching.py +0 -0
  97. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_panic_errors.py +0 -0
  98. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_transact_interface.py +0 -0
  99. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_contract_util_functions.py +0 -0
  100. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_extracting_event_data.py +0 -0
  101. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_extracting_event_data_old.py +0 -0
  102. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/test_offchain_lookup.py +0 -0
  103. {web3-7.11.0 → web3-7.11.1}/tests/core/contracts/utils.py +0 -0
  104. {web3-7.11.0 → web3-7.11.1}/tests/core/datastructures/test_datastructures.py +0 -0
  105. {web3-7.11.0 → web3-7.11.1}/tests/core/empty-object/test_empty_object_is_falsy.py +0 -0
  106. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/conftest.py +0 -0
  107. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_accounts.py +0 -0
  108. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_block_api.py +0 -0
  109. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_default_account_api.py +0 -0
  110. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_eth_contract.py +0 -0
  111. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_eth_fee_history.py +0 -0
  112. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_eth_filter.py +0 -0
  113. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_eth_properties.py +0 -0
  114. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_gas_pricing.py +0 -0
  115. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_poa.py +0 -0
  116. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-module/test_transactions.py +0 -0
  117. {web3-7.11.0 → web3-7.11.1}/tests/core/eth-tester-api/test_withdrawals.py +0 -0
  118. {web3-7.11.0 → web3-7.11.1}/tests/core/exceptions/test_exceptions.py +0 -0
  119. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/conftest.py +0 -0
  120. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_basic_filter_tests.py +0 -0
  121. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_contract_create_filter_topic_merging.py +0 -0
  122. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_contract_data_filters.py +0 -0
  123. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_contract_get_logs.py +0 -0
  124. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_contract_on_event_filtering.py +0 -0
  125. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_contract_past_event_filtering.py +0 -0
  126. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_contract_topic_filters.py +0 -0
  127. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_existing_filter_instance.py +0 -0
  128. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_filter_against_latest_blocks.py +0 -0
  129. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_filter_against_pending_transactions.py +0 -0
  130. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_filter_against_transaction_logs.py +0 -0
  131. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_filters_against_many_blocks.py +0 -0
  132. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/test_utils_functions.py +0 -0
  133. {web3-7.11.0 → web3-7.11.1}/tests/core/filtering/utils.py +0 -0
  134. {web3-7.11.0 → web3-7.11.1}/tests/core/gas-strategies/test_rpc_gas_pricing_strategies.py +0 -0
  135. {web3-7.11.0 → web3-7.11.1}/tests/core/gas-strategies/test_time_based_gas_price_strategy.py +0 -0
  136. {web3-7.11.0 → web3-7.11.1}/tests/core/manager/conftest.py +0 -0
  137. {web3-7.11.0 → web3-7.11.1}/tests/core/manager/test_default_middlewares.py +0 -0
  138. {web3-7.11.0 → web3-7.11.1}/tests/core/manager/test_middleware_can_be_stateful.py +0 -0
  139. {web3-7.11.0 → web3-7.11.1}/tests/core/manager/test_middleware_onion_api.py +0 -0
  140. {web3-7.11.0 → web3-7.11.1}/tests/core/manager/test_provider_property.py +0 -0
  141. {web3-7.11.0 → web3-7.11.1}/tests/core/manager/test_provider_request_wrapping.py +0 -0
  142. {web3-7.11.0 → web3-7.11.1}/tests/core/manager/test_response_formatters.py +0 -0
  143. {web3-7.11.0 → web3-7.11.1}/tests/core/method-class/test_method.py +0 -0
  144. {web3-7.11.0 → web3-7.11.1}/tests/core/method-class/test_result_formatters.py +0 -0
  145. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_attrdict_middleware.py +0 -0
  146. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_eth_tester_middleware.py +0 -0
  147. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_filter_middleware.py +0 -0
  148. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_formatting_middleware.py +0 -0
  149. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_gas_price_strategy.py +0 -0
  150. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_middleware.py +0 -0
  151. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_name_to_address_middleware.py +0 -0
  152. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_stalecheck.py +0 -0
  153. {web3-7.11.0 → web3-7.11.1}/tests/core/middleware/test_transaction_signing.py +0 -0
  154. {web3-7.11.0 → web3-7.11.1}/tests/core/module-class/test_module.py +0 -0
  155. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_async_http_provider.py +0 -0
  156. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_async_ipc_provider.py +0 -0
  157. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_async_tester_provider.py +0 -0
  158. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_auto_provider.py +0 -0
  159. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_base_provider.py +0 -0
  160. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_http_provider.py +0 -0
  161. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_http_request_retry.py +0 -0
  162. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_ipc_provider.py +0 -0
  163. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_legacy_websocket_provider.py +0 -0
  164. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_provider_init.py +0 -0
  165. {web3-7.11.0 → web3-7.11.1}/tests/core/providers/test_tester_provider.py +0 -0
  166. {web3-7.11.0 → web3-7.11.1}/tests/core/subscriptions/test_subscription_manager.py +0 -0
  167. {web3-7.11.0 → web3-7.11.1}/tests/core/subscriptions/test_subscriptions.py +0 -0
  168. {web3-7.11.0 → web3-7.11.1}/tests/core/test_library_files.py +0 -0
  169. {web3-7.11.0 → web3-7.11.1}/tests/core/testing-module/test_testing_mine.py +0 -0
  170. {web3-7.11.0 → web3-7.11.1}/tests/core/testing-module/test_testing_snapshot_and_revert.py +0 -0
  171. {web3-7.11.0 → web3-7.11.1}/tests/core/testing-module/test_testing_timeTravel.py +0 -0
  172. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/__init__.py +0 -0
  173. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/conftest.py +0 -0
  174. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_abi_filtering_by_argument_name.py +0 -0
  175. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_abi_is_encodable.py +0 -0
  176. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_abi_named_tree.py +0 -0
  177. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_address.py +0 -0
  178. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_async_transaction.py +0 -0
  179. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_attach_modules.py +0 -0
  180. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_attributedict.py +0 -0
  181. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_caching_utils.py +0 -0
  182. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_construct_event_data_set.py +0 -0
  183. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_construct_event_topics.py +0 -0
  184. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_datatypes.py +0 -0
  185. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_decorators.py +0 -0
  186. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_encoding.py +0 -0
  187. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_event_filter_builder.py +0 -0
  188. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_event_interface.py +0 -0
  189. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_fee_utils.py +0 -0
  190. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_formatters.py +0 -0
  191. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_http_session_manager.py +0 -0
  192. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_is_predefined_block_number.py +0 -0
  193. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_is_probably_enum.py +0 -0
  194. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_is_recognized_type.py +0 -0
  195. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_math.py +0 -0
  196. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_method_formatters.py +0 -0
  197. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_prepare_transaction_replacement.py +0 -0
  198. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_select_filter_method.py +0 -0
  199. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_threads.py +0 -0
  200. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_valid_transaction_params.py +0 -0
  201. {web3-7.11.0 → web3-7.11.1}/tests/core/utilities/test_validation.py +0 -0
  202. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_api.py +0 -0
  203. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_attach_modules.py +0 -0
  204. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_client_version.py +0 -0
  205. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_conversions.py +0 -0
  206. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_import_and_version.py +0 -0
  207. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_keccak.py +0 -0
  208. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_providers.py +0 -0
  209. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_strict_bytes_type_checking.py +0 -0
  210. {web3-7.11.0 → web3-7.11.1}/tests/core/web3-module/test_web3_inheritance.py +0 -0
  211. {web3-7.11.0 → web3-7.11.1}/tests/ens/conftest.py +0 -0
  212. {web3-7.11.0 → web3-7.11.1}/tests/ens/normalization/normalization_tests.json +0 -0
  213. {web3-7.11.0 → web3-7.11.1}/tests/ens/normalization/test_normalize_name_ensip15.py +0 -0
  214. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_ens.py +0 -0
  215. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_get_registry.py +0 -0
  216. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_get_text.py +0 -0
  217. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_nameprep.py +0 -0
  218. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_offchain_resolution.py +0 -0
  219. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_setup_address.py +0 -0
  220. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_setup_name.py +0 -0
  221. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_utils.py +0 -0
  222. {web3-7.11.0 → web3-7.11.1}/tests/ens/test_wildcard_resolution.py +0 -0
  223. {web3-7.11.0 → web3-7.11.1}/tests/integration/README.md +0 -0
  224. {web3-7.11.0 → web3-7.11.1}/tests/integration/common.py +0 -0
  225. {web3-7.11.0 → web3-7.11.1}/tests/integration/conftest.py +0 -0
  226. {web3-7.11.0 → web3-7.11.1}/tests/integration/generate_fixtures/common.py +0 -0
  227. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/__init__.py +0 -0
  228. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/common.py +0 -0
  229. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/test_goethereum_http.py +0 -0
  230. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/test_goethereum_ipc.py +0 -0
  231. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/test_goethereum_legacy_ws.py +0 -0
  232. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/test_goethereum_ws/__init__.py +0 -0
  233. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/test_goethereum_ws/conftest.py +0 -0
  234. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/test_goethereum_ws/test_async_await_w3.py +0 -0
  235. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/test_goethereum_ws/test_async_ctx_manager_w3.py +0 -0
  236. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/test_goethereum_ws/test_async_iterator_w3.py +0 -0
  237. {web3-7.11.0 → web3-7.11.1}/tests/integration/go_ethereum/utils.py +0 -0
  238. {web3-7.11.0 → web3-7.11.1}/tests/integration/test_ethereum_tester.py +0 -0
  239. {web3-7.11.0 → web3-7.11.1}/tests/utils.py +0 -0
  240. {web3-7.11.0 → web3-7.11.1}/web3/__init__.py +0 -0
  241. {web3-7.11.0 → web3-7.11.1}/web3/_utils/__init__.py +0 -0
  242. {web3-7.11.0 → web3-7.11.1}/web3/_utils/abi.py +0 -0
  243. {web3-7.11.0 → web3-7.11.1}/web3/_utils/abi_element_identifiers.py +0 -0
  244. {web3-7.11.0 → web3-7.11.1}/web3/_utils/async_caching.py +0 -0
  245. {web3-7.11.0 → web3-7.11.1}/web3/_utils/async_transactions.py +0 -0
  246. {web3-7.11.0 → web3-7.11.1}/web3/_utils/batching.py +0 -0
  247. {web3-7.11.0 → web3-7.11.1}/web3/_utils/blocks.py +0 -0
  248. {web3-7.11.0 → web3-7.11.1}/web3/_utils/caching/__init__.py +0 -0
  249. {web3-7.11.0 → web3-7.11.1}/web3/_utils/caching/caching_utils.py +0 -0
  250. {web3-7.11.0 → web3-7.11.1}/web3/_utils/caching/request_caching_validation.py +0 -0
  251. {web3-7.11.0 → web3-7.11.1}/web3/_utils/compat/__init__.py +0 -0
  252. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/__init__.py +0 -0
  253. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/compile_contracts.py +0 -0
  254. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/__init__.py +0 -0
  255. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contract_sources/contract_data/_custom_contract_data.py +0 -0
  256. {web3-7.11.0 → web3-7.11.1}/web3/_utils/contracts.py +0 -0
  257. {web3-7.11.0 → web3-7.11.1}/web3/_utils/datatypes.py +0 -0
  258. {web3-7.11.0 → web3-7.11.1}/web3/_utils/empty.py +0 -0
  259. {web3-7.11.0 → web3-7.11.1}/web3/_utils/encoding.py +0 -0
  260. {web3-7.11.0 → web3-7.11.1}/web3/_utils/ens.py +0 -0
  261. {web3-7.11.0 → web3-7.11.1}/web3/_utils/events.py +0 -0
  262. {web3-7.11.0 → web3-7.11.1}/web3/_utils/fee_utils.py +0 -0
  263. {web3-7.11.0 → web3-7.11.1}/web3/_utils/formatters.py +0 -0
  264. {web3-7.11.0 → web3-7.11.1}/web3/_utils/http.py +0 -0
  265. {web3-7.11.0 → web3-7.11.1}/web3/_utils/http_session_manager.py +0 -0
  266. {web3-7.11.0 → web3-7.11.1}/web3/_utils/hypothesis.py +0 -0
  267. {web3-7.11.0 → web3-7.11.1}/web3/_utils/math.py +0 -0
  268. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module.py +0 -0
  269. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/__init__.py +0 -0
  270. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/go_ethereum_admin_module.py +0 -0
  271. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/go_ethereum_debug_module.py +0 -0
  272. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/go_ethereum_txpool_module.py +0 -0
  273. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/module_testing_utils.py +0 -0
  274. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/net_module.py +0 -0
  275. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/persistent_connection_provider.py +0 -0
  276. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/utils.py +0 -0
  277. {web3-7.11.0 → web3-7.11.1}/web3/_utils/module_testing/web3_module.py +0 -0
  278. {web3-7.11.0 → web3-7.11.1}/web3/_utils/normalizers.py +0 -0
  279. {web3-7.11.0 → web3-7.11.1}/web3/_utils/rpc_abi.py +0 -0
  280. {web3-7.11.0 → web3-7.11.1}/web3/_utils/threads.py +0 -0
  281. {web3-7.11.0 → web3-7.11.1}/web3/_utils/transactions.py +0 -0
  282. {web3-7.11.0 → web3-7.11.1}/web3/_utils/type_conversion.py +0 -0
  283. {web3-7.11.0 → web3-7.11.1}/web3/_utils/utility_methods.py +0 -0
  284. {web3-7.11.0 → web3-7.11.1}/web3/_utils/validation.py +0 -0
  285. {web3-7.11.0 → web3-7.11.1}/web3/_utils/windows.py +0 -0
  286. {web3-7.11.0 → web3-7.11.1}/web3/auto/__init__.py +0 -0
  287. {web3-7.11.0 → web3-7.11.1}/web3/auto/gethdev.py +0 -0
  288. {web3-7.11.0 → web3-7.11.1}/web3/beacon/__init__.py +0 -0
  289. {web3-7.11.0 → web3-7.11.1}/web3/beacon/api_endpoints.py +0 -0
  290. {web3-7.11.0 → web3-7.11.1}/web3/beacon/async_beacon.py +0 -0
  291. {web3-7.11.0 → web3-7.11.1}/web3/beacon/beacon.py +0 -0
  292. {web3-7.11.0 → web3-7.11.1}/web3/constants.py +0 -0
  293. {web3-7.11.0 → web3-7.11.1}/web3/contract/__init__.py +0 -0
  294. {web3-7.11.0 → web3-7.11.1}/web3/contract/async_contract.py +0 -0
  295. {web3-7.11.0 → web3-7.11.1}/web3/contract/base_contract.py +0 -0
  296. {web3-7.11.0 → web3-7.11.1}/web3/contract/contract.py +0 -0
  297. {web3-7.11.0 → web3-7.11.1}/web3/contract/utils.py +0 -0
  298. {web3-7.11.0 → web3-7.11.1}/web3/datastructures.py +0 -0
  299. {web3-7.11.0 → web3-7.11.1}/web3/eth/__init__.py +0 -0
  300. {web3-7.11.0 → web3-7.11.1}/web3/eth/base_eth.py +0 -0
  301. {web3-7.11.0 → web3-7.11.1}/web3/exceptions.py +0 -0
  302. {web3-7.11.0 → web3-7.11.1}/web3/gas_strategies/__init__.py +0 -0
  303. {web3-7.11.0 → web3-7.11.1}/web3/gas_strategies/rpc.py +0 -0
  304. {web3-7.11.0 → web3-7.11.1}/web3/gas_strategies/time_based.py +0 -0
  305. {web3-7.11.0 → web3-7.11.1}/web3/geth.py +0 -0
  306. {web3-7.11.0 → web3-7.11.1}/web3/logs.py +0 -0
  307. {web3-7.11.0 → web3-7.11.1}/web3/main.py +0 -0
  308. {web3-7.11.0 → web3-7.11.1}/web3/manager.py +0 -0
  309. {web3-7.11.0 → web3-7.11.1}/web3/middleware/__init__.py +0 -0
  310. {web3-7.11.0 → web3-7.11.1}/web3/middleware/attrdict.py +0 -0
  311. {web3-7.11.0 → web3-7.11.1}/web3/middleware/base.py +0 -0
  312. {web3-7.11.0 → web3-7.11.1}/web3/middleware/buffered_gas_estimate.py +0 -0
  313. {web3-7.11.0 → web3-7.11.1}/web3/middleware/filter.py +0 -0
  314. {web3-7.11.0 → web3-7.11.1}/web3/middleware/formatting.py +0 -0
  315. {web3-7.11.0 → web3-7.11.1}/web3/middleware/gas_price_strategy.py +0 -0
  316. {web3-7.11.0 → web3-7.11.1}/web3/middleware/names.py +0 -0
  317. {web3-7.11.0 → web3-7.11.1}/web3/middleware/proof_of_authority.py +0 -0
  318. {web3-7.11.0 → web3-7.11.1}/web3/middleware/pythonic.py +0 -0
  319. {web3-7.11.0 → web3-7.11.1}/web3/middleware/signing.py +0 -0
  320. {web3-7.11.0 → web3-7.11.1}/web3/middleware/stalecheck.py +0 -0
  321. {web3-7.11.0 → web3-7.11.1}/web3/middleware/validation.py +0 -0
  322. {web3-7.11.0 → web3-7.11.1}/web3/module.py +0 -0
  323. {web3-7.11.0 → web3-7.11.1}/web3/net.py +0 -0
  324. {web3-7.11.0 → web3-7.11.1}/web3/providers/__init__.py +0 -0
  325. {web3-7.11.0 → web3-7.11.1}/web3/providers/async_base.py +0 -0
  326. {web3-7.11.0 → web3-7.11.1}/web3/providers/auto.py +0 -0
  327. {web3-7.11.0 → web3-7.11.1}/web3/providers/base.py +0 -0
  328. {web3-7.11.0 → web3-7.11.1}/web3/providers/eth_tester/__init__.py +0 -0
  329. {web3-7.11.0 → web3-7.11.1}/web3/providers/eth_tester/defaults.py +0 -0
  330. {web3-7.11.0 → web3-7.11.1}/web3/providers/eth_tester/main.py +0 -0
  331. {web3-7.11.0 → web3-7.11.1}/web3/providers/eth_tester/middleware.py +0 -0
  332. {web3-7.11.0 → web3-7.11.1}/web3/providers/ipc.py +0 -0
  333. {web3-7.11.0 → web3-7.11.1}/web3/providers/legacy_websocket.py +0 -0
  334. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/__init__.py +0 -0
  335. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/persistent.py +0 -0
  336. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/persistent_connection.py +0 -0
  337. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/request_processor.py +0 -0
  338. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/subscription_container.py +0 -0
  339. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/utils.py +0 -0
  340. {web3-7.11.0 → web3-7.11.1}/web3/providers/persistent/websocket.py +0 -0
  341. {web3-7.11.0 → web3-7.11.1}/web3/providers/rpc/__init__.py +0 -0
  342. {web3-7.11.0 → web3-7.11.1}/web3/providers/rpc/async_rpc.py +0 -0
  343. {web3-7.11.0 → web3-7.11.1}/web3/providers/rpc/rpc.py +0 -0
  344. {web3-7.11.0 → web3-7.11.1}/web3/providers/rpc/utils.py +0 -0
  345. {web3-7.11.0 → web3-7.11.1}/web3/py.typed +0 -0
  346. {web3-7.11.0 → web3-7.11.1}/web3/scripts/__init__.py +0 -0
  347. {web3-7.11.0 → web3-7.11.1}/web3/scripts/install_pre_releases.py +0 -0
  348. {web3-7.11.0 → web3-7.11.1}/web3/scripts/parse_pygeth_version.py +0 -0
  349. {web3-7.11.0 → web3-7.11.1}/web3/scripts/release/__init__.py +0 -0
  350. {web3-7.11.0 → web3-7.11.1}/web3/scripts/release/test_package.py +0 -0
  351. {web3-7.11.0 → web3-7.11.1}/web3/testing.py +0 -0
  352. {web3-7.11.0 → web3-7.11.1}/web3/tracing.py +0 -0
  353. {web3-7.11.0 → web3-7.11.1}/web3/types.py +0 -0
  354. {web3-7.11.0 → web3-7.11.1}/web3/utils/__init__.py +0 -0
  355. {web3-7.11.0 → web3-7.11.1}/web3/utils/address.py +0 -0
  356. {web3-7.11.0 → web3-7.11.1}/web3/utils/async_exception_handling.py +0 -0
  357. {web3-7.11.0 → web3-7.11.1}/web3/utils/caching.py +0 -0
  358. {web3-7.11.0 → web3-7.11.1}/web3/utils/exception_handling.py +0 -0
  359. {web3-7.11.0 → web3-7.11.1}/web3/utils/subscriptions.py +0 -0
  360. {web3-7.11.0 → web3-7.11.1}/web3.egg-info/dependency_links.txt +0 -0
  361. {web3-7.11.0 → web3-7.11.1}/web3.egg-info/not-zip-safe +0 -0
  362. {web3-7.11.0 → web3-7.11.1}/web3.egg-info/requires.txt +0 -0
  363. {web3-7.11.0 → web3-7.11.1}/web3.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.1
2
2
  Name: web3
3
- Version: 7.11.0
3
+ Version: 7.11.1
4
4
  Summary: web3: A Python library for interacting with Ethereum
5
5
  Home-page: https://github.com/ethereum/web3.py
6
6
  Author: The Ethereum Foundation
@@ -78,19 +78,6 @@ Requires-Dist: mypy==1.10.0; extra == "test"
78
78
  Requires-Dist: pre-commit>=3.4.0; extra == "test"
79
79
  Requires-Dist: eth-tester[py-evm]<0.14.0b1,>=0.13.0b1; extra == "test"
80
80
  Requires-Dist: py-geth>=5.1.0; extra == "test"
81
- Dynamic: author
82
- Dynamic: author-email
83
- Dynamic: classifier
84
- Dynamic: description
85
- Dynamic: description-content-type
86
- Dynamic: home-page
87
- Dynamic: keywords
88
- Dynamic: license
89
- Dynamic: license-file
90
- Dynamic: provides-extra
91
- Dynamic: requires-dist
92
- Dynamic: requires-python
93
- Dynamic: summary
94
81
 
95
82
  # web3.py
96
83
 
@@ -127,7 +127,7 @@ name = "Removals"
127
127
  showcontent = true
128
128
 
129
129
  [tool.bumpversion]
130
- current_version = "7.11.0"
130
+ current_version = "7.11.1"
131
131
  parse = """
132
132
  (?P<major>\\d+)
133
133
  \\.(?P<minor>\\d+)
@@ -55,7 +55,7 @@ with open("./README.md") as readme:
55
55
  setup(
56
56
  name="web3",
57
57
  # *IMPORTANT*: Don't manually change the version here. See Contributing docs for the release process.
58
- version="7.11.0",
58
+ version="7.11.1",
59
59
  description="""web3: A Python library for interacting with Ethereum""",
60
60
  long_description=long_description,
61
61
  long_description_content_type="text/markdown",
@@ -397,7 +397,7 @@ async def test_async_iterator_pattern_exception_handling_for_subscriptions():
397
397
 
398
398
 
399
399
  @pytest.mark.asyncio
400
- async def test_connection_closed_ok_breaks_message_iteration():
400
+ async def test_connection_closed_ok_breaks_process_subscriptions_iteration():
401
401
  with patch(
402
402
  "web3.providers.persistent.websocket.connect",
403
403
  new=lambda *_1, **_2: WebSocketMessageStreamMock(
@@ -409,6 +409,22 @@ async def test_connection_closed_ok_breaks_message_iteration():
409
409
  pytest.fail("Should not reach this point.")
410
410
 
411
411
 
412
+ @pytest.mark.asyncio
413
+ async def test_connection_closed_ok_breaks_handle_subscriptions_iteration():
414
+ with patch(
415
+ "web3.providers.persistent.websocket.connect",
416
+ new=lambda *_1, **_2: WebSocketMessageStreamMock(
417
+ raise_exception=ConnectionClosedOK(None, None)
418
+ ),
419
+ ):
420
+ w3 = await AsyncWeb3(WebSocketProvider("ws://mocked"))
421
+ # would fail with a ``TimeoutError`` if the iteration did not break properly
422
+ # on ``ConnectionClosedOK``
423
+ await asyncio.wait_for(
424
+ w3.subscription_manager.handle_subscriptions(run_forever=True), timeout=1
425
+ )
426
+
427
+
412
428
  @pytest.mark.asyncio
413
429
  async def test_listener_task_breaks_out_of_stream_when_cancelled():
414
430
  with patch(
@@ -829,7 +829,7 @@ def test_get_event_abi(event_name: str, input_args: Sequence[ABIComponent]) -> N
829
829
 
830
830
  with pytest.warns(
831
831
  DeprecationWarning,
832
- match="get_event_abi is deprecated in favor of get_abi_element",
832
+ match="get_event_abi is deprecated: use get_abi_element instead",
833
833
  ):
834
834
  assert (
835
835
  get_event_abi(contract_abi, event_name, input_names) == expected_event_abi
@@ -0,0 +1,329 @@
1
+ import pytest
2
+
3
+ from web3._utils.filters import (
4
+ construct_event_filter_params,
5
+ )
6
+ from web3.exceptions import (
7
+ InvalidAddress,
8
+ Web3ValueError,
9
+ )
10
+
11
+
12
+ def hex_and_pad(i):
13
+ unpadded_hex_value = hex(i).rstrip("L")
14
+ return "0x" + unpadded_hex_value[2:].zfill(64)
15
+
16
+
17
+ @pytest.fixture
18
+ def event_abi():
19
+ return {
20
+ "anonymous": False,
21
+ "inputs": [
22
+ {"indexed": False, "name": "arg0", "type": "uint256"},
23
+ {"indexed": True, "name": "arg1", "type": "uint256"},
24
+ ],
25
+ "name": "Event_1",
26
+ "type": "event",
27
+ }
28
+
29
+
30
+ @pytest.mark.parametrize(
31
+ "fn_kwargs,expected",
32
+ (
33
+ pytest.param(
34
+ {},
35
+ {
36
+ "topics": [
37
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
38
+ ],
39
+ },
40
+ id="no-args",
41
+ ),
42
+ pytest.param(
43
+ {"topics": ["should-overwrite-topics"]},
44
+ {"topics": ["should-overwrite-topics"]},
45
+ id="overwrite-topics",
46
+ ),
47
+ pytest.param(
48
+ {"address": None},
49
+ {
50
+ "topics": [
51
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
52
+ ],
53
+ },
54
+ id="no-address",
55
+ ),
56
+ pytest.param(
57
+ {"contract_address": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601"},
58
+ {
59
+ "topics": [
60
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
61
+ ],
62
+ "address": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
63
+ },
64
+ id="contract_address-string",
65
+ ),
66
+ pytest.param(
67
+ {
68
+ "contract_address": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
69
+ "address": "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
70
+ },
71
+ {
72
+ "topics": [
73
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
74
+ ],
75
+ "address": [
76
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
77
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
78
+ ],
79
+ },
80
+ id="address-with-contract_address",
81
+ ),
82
+ pytest.param(
83
+ {
84
+ "contract_address": ["0xd3CdA913deB6f67967B99D67aCDFa1712C293601"],
85
+ "address": ["0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413"],
86
+ },
87
+ {
88
+ "topics": [
89
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
90
+ ],
91
+ "address": [
92
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
93
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
94
+ ],
95
+ },
96
+ id="single-item-address-list-with-contract_address-list",
97
+ ),
98
+ pytest.param(
99
+ {"address": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601"},
100
+ {
101
+ "topics": [
102
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
103
+ ],
104
+ "address": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
105
+ },
106
+ id="address-string",
107
+ ),
108
+ pytest.param(
109
+ {"address": b"\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9["},
110
+ {
111
+ "topics": [
112
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
113
+ ],
114
+ "address": b"\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9[",
115
+ },
116
+ id="address-bytes",
117
+ ),
118
+ pytest.param(
119
+ {
120
+ "contract_address": b"\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9[", # noqa: E501
121
+ "address": [
122
+ b"\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9[",
123
+ b"\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9[",
124
+ ],
125
+ },
126
+ {
127
+ "topics": [
128
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
129
+ ],
130
+ "address": b"\xf2\xe2F\xbbv\xdf\x87l\xef\x8b8\xae\x84\x13\x0fOU\xde9[",
131
+ },
132
+ id="address-bytes-list",
133
+ ),
134
+ pytest.param(
135
+ {"address": ["0xd3CdA913deB6f67967B99D67aCDFa1712C293601"]},
136
+ {
137
+ "topics": [
138
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
139
+ ],
140
+ "address": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
141
+ },
142
+ id="address-list",
143
+ ),
144
+ pytest.param(
145
+ {
146
+ "address": [
147
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
148
+ "0x1234567890123456789012345678901234567890",
149
+ ]
150
+ },
151
+ {
152
+ "topics": [
153
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
154
+ ],
155
+ "address": [
156
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
157
+ "0x1234567890123456789012345678901234567890",
158
+ ],
159
+ },
160
+ id="multiple-address",
161
+ ),
162
+ pytest.param(
163
+ {
164
+ "address": "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
165
+ "contract_address": ["0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413"],
166
+ },
167
+ {
168
+ "topics": [
169
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
170
+ ],
171
+ "address": [
172
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
173
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
174
+ ],
175
+ },
176
+ id="one-address-with-multiple-contract_address",
177
+ ),
178
+ pytest.param(
179
+ {
180
+ "address": [
181
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
182
+ "0x1234567890123456789012345678901234567890",
183
+ ],
184
+ "contract_address": "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
185
+ },
186
+ {
187
+ "topics": [
188
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
189
+ ],
190
+ "address": [
191
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
192
+ "0x1234567890123456789012345678901234567890",
193
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
194
+ ],
195
+ },
196
+ id="multiple-address-with-one-contract_address",
197
+ ),
198
+ pytest.param(
199
+ {
200
+ "address": [
201
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
202
+ "0x1234567890123456789012345678901234567890",
203
+ ],
204
+ "contract_address": [
205
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
206
+ "0x1234567890123456789012345678901234567890",
207
+ ],
208
+ },
209
+ {
210
+ "topics": [
211
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
212
+ ],
213
+ "address": [
214
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
215
+ "0x1234567890123456789012345678901234567890",
216
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
217
+ ],
218
+ },
219
+ id="multiple-address-with-multiple-contract_address",
220
+ ),
221
+ pytest.param(
222
+ {
223
+ "contract_address": "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
224
+ "topics": [
225
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
226
+ ],
227
+ "from_block": "latest",
228
+ "to_block": "latest",
229
+ "address": [
230
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
231
+ "0x1234567890123456789012345678901234567890",
232
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
233
+ ],
234
+ },
235
+ {
236
+ "topics": [
237
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
238
+ ],
239
+ "address": [
240
+ "0xd3CdA913deB6f67967B99D67aCDFa1712C293601",
241
+ "0x1234567890123456789012345678901234567890",
242
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
243
+ ],
244
+ "fromBlock": "latest",
245
+ "toBlock": "latest",
246
+ },
247
+ id="all-arguments-with-address-list",
248
+ ),
249
+ ),
250
+ )
251
+ def test_construct_event_filter_params(w3, event_abi, fn_kwargs, expected):
252
+ _, filter_params = construct_event_filter_params(event_abi, w3.codec, **fn_kwargs)
253
+ # Ensure that the filter_params contains the expected keys
254
+ assert (
255
+ filter_params.keys() == expected.keys()
256
+ ), f"Keys don't match. Expected {set(expected.keys())}, got {set(filter_params.keys())}" # noqa: E501
257
+ # Verify all values in filter_params match the expected values
258
+ for key, value in expected.items():
259
+ if isinstance(value, list) and isinstance(filter_params[key], list):
260
+ assert sorted(filter_params[key]) == sorted(
261
+ value
262
+ ), f"Expected {key}={value}, got {key}={filter_params.get(key)}"
263
+ else:
264
+ assert (
265
+ filter_params[key] == value
266
+ ), f"Expected {key}={value}, got {key}={filter_params.get(key)}"
267
+
268
+
269
+ @pytest.mark.parametrize(
270
+ "fn_kwargs, expected_exception",
271
+ [
272
+ pytest.param(
273
+ {
274
+ "contract_address": "0xbb9bc244d798123fde783fcc1c72d3bb8c189413",
275
+ "topics": [
276
+ "0xb470a829ed7792f06947f0ca3730a570cb378329ddcf09f2b4efabd6326f51f6"
277
+ ],
278
+ "address": [
279
+ "0xd3cda913deb6f67967b99d67acdfa1712c293601",
280
+ "0x1234567890123456789012345678901234567890",
281
+ "0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413",
282
+ ],
283
+ "from_block": 1,
284
+ "to_block": 2,
285
+ },
286
+ InvalidAddress,
287
+ id="invalid-checksum-address",
288
+ ),
289
+ pytest.param(
290
+ {
291
+ "contract_address": "0xbb9bc244d798123fde783fcc1c72d3bb8c189413",
292
+ },
293
+ InvalidAddress,
294
+ id="invalid-checksum-contract-address",
295
+ ),
296
+ pytest.param(
297
+ {"address": {"invalid": "0x1234567890123456789012345678901234567890"}},
298
+ Web3ValueError,
299
+ id="unsupported-type-exception",
300
+ ),
301
+ ],
302
+ )
303
+ def test_construct_event_filter_params_exceptions(
304
+ w3, event_abi, fn_kwargs, expected_exception
305
+ ):
306
+ with pytest.raises(expected_exception):
307
+ construct_event_filter_params(event_abi, w3.codec, **fn_kwargs)
308
+
309
+
310
+ @pytest.mark.parametrize(
311
+ "fn_kwargs,expected",
312
+ (
313
+ ({}, [[]]),
314
+ ({"argument_filters": {"arg0": 1}}, [[hex_and_pad(1)]]),
315
+ ({"argument_filters": {"arg0": [1]}}, [[hex_and_pad(1)]]),
316
+ (
317
+ {"argument_filters": {"arg0": [1, 2]}},
318
+ [
319
+ [hex_and_pad(1)],
320
+ [hex_and_pad(2)],
321
+ ],
322
+ ),
323
+ ),
324
+ )
325
+ def test_construct_event_filter_params_for_data_filters(
326
+ w3, event_abi, fn_kwargs, expected
327
+ ):
328
+ actual, _ = construct_event_filter_params(event_abi, w3.codec, **fn_kwargs)
329
+ assert actual == expected
@@ -438,6 +438,20 @@ def update_circleci_geth_version(new_version):
438
438
  update_geth_version_string(changes, new_version, change_next_line=True)
439
439
 
440
440
 
441
+ def remove_old_fixtures(current_geth_version):
442
+ """
443
+ Remove any geth fixture files that are not for the current version.
444
+ """
445
+ for file in os.listdir("./tests/integration"):
446
+ if (
447
+ file.startswith("geth-")
448
+ and file.endswith("-fixture.zip")
449
+ and current_geth_version not in file
450
+ ):
451
+ os.remove(os.path.join("./tests/integration", file))
452
+ print(f"Removed old fixture: {file}")
453
+
454
+
441
455
  if __name__ == "__main__":
442
456
  geth_binary = os.environ.get("GETH_BINARY", None)
443
457
  if not geth_binary:
@@ -445,6 +459,7 @@ if __name__ == "__main__":
445
459
 
446
460
  geth_version = re.search(r"geth-v([\d.]+)/", geth_binary).group(1)
447
461
  generate_go_ethereum_fixture(f"./tests/integration/geth-{geth_version}-fixture")
462
+ remove_old_fixtures(geth_version)
448
463
  update_circleci_geth_version(geth_version)
449
464
  update_fixture_generation_version(geth_version)
450
465
  update_doc_version(geth_version)
@@ -35,7 +35,7 @@ from .utils import (
35
35
  )
36
36
 
37
37
  KEYFILE_PW = "web3py-test"
38
- GETH_FIXTURE_ZIP = "geth-1.15.5-fixture.zip"
38
+ GETH_FIXTURE_ZIP = "geth-1.15.11-fixture.zip"
39
39
 
40
40
 
41
41
  @pytest.fixture
@@ -1,11 +1,11 @@
1
1
  """
2
2
  Generated by `compile_contracts.py` script.
3
- Compiled with Solidity v0.8.29.
3
+ Compiled with Solidity v0.8.30.
4
4
  """
5
5
 
6
6
  # source: web3/_utils/contract_sources/AmbiguousFunctionContract.sol:AmbiguousFunctionContract # noqa: E501
7
- AMBIGUOUS_FUNCTION_CONTRACT_BYTECODE = "0x6080604052348015600e575f5ffd5b5061044a8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631626ba7e1461004357806320c13b0b14610073578063d482bb47146100a3575b5f5ffd5b61005d60048036038101906100589190610293565b6100c1565b60405161006a9190610305565b60405180910390f35b61008d6004803603810190610088919061031e565b6100cb565b60405161009a9190610305565b60405180910390f35b6100ab6100d6565b6040516100b891906103f4565b60405180910390f35b5f5f905092915050565b5f6001905092915050565b60606040518060400160405280600581526020017f76616c6964000000000000000000000000000000000000000000000000000000815250905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61013681610124565b8114610140575f5ffd5b50565b5f813590506101518161012d565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101a58261015f565b810181811067ffffffffffffffff821117156101c4576101c361016f565b5b80604052505050565b5f6101d6610113565b90506101e2828261019c565b919050565b5f67ffffffffffffffff8211156102015761020061016f565b5b61020a8261015f565b9050602081019050919050565b828183375f83830152505050565b5f610237610232846101e7565b6101cd565b9050828152602081018484840111156102535761025261015b565b5b61025e848285610217565b509392505050565b5f82601f83011261027a57610279610157565b5b813561028a848260208601610225565b91505092915050565b5f5f604083850312156102a9576102a861011c565b5b5f6102b685828601610143565b925050602083013567ffffffffffffffff8111156102d7576102d6610120565b5b6102e385828601610266565b9150509250929050565b5f819050919050565b6102ff816102ed565b82525050565b5f6020820190506103185f8301846102f6565b92915050565b5f5f604083850312156103345761033361011c565b5b5f83013567ffffffffffffffff81111561035157610350610120565b5b61035d85828601610266565b925050602083013567ffffffffffffffff81111561037e5761037d610120565b5b61038a85828601610266565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6103c682610394565b6103d0818561039e565b93506103e08185602086016103ae565b6103e98161015f565b840191505092915050565b5f6020820190508181035f83015261040c81846103bc565b90509291505056fea26469706673582212205f971baedc113543111beb81b888f54c9cdd66e9b89d42b23259054884d7728364736f6c634300081d0033" # noqa: E501
8
- AMBIGUOUS_FUNCTION_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631626ba7e1461004357806320c13b0b14610073578063d482bb47146100a3575b5f5ffd5b61005d60048036038101906100589190610293565b6100c1565b60405161006a9190610305565b60405180910390f35b61008d6004803603810190610088919061031e565b6100cb565b60405161009a9190610305565b60405180910390f35b6100ab6100d6565b6040516100b891906103f4565b60405180910390f35b5f5f905092915050565b5f6001905092915050565b60606040518060400160405280600581526020017f76616c6964000000000000000000000000000000000000000000000000000000815250905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61013681610124565b8114610140575f5ffd5b50565b5f813590506101518161012d565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101a58261015f565b810181811067ffffffffffffffff821117156101c4576101c361016f565b5b80604052505050565b5f6101d6610113565b90506101e2828261019c565b919050565b5f67ffffffffffffffff8211156102015761020061016f565b5b61020a8261015f565b9050602081019050919050565b828183375f83830152505050565b5f610237610232846101e7565b6101cd565b9050828152602081018484840111156102535761025261015b565b5b61025e848285610217565b509392505050565b5f82601f83011261027a57610279610157565b5b813561028a848260208601610225565b91505092915050565b5f5f604083850312156102a9576102a861011c565b5b5f6102b685828601610143565b925050602083013567ffffffffffffffff8111156102d7576102d6610120565b5b6102e385828601610266565b9150509250929050565b5f819050919050565b6102ff816102ed565b82525050565b5f6020820190506103185f8301846102f6565b92915050565b5f5f604083850312156103345761033361011c565b5b5f83013567ffffffffffffffff81111561035157610350610120565b5b61035d85828601610266565b925050602083013567ffffffffffffffff81111561037e5761037d610120565b5b61038a85828601610266565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6103c682610394565b6103d0818561039e565b93506103e08185602086016103ae565b6103e98161015f565b840191505092915050565b5f6020820190508181035f83015261040c81846103bc565b90509291505056fea26469706673582212205f971baedc113543111beb81b888f54c9cdd66e9b89d42b23259054884d7728364736f6c634300081d0033" # noqa: E501
7
+ AMBIGUOUS_FUNCTION_CONTRACT_BYTECODE = "0x6080604052348015600e575f5ffd5b5061044a8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631626ba7e1461004357806320c13b0b14610073578063d482bb47146100a3575b5f5ffd5b61005d60048036038101906100589190610293565b6100c1565b60405161006a9190610305565b60405180910390f35b61008d6004803603810190610088919061031e565b6100cb565b60405161009a9190610305565b60405180910390f35b6100ab6100d6565b6040516100b891906103f4565b60405180910390f35b5f5f905092915050565b5f6001905092915050565b60606040518060400160405280600581526020017f76616c6964000000000000000000000000000000000000000000000000000000815250905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61013681610124565b8114610140575f5ffd5b50565b5f813590506101518161012d565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101a58261015f565b810181811067ffffffffffffffff821117156101c4576101c361016f565b5b80604052505050565b5f6101d6610113565b90506101e2828261019c565b919050565b5f67ffffffffffffffff8211156102015761020061016f565b5b61020a8261015f565b9050602081019050919050565b828183375f83830152505050565b5f610237610232846101e7565b6101cd565b9050828152602081018484840111156102535761025261015b565b5b61025e848285610217565b509392505050565b5f82601f83011261027a57610279610157565b5b813561028a848260208601610225565b91505092915050565b5f5f604083850312156102a9576102a861011c565b5b5f6102b685828601610143565b925050602083013567ffffffffffffffff8111156102d7576102d6610120565b5b6102e385828601610266565b9150509250929050565b5f819050919050565b6102ff816102ed565b82525050565b5f6020820190506103185f8301846102f6565b92915050565b5f5f604083850312156103345761033361011c565b5b5f83013567ffffffffffffffff81111561035157610350610120565b5b61035d85828601610266565b925050602083013567ffffffffffffffff81111561037e5761037d610120565b5b61038a85828601610266565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6103c682610394565b6103d0818561039e565b93506103e08185602086016103ae565b6103e98161015f565b840191505092915050565b5f6020820190508181035f83015261040c81846103bc565b90509291505056fea26469706673582212207771e80e03817222551c15a244685f02dd958991f78b46e6373f839b286c0be264736f6c634300081e0033" # noqa: E501
8
+ AMBIGUOUS_FUNCTION_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80631626ba7e1461004357806320c13b0b14610073578063d482bb47146100a3575b5f5ffd5b61005d60048036038101906100589190610293565b6100c1565b60405161006a9190610305565b60405180910390f35b61008d6004803603810190610088919061031e565b6100cb565b60405161009a9190610305565b60405180910390f35b6100ab6100d6565b6040516100b891906103f4565b60405180910390f35b5f5f905092915050565b5f6001905092915050565b60606040518060400160405280600581526020017f76616c6964000000000000000000000000000000000000000000000000000000815250905090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61013681610124565b8114610140575f5ffd5b50565b5f813590506101518161012d565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101a58261015f565b810181811067ffffffffffffffff821117156101c4576101c361016f565b5b80604052505050565b5f6101d6610113565b90506101e2828261019c565b919050565b5f67ffffffffffffffff8211156102015761020061016f565b5b61020a8261015f565b9050602081019050919050565b828183375f83830152505050565b5f610237610232846101e7565b6101cd565b9050828152602081018484840111156102535761025261015b565b5b61025e848285610217565b509392505050565b5f82601f83011261027a57610279610157565b5b813561028a848260208601610225565b91505092915050565b5f5f604083850312156102a9576102a861011c565b5b5f6102b685828601610143565b925050602083013567ffffffffffffffff8111156102d7576102d6610120565b5b6102e385828601610266565b9150509250929050565b5f819050919050565b6102ff816102ed565b82525050565b5f6020820190506103185f8301846102f6565b92915050565b5f5f604083850312156103345761033361011c565b5b5f83013567ffffffffffffffff81111561035157610350610120565b5b61035d85828601610266565b925050602083013567ffffffffffffffff81111561037e5761037d610120565b5b61038a85828601610266565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6103c682610394565b6103d0818561039e565b93506103e08185602086016103ae565b6103e98161015f565b840191505092915050565b5f6020820190508181035f83015261040c81846103bc565b90509291505056fea26469706673582212207771e80e03817222551c15a244685f02dd958991f78b46e6373f839b286c0be264736f6c634300081e0033" # noqa: E501
9
9
  AMBIGUOUS_FUNCTION_CONTRACT_ABI = [
10
10
  {
11
11
  "inputs": [
@@ -1,11 +1,11 @@
1
1
  """
2
2
  Generated by `compile_contracts.py` script.
3
- Compiled with Solidity v0.8.29.
3
+ Compiled with Solidity v0.8.30.
4
4
  """
5
5
 
6
6
  # source: web3/_utils/contract_sources/ArraysContract.sol:ArraysContract
7
- ARRAYS_CONTRACT_BYTECODE = "0x608060405260405180604001604052807f03783fac2efed8fbc9ad443e592ee30e61d65f471140c10ca155e937b435b76081526020017f1f675bff07515f5df96737194ea945c36c41e7b4fcef307b7cd4d0e602a691118152506001906002610069929190610199565b5060405180604001604052805f7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020017f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525060039060026101379291906101e4565b50348015610143575f5ffd5b5060405161128238038061128283398181016040528101906101659190610652565b815f908051906020019061017a929190610286565b5080600290805190602001906101919291906102d1565b5050506106c8565b828054828255905f5260205f209081019282156101d3579160200282015b828111156101d25782518255916020019190600101906101b7565b5b5090506101e09190610373565b5090565b828054828255905f5260205f2090601f01602090048101928215610275579160200282015f5b8382111561024757835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f0104928301926001030261020a565b80156102735782816101000a81549060ff02191690556001016020815f01049283019260010302610247565b505b509050610282919061038e565b5090565b828054828255905f5260205f209081019282156102c0579160200282015b828111156102bf5782518255916020019190600101906102a4565b5b5090506102cd9190610373565b5090565b828054828255905f5260205f2090601f01602090048101928215610362579160200282015f5b8382111561033457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026102f7565b80156103605782816101000a81549060ff02191690556001016020815f01049283019260010302610334565b505b50905061036f919061038e565b5090565b5b8082111561038a575f815f905550600101610374565b5090565b5b808211156103a5575f815f90555060010161038f565b5090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610404826103be565b810181811067ffffffffffffffff82111715610423576104226103ce565b5b80604052505050565b5f6104356103a9565b905061044182826103fb565b919050565b5f67ffffffffffffffff8211156104605761045f6103ce565b5b602082029050602081019050919050565b5f5ffd5b5f819050919050565b61048781610475565b8114610491575f5ffd5b50565b5f815190506104a28161047e565b92915050565b5f6104ba6104b584610446565b61042c565b905080838252602082019050602084028301858111156104dd576104dc610471565b5b835b8181101561050657806104f28882610494565b8452602084019350506020810190506104df565b5050509392505050565b5f82601f830112610524576105236103ba565b5b81516105348482602086016104a8565b91505092915050565b5f67ffffffffffffffff821115610557576105566103ce565b5b602082029050602081019050919050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61059c81610568565b81146105a6575f5ffd5b50565b5f815190506105b781610593565b92915050565b5f6105cf6105ca8461053d565b61042c565b905080838252602082019050602084028301858111156105f2576105f1610471565b5b835b8181101561061b578061060788826105a9565b8452602084019350506020810190506105f4565b5050509392505050565b5f82601f830112610639576106386103ba565b5b81516106498482602086016105bd565b91505092915050565b5f5f60408385031215610668576106676103b2565b5b5f83015167ffffffffffffffff811115610685576106846103b6565b5b61069185828601610510565b925050602083015167ffffffffffffffff8111156106b2576106b16103b6565b5b6106be85828601610625565b9150509250929050565b610bad806106d55f395ff3fe608060405234801561000f575f5ffd5b506004361061009c575f3560e01c8063542d83de11610064578063542d83de14610158578063605ba271146101885780638abe51fd146101a6578063962e450c146101c4578063bb69679b146101f45761009c565b80630afe5e33146100a057806312c9dcc8146100be5780631579bf66146100ee5780633ddcea2f1461010c57806351b4878814610128575b5f5ffd5b6100a8610210565b6040516100b591906106a4565b60405180910390f35b6100d860048036038101906100d39190610708565b610266565b6040516100e5919061076d565b60405180910390f35b6100f6610297565b604051610103919061083d565b60405180910390f35b610126600480360381019061012191906109d7565b610330565b005b610142600480360381019061013d9190610708565b61034a565b60405161014f9190610a2d565b60405180910390f35b610172600480360381019061016d9190610708565b61036a565b60405161017f9190610a2d565b60405180910390f35b610190610389565b60405161019d91906106a4565b60405180910390f35b6101ae6103de565b6040516101bb919061083d565b60405180910390f35b6101de60048036038101906101d99190610708565b610477565b6040516101eb919061076d565b60405180910390f35b61020e60048036038101906102099190610b30565b6104a8565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561025c57602002820191905f5260205f20905b815481526020019060010190808311610248575b5050505050905090565b60028181548110610275575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b6060600380548060200260200160405190810160405280929190818152602001828054801561032657602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116102d15790505b5050505050905090565b80600290805190602001906103469291906104c1565b5050565b60018181548110610359575f80fd5b905f5260205f20015f915090505481565b5f8181548110610378575f80fd5b905f5260205f20015f915090505481565b60605f8054806020026020016040519081016040528092919081815260200182805480156103d457602002820191905f5260205f20905b8154815260200190600101908083116103c0575b5050505050905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561046d57602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116104185790505b5050505050905090565b60038181548110610486575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b805f90805190602001906104bd929190610563565b5050565b828054828255905f5260205f2090601f01602090048101928215610552579160200282015f5b8382111561052457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026104e7565b80156105505782816101000a81549060ff02191690556001016020815f01049283019260010302610524565b505b50905061055f91906105ae565b5090565b828054828255905f5260205f2090810192821561059d579160200282015b8281111561059c578251825591602001919060010190610581565b5b5090506105aa91906105c9565b5090565b5b808211156105c5575f815f9055506001016105af565b5090565b5b808211156105e0575f815f9055506001016105ca565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61061f8161060d565b82525050565b5f6106308383610616565b60208301905092915050565b5f602082019050919050565b5f610652826105e4565b61065c81856105ee565b9350610667836105fe565b805f5b8381101561069757815161067e8882610625565b97506106898361063c565b92505060018101905061066a565b5085935050505092915050565b5f6020820190508181035f8301526106bc8184610648565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6106e7816106d5565b81146106f1575f5ffd5b50565b5f81359050610702816106de565b92915050565b5f6020828403121561071d5761071c6106cd565b5b5f61072a848285016106f4565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61076781610733565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6107b881610733565b82525050565b5f6107c983836107af565b60208301905092915050565b5f602082019050919050565b5f6107eb82610786565b6107f58185610790565b9350610800836107a0565b805f5b8381101561083057815161081788826107be565b9750610822836107d5565b925050600181019050610803565b5085935050505092915050565b5f6020820190508181035f83015261085581846107e1565b905092915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610861565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86106c4565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b602082029050602081019050919050565b5f5ffd5b61092181610733565b811461092b575f5ffd5b50565b5f8135905061093c81610918565b92915050565b5f61095461094f846108e9565b6108cf565b9050808382526020820190506020840283018581111561097757610976610914565b5b835b818110156109a0578061098c888261092e565b845260208401935050602081019050610979565b5050509392505050565b5f82601f8301126109be576109bd61085d565b5b81356109ce848260208601610942565b91505092915050565b5f602082840312156109ec576109eb6106cd565b5b5f82013567ffffffffffffffff811115610a0957610a086106d1565b5b610a15848285016109aa565b91505092915050565b610a278161060d565b82525050565b5f602082019050610a405f830184610a1e565b92915050565b5f67ffffffffffffffff821115610a6057610a5f610871565b5b602082029050602081019050919050565b610a7a8161060d565b8114610a84575f5ffd5b50565b5f81359050610a9581610a71565b92915050565b5f610aad610aa884610a46565b6108cf565b90508083825260208201905060208402830185811115610ad057610acf610914565b5b835b81811015610af95780610ae58882610a87565b845260208401935050602081019050610ad2565b5050509392505050565b5f82601f830112610b1757610b1661085d565b5b8135610b27848260208601610a9b565b91505092915050565b5f60208284031215610b4557610b446106cd565b5b5f82013567ffffffffffffffff811115610b6257610b616106d1565b5b610b6e84828501610b03565b9150509291505056fea26469706673582212208115be2fae3427b854c167bd58669fc96228a2d3486b3a125d25b1e656d4ba8f64736f6c634300081d0033" # noqa: E501
8
- ARRAYS_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b506004361061009c575f3560e01c8063542d83de11610064578063542d83de14610158578063605ba271146101885780638abe51fd146101a6578063962e450c146101c4578063bb69679b146101f45761009c565b80630afe5e33146100a057806312c9dcc8146100be5780631579bf66146100ee5780633ddcea2f1461010c57806351b4878814610128575b5f5ffd5b6100a8610210565b6040516100b591906106a4565b60405180910390f35b6100d860048036038101906100d39190610708565b610266565b6040516100e5919061076d565b60405180910390f35b6100f6610297565b604051610103919061083d565b60405180910390f35b610126600480360381019061012191906109d7565b610330565b005b610142600480360381019061013d9190610708565b61034a565b60405161014f9190610a2d565b60405180910390f35b610172600480360381019061016d9190610708565b61036a565b60405161017f9190610a2d565b60405180910390f35b610190610389565b60405161019d91906106a4565b60405180910390f35b6101ae6103de565b6040516101bb919061083d565b60405180910390f35b6101de60048036038101906101d99190610708565b610477565b6040516101eb919061076d565b60405180910390f35b61020e60048036038101906102099190610b30565b6104a8565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561025c57602002820191905f5260205f20905b815481526020019060010190808311610248575b5050505050905090565b60028181548110610275575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b6060600380548060200260200160405190810160405280929190818152602001828054801561032657602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116102d15790505b5050505050905090565b80600290805190602001906103469291906104c1565b5050565b60018181548110610359575f80fd5b905f5260205f20015f915090505481565b5f8181548110610378575f80fd5b905f5260205f20015f915090505481565b60605f8054806020026020016040519081016040528092919081815260200182805480156103d457602002820191905f5260205f20905b8154815260200190600101908083116103c0575b5050505050905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561046d57602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116104185790505b5050505050905090565b60038181548110610486575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b805f90805190602001906104bd929190610563565b5050565b828054828255905f5260205f2090601f01602090048101928215610552579160200282015f5b8382111561052457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026104e7565b80156105505782816101000a81549060ff02191690556001016020815f01049283019260010302610524565b505b50905061055f91906105ae565b5090565b828054828255905f5260205f2090810192821561059d579160200282015b8281111561059c578251825591602001919060010190610581565b5b5090506105aa91906105c9565b5090565b5b808211156105c5575f815f9055506001016105af565b5090565b5b808211156105e0575f815f9055506001016105ca565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61061f8161060d565b82525050565b5f6106308383610616565b60208301905092915050565b5f602082019050919050565b5f610652826105e4565b61065c81856105ee565b9350610667836105fe565b805f5b8381101561069757815161067e8882610625565b97506106898361063c565b92505060018101905061066a565b5085935050505092915050565b5f6020820190508181035f8301526106bc8184610648565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6106e7816106d5565b81146106f1575f5ffd5b50565b5f81359050610702816106de565b92915050565b5f6020828403121561071d5761071c6106cd565b5b5f61072a848285016106f4565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61076781610733565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6107b881610733565b82525050565b5f6107c983836107af565b60208301905092915050565b5f602082019050919050565b5f6107eb82610786565b6107f58185610790565b9350610800836107a0565b805f5b8381101561083057815161081788826107be565b9750610822836107d5565b925050600181019050610803565b5085935050505092915050565b5f6020820190508181035f83015261085581846107e1565b905092915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610861565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86106c4565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b602082029050602081019050919050565b5f5ffd5b61092181610733565b811461092b575f5ffd5b50565b5f8135905061093c81610918565b92915050565b5f61095461094f846108e9565b6108cf565b9050808382526020820190506020840283018581111561097757610976610914565b5b835b818110156109a0578061098c888261092e565b845260208401935050602081019050610979565b5050509392505050565b5f82601f8301126109be576109bd61085d565b5b81356109ce848260208601610942565b91505092915050565b5f602082840312156109ec576109eb6106cd565b5b5f82013567ffffffffffffffff811115610a0957610a086106d1565b5b610a15848285016109aa565b91505092915050565b610a278161060d565b82525050565b5f602082019050610a405f830184610a1e565b92915050565b5f67ffffffffffffffff821115610a6057610a5f610871565b5b602082029050602081019050919050565b610a7a8161060d565b8114610a84575f5ffd5b50565b5f81359050610a9581610a71565b92915050565b5f610aad610aa884610a46565b6108cf565b90508083825260208201905060208402830185811115610ad057610acf610914565b5b835b81811015610af95780610ae58882610a87565b845260208401935050602081019050610ad2565b5050509392505050565b5f82601f830112610b1757610b1661085d565b5b8135610b27848260208601610a9b565b91505092915050565b5f60208284031215610b4557610b446106cd565b5b5f82013567ffffffffffffffff811115610b6257610b616106d1565b5b610b6e84828501610b03565b9150509291505056fea26469706673582212208115be2fae3427b854c167bd58669fc96228a2d3486b3a125d25b1e656d4ba8f64736f6c634300081d0033" # noqa: E501
7
+ ARRAYS_CONTRACT_BYTECODE = "0x608060405260405180604001604052807f03783fac2efed8fbc9ad443e592ee30e61d65f471140c10ca155e937b435b76081526020017f1f675bff07515f5df96737194ea945c36c41e7b4fcef307b7cd4d0e602a691118152506001906002610069929190610199565b5060405180604001604052805f7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020017f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525060039060026101379291906101e4565b50348015610143575f5ffd5b5060405161128238038061128283398181016040528101906101659190610652565b815f908051906020019061017a929190610286565b5080600290805190602001906101919291906102d1565b5050506106c8565b828054828255905f5260205f209081019282156101d3579160200282015b828111156101d25782518255916020019190600101906101b7565b5b5090506101e09190610373565b5090565b828054828255905f5260205f2090601f01602090048101928215610275579160200282015f5b8382111561024757835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f0104928301926001030261020a565b80156102735782816101000a81549060ff02191690556001016020815f01049283019260010302610247565b505b509050610282919061038e565b5090565b828054828255905f5260205f209081019282156102c0579160200282015b828111156102bf5782518255916020019190600101906102a4565b5b5090506102cd9190610373565b5090565b828054828255905f5260205f2090601f01602090048101928215610362579160200282015f5b8382111561033457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026102f7565b80156103605782816101000a81549060ff02191690556001016020815f01049283019260010302610334565b505b50905061036f919061038e565b5090565b5b8082111561038a575f815f905550600101610374565b5090565b5b808211156103a5575f815f90555060010161038f565b5090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610404826103be565b810181811067ffffffffffffffff82111715610423576104226103ce565b5b80604052505050565b5f6104356103a9565b905061044182826103fb565b919050565b5f67ffffffffffffffff8211156104605761045f6103ce565b5b602082029050602081019050919050565b5f5ffd5b5f819050919050565b61048781610475565b8114610491575f5ffd5b50565b5f815190506104a28161047e565b92915050565b5f6104ba6104b584610446565b61042c565b905080838252602082019050602084028301858111156104dd576104dc610471565b5b835b8181101561050657806104f28882610494565b8452602084019350506020810190506104df565b5050509392505050565b5f82601f830112610524576105236103ba565b5b81516105348482602086016104a8565b91505092915050565b5f67ffffffffffffffff821115610557576105566103ce565b5b602082029050602081019050919050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61059c81610568565b81146105a6575f5ffd5b50565b5f815190506105b781610593565b92915050565b5f6105cf6105ca8461053d565b61042c565b905080838252602082019050602084028301858111156105f2576105f1610471565b5b835b8181101561061b578061060788826105a9565b8452602084019350506020810190506105f4565b5050509392505050565b5f82601f830112610639576106386103ba565b5b81516106498482602086016105bd565b91505092915050565b5f5f60408385031215610668576106676103b2565b5b5f83015167ffffffffffffffff811115610685576106846103b6565b5b61069185828601610510565b925050602083015167ffffffffffffffff8111156106b2576106b16103b6565b5b6106be85828601610625565b9150509250929050565b610bad806106d55f395ff3fe608060405234801561000f575f5ffd5b506004361061009c575f3560e01c8063542d83de11610064578063542d83de14610158578063605ba271146101885780638abe51fd146101a6578063962e450c146101c4578063bb69679b146101f45761009c565b80630afe5e33146100a057806312c9dcc8146100be5780631579bf66146100ee5780633ddcea2f1461010c57806351b4878814610128575b5f5ffd5b6100a8610210565b6040516100b591906106a4565b60405180910390f35b6100d860048036038101906100d39190610708565b610266565b6040516100e5919061076d565b60405180910390f35b6100f6610297565b604051610103919061083d565b60405180910390f35b610126600480360381019061012191906109d7565b610330565b005b610142600480360381019061013d9190610708565b61034a565b60405161014f9190610a2d565b60405180910390f35b610172600480360381019061016d9190610708565b61036a565b60405161017f9190610a2d565b60405180910390f35b610190610389565b60405161019d91906106a4565b60405180910390f35b6101ae6103de565b6040516101bb919061083d565b60405180910390f35b6101de60048036038101906101d99190610708565b610477565b6040516101eb919061076d565b60405180910390f35b61020e60048036038101906102099190610b30565b6104a8565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561025c57602002820191905f5260205f20905b815481526020019060010190808311610248575b5050505050905090565b60028181548110610275575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b6060600380548060200260200160405190810160405280929190818152602001828054801561032657602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116102d15790505b5050505050905090565b80600290805190602001906103469291906104c1565b5050565b60018181548110610359575f80fd5b905f5260205f20015f915090505481565b5f8181548110610378575f80fd5b905f5260205f20015f915090505481565b60605f8054806020026020016040519081016040528092919081815260200182805480156103d457602002820191905f5260205f20905b8154815260200190600101908083116103c0575b5050505050905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561046d57602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116104185790505b5050505050905090565b60038181548110610486575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b805f90805190602001906104bd929190610563565b5050565b828054828255905f5260205f2090601f01602090048101928215610552579160200282015f5b8382111561052457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026104e7565b80156105505782816101000a81549060ff02191690556001016020815f01049283019260010302610524565b505b50905061055f91906105ae565b5090565b828054828255905f5260205f2090810192821561059d579160200282015b8281111561059c578251825591602001919060010190610581565b5b5090506105aa91906105c9565b5090565b5b808211156105c5575f815f9055506001016105af565b5090565b5b808211156105e0575f815f9055506001016105ca565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61061f8161060d565b82525050565b5f6106308383610616565b60208301905092915050565b5f602082019050919050565b5f610652826105e4565b61065c81856105ee565b9350610667836105fe565b805f5b8381101561069757815161067e8882610625565b97506106898361063c565b92505060018101905061066a565b5085935050505092915050565b5f6020820190508181035f8301526106bc8184610648565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6106e7816106d5565b81146106f1575f5ffd5b50565b5f81359050610702816106de565b92915050565b5f6020828403121561071d5761071c6106cd565b5b5f61072a848285016106f4565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61076781610733565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6107b881610733565b82525050565b5f6107c983836107af565b60208301905092915050565b5f602082019050919050565b5f6107eb82610786565b6107f58185610790565b9350610800836107a0565b805f5b8381101561083057815161081788826107be565b9750610822836107d5565b925050600181019050610803565b5085935050505092915050565b5f6020820190508181035f83015261085581846107e1565b905092915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610861565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86106c4565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b602082029050602081019050919050565b5f5ffd5b61092181610733565b811461092b575f5ffd5b50565b5f8135905061093c81610918565b92915050565b5f61095461094f846108e9565b6108cf565b9050808382526020820190506020840283018581111561097757610976610914565b5b835b818110156109a0578061098c888261092e565b845260208401935050602081019050610979565b5050509392505050565b5f82601f8301126109be576109bd61085d565b5b81356109ce848260208601610942565b91505092915050565b5f602082840312156109ec576109eb6106cd565b5b5f82013567ffffffffffffffff811115610a0957610a086106d1565b5b610a15848285016109aa565b91505092915050565b610a278161060d565b82525050565b5f602082019050610a405f830184610a1e565b92915050565b5f67ffffffffffffffff821115610a6057610a5f610871565b5b602082029050602081019050919050565b610a7a8161060d565b8114610a84575f5ffd5b50565b5f81359050610a9581610a71565b92915050565b5f610aad610aa884610a46565b6108cf565b90508083825260208201905060208402830185811115610ad057610acf610914565b5b835b81811015610af95780610ae58882610a87565b845260208401935050602081019050610ad2565b5050509392505050565b5f82601f830112610b1757610b1661085d565b5b8135610b27848260208601610a9b565b91505092915050565b5f60208284031215610b4557610b446106cd565b5b5f82013567ffffffffffffffff811115610b6257610b616106d1565b5b610b6e84828501610b03565b9150509291505056fea2646970667358221220431273480cf814ef924a15a89462b6fa62e00497b1ee4630c92f33676f5b227264736f6c634300081e0033" # noqa: E501
8
+ ARRAYS_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b506004361061009c575f3560e01c8063542d83de11610064578063542d83de14610158578063605ba271146101885780638abe51fd146101a6578063962e450c146101c4578063bb69679b146101f45761009c565b80630afe5e33146100a057806312c9dcc8146100be5780631579bf66146100ee5780633ddcea2f1461010c57806351b4878814610128575b5f5ffd5b6100a8610210565b6040516100b591906106a4565b60405180910390f35b6100d860048036038101906100d39190610708565b610266565b6040516100e5919061076d565b60405180910390f35b6100f6610297565b604051610103919061083d565b60405180910390f35b610126600480360381019061012191906109d7565b610330565b005b610142600480360381019061013d9190610708565b61034a565b60405161014f9190610a2d565b60405180910390f35b610172600480360381019061016d9190610708565b61036a565b60405161017f9190610a2d565b60405180910390f35b610190610389565b60405161019d91906106a4565b60405180910390f35b6101ae6103de565b6040516101bb919061083d565b60405180910390f35b6101de60048036038101906101d99190610708565b610477565b6040516101eb919061076d565b60405180910390f35b61020e60048036038101906102099190610b30565b6104a8565b005b6060600180548060200260200160405190810160405280929190818152602001828054801561025c57602002820191905f5260205f20905b815481526020019060010190808311610248575b5050505050905090565b60028181548110610275575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b6060600380548060200260200160405190810160405280929190818152602001828054801561032657602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116102d15790505b5050505050905090565b80600290805190602001906103469291906104c1565b5050565b60018181548110610359575f80fd5b905f5260205f20015f915090505481565b5f8181548110610378575f80fd5b905f5260205f20015f915090505481565b60605f8054806020026020016040519081016040528092919081815260200182805480156103d457602002820191905f5260205f20905b8154815260200190600101908083116103c0575b5050505050905090565b6060600280548060200260200160405190810160405280929190818152602001828054801561046d57602002820191905f5260205f20905f905b82829054906101000a900460f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600101906020825f010492830192600103820291508084116104185790505b5050505050905090565b60038181548110610486575f80fd5b905f5260205f209060209182820401919006915054906101000a900460f81b81565b805f90805190602001906104bd929190610563565b5050565b828054828255905f5260205f2090601f01602090048101928215610552579160200282015f5b8382111561052457835183826101000a81548160ff021916908360f81c021790555092602001926001016020815f010492830192600103026104e7565b80156105505782816101000a81549060ff02191690556001016020815f01049283019260010302610524565b505b50905061055f91906105ae565b5090565b828054828255905f5260205f2090810192821561059d579160200282015b8281111561059c578251825591602001919060010190610581565b5b5090506105aa91906105c9565b5090565b5b808211156105c5575f815f9055506001016105af565b5090565b5b808211156105e0575f815f9055506001016105ca565b5090565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f819050919050565b61061f8161060d565b82525050565b5f6106308383610616565b60208301905092915050565b5f602082019050919050565b5f610652826105e4565b61065c81856105ee565b9350610667836105fe565b805f5b8381101561069757815161067e8882610625565b97506106898361063c565b92505060018101905061066a565b5085935050505092915050565b5f6020820190508181035f8301526106bc8184610648565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6106e7816106d5565b81146106f1575f5ffd5b50565b5f81359050610702816106de565b92915050565b5f6020828403121561071d5761071c6106cd565b5b5f61072a848285016106f4565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61076781610733565b82525050565b5f6020820190506107805f83018461075e565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6107b881610733565b82525050565b5f6107c983836107af565b60208301905092915050565b5f602082019050919050565b5f6107eb82610786565b6107f58185610790565b9350610800836107a0565b805f5b8381101561083057815161081788826107be565b9750610822836107d5565b925050600181019050610803565b5085935050505092915050565b5f6020820190508181035f83015261085581846107e1565b905092915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6108a782610861565b810181811067ffffffffffffffff821117156108c6576108c5610871565b5b80604052505050565b5f6108d86106c4565b90506108e4828261089e565b919050565b5f67ffffffffffffffff82111561090357610902610871565b5b602082029050602081019050919050565b5f5ffd5b61092181610733565b811461092b575f5ffd5b50565b5f8135905061093c81610918565b92915050565b5f61095461094f846108e9565b6108cf565b9050808382526020820190506020840283018581111561097757610976610914565b5b835b818110156109a0578061098c888261092e565b845260208401935050602081019050610979565b5050509392505050565b5f82601f8301126109be576109bd61085d565b5b81356109ce848260208601610942565b91505092915050565b5f602082840312156109ec576109eb6106cd565b5b5f82013567ffffffffffffffff811115610a0957610a086106d1565b5b610a15848285016109aa565b91505092915050565b610a278161060d565b82525050565b5f602082019050610a405f830184610a1e565b92915050565b5f67ffffffffffffffff821115610a6057610a5f610871565b5b602082029050602081019050919050565b610a7a8161060d565b8114610a84575f5ffd5b50565b5f81359050610a9581610a71565b92915050565b5f610aad610aa884610a46565b6108cf565b90508083825260208201905060208402830185811115610ad057610acf610914565b5b835b81811015610af95780610ae58882610a87565b845260208401935050602081019050610ad2565b5050509392505050565b5f82601f830112610b1757610b1661085d565b5b8135610b27848260208601610a9b565b91505092915050565b5f60208284031215610b4557610b446106cd565b5b5f82013567ffffffffffffffff811115610b6257610b616106d1565b5b610b6e84828501610b03565b9150509291505056fea2646970667358221220431273480cf814ef924a15a89462b6fa62e00497b1ee4630c92f33676f5b227264736f6c634300081e0033" # noqa: E501
9
9
  ARRAYS_CONTRACT_ABI = [
10
10
  {
11
11
  "inputs": [