web3 7.0.0b4__py3-none-any.whl → 7.0.0b6__py3-none-any.whl

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 (50) hide show
  1. web3/_utils/batching.py +217 -0
  2. web3/_utils/caching.py +26 -2
  3. web3/_utils/compat/__init__.py +1 -0
  4. web3/_utils/contracts.py +5 -5
  5. web3/_utils/events.py +20 -20
  6. web3/_utils/filters.py +6 -6
  7. web3/_utils/method_formatters.py +0 -23
  8. web3/_utils/module_testing/__init__.py +0 -3
  9. web3/_utils/module_testing/eth_module.py +442 -373
  10. web3/_utils/module_testing/module_testing_utils.py +13 -0
  11. web3/_utils/module_testing/web3_module.py +438 -17
  12. web3/_utils/rpc_abi.py +0 -18
  13. web3/contract/async_contract.py +11 -11
  14. web3/contract/base_contract.py +19 -18
  15. web3/contract/contract.py +13 -13
  16. web3/contract/utils.py +112 -4
  17. web3/eth/async_eth.py +10 -8
  18. web3/eth/eth.py +7 -6
  19. web3/exceptions.py +75 -21
  20. web3/gas_strategies/time_based.py +2 -2
  21. web3/geth.py +0 -188
  22. web3/main.py +21 -13
  23. web3/manager.py +237 -74
  24. web3/method.py +29 -9
  25. web3/middleware/base.py +43 -0
  26. web3/middleware/filter.py +18 -6
  27. web3/middleware/signing.py +2 -2
  28. web3/module.py +47 -7
  29. web3/providers/async_base.py +55 -23
  30. web3/providers/base.py +59 -26
  31. web3/providers/eth_tester/defaults.py +0 -48
  32. web3/providers/eth_tester/main.py +36 -11
  33. web3/providers/eth_tester/middleware.py +3 -8
  34. web3/providers/ipc.py +23 -8
  35. web3/providers/legacy_websocket.py +26 -1
  36. web3/providers/persistent/async_ipc.py +60 -76
  37. web3/providers/persistent/persistent.py +134 -10
  38. web3/providers/persistent/request_processor.py +98 -14
  39. web3/providers/persistent/websocket.py +43 -66
  40. web3/providers/rpc/async_rpc.py +20 -2
  41. web3/providers/rpc/rpc.py +22 -2
  42. web3/providers/rpc/utils.py +1 -10
  43. web3/tools/benchmark/node.py +2 -8
  44. web3/types.py +8 -2
  45. {web3-7.0.0b4.dist-info → web3-7.0.0b6.dist-info}/LICENSE +1 -1
  46. {web3-7.0.0b4.dist-info → web3-7.0.0b6.dist-info}/METADATA +32 -21
  47. {web3-7.0.0b4.dist-info → web3-7.0.0b6.dist-info}/RECORD +49 -49
  48. web3/_utils/module_testing/go_ethereum_personal_module.py +0 -300
  49. {web3-7.0.0b4.dist-info → web3-7.0.0b6.dist-info}/WHEEL +0 -0
  50. {web3-7.0.0b4.dist-info → web3-7.0.0b6.dist-info}/top_level.txt +0 -0
@@ -14,51 +14,52 @@ ens/specs/normalization_spec.json,sha256=xn3N9a-6KHMLu3MeCBsmOxSzIzUQykzE9EscKK1
14
14
  web3/__init__.py,sha256=30-1_zz8k8y-7EyFf8gjHPyNd9LctEkB0ButoXfDkFg,900
15
15
  web3/constants.py,sha256=eQLRQVMFPbgpOjjkPTMHkY-syncJuO-sPX5UrCSRjzQ,564
16
16
  web3/datastructures.py,sha256=Yc45cXgoXvhV0HPvnmkFFOEVDtLr-Pftc_f5q-uQY1M,10939
17
- web3/exceptions.py,sha256=bYiqIseNtwrkgpl15Si99K-ZiD5u8nw_bBhe12nWEtA,7387
18
- web3/geth.py,sha256=moF-N4R6l_R1MrtWNeeo61UMhFavXlao6nIPGlpqOSU,11294
17
+ web3/exceptions.py,sha256=VoB2dwZagBVTJn9712xcdJJPyq_bwhFt4prf2H9ukMs,8742
18
+ web3/geth.py,sha256=IQYeqiVSqcskuXWgDR35UBuVsD-whhvTpDltO4vvCvE,5867
19
19
  web3/logs.py,sha256=ROs-mDMH_ZOecE7hfbWA5yp27G38FbLjX4lO_WtlZxQ,198
20
- web3/main.py,sha256=s--ABlCAOHZxZT8uEP94_hHXOy5KGkE6wQvImyBV_Ls,14066
21
- web3/manager.py,sha256=s235thGJ0jFEgefnPpgATv38SsKe0G3zzdd-lk7Qd9U,15093
22
- web3/method.py,sha256=gzMSinK-oMnsxzAD0OCQo3gBXtDRyT-TL9gNt3uncig,7874
23
- web3/module.py,sha256=zonvW0meqdfG82-KgtYTF9ketsCShK2m9b-HYRBJRZg,4793
20
+ web3/main.py,sha256=AFAV0Y_zIjo9ZuAlQTEMbUPN5iGyHRpS8mS-wFkw8-E,14350
21
+ web3/manager.py,sha256=9ze-9eluei5_CCA3G-kMP_KWzllD2iv9oJQbeXyU3ao,20730
22
+ web3/method.py,sha256=Uv29Vng93VC5-HHeRok30PUbGCg42SNA2YsxiweTgWA,8593
23
+ web3/module.py,sha256=Djz589nMXZzelVELGPzsw9CHgqmKTUwOZ7pTgkCPs-U,5996
24
24
  web3/net.py,sha256=Y3vPzHWVFkfHEZoJxjDOt4tp5ERmZrMuyi4ZFOLmIeA,1562
25
25
  web3/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  web3/testing.py,sha256=Ury_-7XSstJ8bkCfdGEi4Cr76QzSfW7v_zfPlDlLJj0,923
27
27
  web3/tracing.py,sha256=ZcOam7t-uEZXyui6Cndv6RYeCZP5jh1TBn2hG8sv17Q,3098
28
- web3/types.py,sha256=nQP5UQQXmXfx4NKVSeujLXaJOJFeh_jp8eJCuCtcMAY,12635
28
+ web3/types.py,sha256=5-F0i2zbX0dUk7e1YaNqGAGNqS9ER90kDkPnx0pj89Y,12881
29
29
  web3/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  web3/_utils/abi.py,sha256=yFKB5DjeEPRGzsoI1SJgUB23fhKGtNvG18xxl3WX2zk,30677
31
31
  web3/_utils/async_caching.py,sha256=2XnaKCHBTTDK6B2R_YZvjJqIRUpbMDIU1uYrq-Lcyp8,486
32
32
  web3/_utils/async_transactions.py,sha256=C2P1B9F15S0apvqhYCrvx5bU8HA7HTPVJIDsgtHLRno,5225
33
+ web3/_utils/batching.py,sha256=SbFKYFCRTrkFMFNa4HA4DkD_Qbjc6atnebMObyuQeHE,6316
33
34
  web3/_utils/blocks.py,sha256=SZ17qSJuPAH5Dz-eQPGOsZw_QtkG19zvpSYMv6mEDok,2138
34
- web3/_utils/caching.py,sha256=h0ieRKbeVsYyy86RG_oZxQZgGk5_YDj4hEinfszlK9Y,4841
35
- web3/_utils/contracts.py,sha256=3WaNUxGihdkOHn-M9hIfyWnK0Atl8p71TWzCpJUCoCw,14206
35
+ web3/_utils/caching.py,sha256=-9jyR33wBWrWGp1S7LFvovDQblLLYr8Kz7oujnJwhqA,5406
36
+ web3/_utils/contracts.py,sha256=U_TyoeqP79hGKZEmPqhS3LxuaxUJBxH9aIXK9c5LpsQ,14206
36
37
  web3/_utils/datatypes.py,sha256=nI0C9XWl46gFj1RpwuoHfVqb4e73wlaerE1LNyMg3oo,1701
37
38
  web3/_utils/decorators.py,sha256=bYIoVL0DjHWU2-KOmg-UYg6rICeThlLVZpH9yM2NT8s,1825
38
39
  web3/_utils/empty.py,sha256=ccgxFk5qm2x2ZeD8b17wX5cCAJPkPFuHrNQNMDslytY,132
39
40
  web3/_utils/encoding.py,sha256=lP4idUeJWVlTgW7mwACTsZUbH1b9Q7BJLNovPobMlOo,9262
40
41
  web3/_utils/ens.py,sha256=2BvzfegBkR7vH3Fq7lo_LsgfT912Zj-mR8eUt6o_lBA,2434
41
42
  web3/_utils/error_formatters_utils.py,sha256=uRXm6P6z4cUTTlQRLFLtuC3FYOjR0lrIlQToR5f_gzI,6868
42
- web3/_utils/events.py,sha256=hjVzm_adBcpRWkIfHRe0t_ZQPSOACmq-HfnIPoaF_UA,17387
43
+ web3/_utils/events.py,sha256=5uCTfzpwp115BQowbLp2MISqhjP0ReWByR9YPqk8SDw,17363
43
44
  web3/_utils/fee_utils.py,sha256=hlY-PDtXNddufcpBQHxWmd7wwK3-XcaJ8trRpKKb8sA,2099
44
- web3/_utils/filters.py,sha256=RNRW-SjGym8Bhvl5bi4ggWbbNeQeAhC-3CDPGbkKZZg,11974
45
+ web3/_utils/filters.py,sha256=M9FpffgVXmDaoUk0HjAhVNi9Krq6hMlKE01n_JxHOMQ,11980
45
46
  web3/_utils/formatters.py,sha256=RfRZU0aXC99s6OoLMY7D-fcYJyVAYBEwdbw-JIDjbZE,3067
46
47
  web3/_utils/function_identifiers.py,sha256=m305lsvUZk-jkPixT0IJd9P5sXqMvmwlwlLeBgEAnBQ,55
47
48
  web3/_utils/http.py,sha256=GDHmbeWt7UoHkRBvFt9Py5Vzr2ZLzH9WxAqEYZCJ53s,205
48
49
  web3/_utils/hypothesis.py,sha256=4Cm4iOWv-uP9irg_Pv63kYNDYUAGhnUH6fOPWRw3A0g,209
49
50
  web3/_utils/math.py,sha256=4oU5YdbQBXElxK00CxmUZ94ApXFu9QT_TrO0Kho1HTs,1083
50
- web3/_utils/method_formatters.py,sha256=RL23Ap_klBbFbUy69a1Txh5crpzGy15EH4de_ZZcSpg,34481
51
+ web3/_utils/method_formatters.py,sha256=xLJj6vM4jYIKcpq0rQrXTtqdnvtGLOilapcytL2QHFw,33591
51
52
  web3/_utils/module.py,sha256=GuVePloTlIBZwFDOjg0zasp53HSJ32umxN1nQhqW-8Y,3175
52
53
  web3/_utils/normalizers.py,sha256=Q5urvzI9nbtNiqzhrrIMtZ5NqOAxWE4Xp5srZFs0Baw,7392
53
54
  web3/_utils/request.py,sha256=G-f_UPx6yEKYbc1JjQBJyS0R5FnLDlOoV0OYE2_xREU,8843
54
- web3/_utils/rpc_abi.py,sha256=SSpfuQP2buTvPO49ZzTOCOvgYhT1g3FD3VlRZ8GAgF8,9444
55
+ web3/_utils/rpc_abi.py,sha256=WAqi4E46ISt9RzU74zUH4FAez9k9CJ7qr_M94fGzKZ0,8529
55
56
  web3/_utils/threads.py,sha256=hNlSd_zheQYN0vC1faWWb9_UQxp_UzaM2fI5C8y0kB0,4245
56
57
  web3/_utils/transactions.py,sha256=eGnFlVtzvlcDsF8-Gnbai4rjVP9iWpQ5CaAx6Ml9K8g,8912
57
58
  web3/_utils/type_conversion.py,sha256=s6cg3WDCQIarQLWw_GfctaJjXhS_EcokUNO-S_ccvng,873
58
59
  web3/_utils/utility_methods.py,sha256=7VCpo5ysvPoGjFuDj5gT1Niva2l3BADUvNeJFlL3Yvg,2559
59
60
  web3/_utils/validation.py,sha256=rNkfc5gZ6Ga_PMnG6LQGFKP3830RZag0Sc4ZgFd7dL4,6370
60
61
  web3/_utils/windows.py,sha256=IlFUtqYSbUUfFRx60zvEwpiZd080WpOrA4ojm4tmSEE,994
61
- web3/_utils/compat/__init__.py,sha256=sLLJLpC7pH6uNCzC1ngSjGsR2v5oZiJsUQDCx2v48OY,526
62
+ web3/_utils/compat/__init__.py,sha256=34AN_Z0CWT1RhVlvnlOtS5xhXFWrUrYp2VBlwbnSj7A,547
62
63
  web3/_utils/contract_sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
64
  web3/_utils/contract_sources/compile_contracts.py,sha256=C3eLY6gJ4xj9FunNwn4YPb9c8ElORkN8O4ddBa_kKqI,6486
64
65
  web3/_utils/contract_sources/contract_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -85,16 +86,15 @@ web3/_utils/contract_sources/contract_data/simple_resolver.py,sha256=WveX0v15U64
85
86
  web3/_utils/contract_sources/contract_data/storage_contract.py,sha256=NhoWNlWltNtGBdPwCWQGQfDO4hDTRXCVPWx7jSc58B0,8238
86
87
  web3/_utils/contract_sources/contract_data/string_contract.py,sha256=zZdglZ6se_aqMIUKN3-3zR57h8zyDyUQIgtSIXtdSzg,11586
87
88
  web3/_utils/contract_sources/contract_data/tuple_contracts.py,sha256=qt0cGM1Kh-LlRYn04-fpSPQJAWcGrvP8EKPCJvsrnvE,23180
88
- web3/_utils/module_testing/__init__.py,sha256=_AuZ0S4xesS7ocRdMHeTN6zju7KqpSsG4NXgmccJonU,455
89
- web3/_utils/module_testing/eth_module.py,sha256=ZxIEVK6Dh-xYNYw9YZ2uhvEYfdLgLQnEePSgowaXHmM,184026
89
+ web3/_utils/module_testing/__init__.py,sha256=tPFAaX7xOR50CPTq24UeY-1CX1LQxxmEOPr0-tIRkoE,376
90
+ web3/_utils/module_testing/eth_module.py,sha256=XMLXB-SvyKWc0bF1XVYCVUNUIb0yYHg3ML8JZ-BHIY0,186043
90
91
  web3/_utils/module_testing/go_ethereum_admin_module.py,sha256=_c-6SyzZkfAJ-7ySXUpw9FEr4cg-ShRdAGSAHWanCtY,3406
91
- web3/_utils/module_testing/go_ethereum_personal_module.py,sha256=Ynb97akTRDUVgnZnxJucJhkJTfuiN5eVkt3e3kX6AAk,10430
92
92
  web3/_utils/module_testing/go_ethereum_txpool_module.py,sha256=5f8XL8-2x3keyGRaITxMQYl9oQzjgqGn8zobB-j9BPs,1176
93
- web3/_utils/module_testing/module_testing_utils.py,sha256=sPsSI4Cm8DWMOjI2eNsleED3daloFpMChk4AQ96gE5w,5559
93
+ web3/_utils/module_testing/module_testing_utils.py,sha256=3z5YntflwzR3B1Bo7-GSdx_VitfnrUJwW9wclElAU1g,5862
94
94
  web3/_utils/module_testing/net_module.py,sha256=ifUTC-5fTcQbwpm0X09OdD5RSPnn00T8klFeYe8tTm4,1272
95
95
  web3/_utils/module_testing/persistent_connection_provider.py,sha256=RDcyBIznwweuG2X-57vq1jhMqYMK9lJRDEpaXuljwuE,16567
96
96
  web3/_utils/module_testing/utils.py,sha256=7jYtIKfOdrQnj1pDB0gLyoN_b8U3ZyEYbMU4dxaLljs,10023
97
- web3/_utils/module_testing/web3_module.py,sha256=Y4lYglg_kbrpfwGfjekv52h4B7DaWa3uS15KGrCKL7c,9613
97
+ web3/_utils/module_testing/web3_module.py,sha256=lfLOshDOr-SpnaN0iVcff-q-HUOw8XSBIwQeBO7TaJo,25121
98
98
  web3/auto/__init__.py,sha256=ZbzAiCZMdt_tCTTPvH6t8NCVNroKKkt7TSVBBNR74Is,44
99
99
  web3/auto/gethdev.py,sha256=MuWD2gxv0xDv_SzPsp9mSkS1oG4P54xFK83qw9NvswA,438
100
100
  web3/beacon/__init__.py,sha256=8VmlbCbMiZBpEISoMcz72MoewtQxlUBk9FCfYud3Elw,65
@@ -102,57 +102,57 @@ web3/beacon/api_endpoints.py,sha256=dkekSCmkat5QIfwKzwm49CyVcRb-pIbn1nZHB4F8M0U,
102
102
  web3/beacon/async_beacon.py,sha256=y7cvbsDYjRNDZftzcJyXaSLCsRrASAGxfyCwE53oCG4,7472
103
103
  web3/beacon/beacon.py,sha256=wgSmF-5hu_95L6onnlA33ADDoASFf9OZf-YWnqnY0VY,6640
104
104
  web3/contract/__init__.py,sha256=EX_RmT8D2DDKKsk1U8grCNdLq9b1rF-8xWaR53CBiew,187
105
- web3/contract/async_contract.py,sha256=nJeXs_lNvA3etSSEKYj_oMEiZSaTHthM-JiQIqcTDlY,20493
106
- web3/contract/base_contract.py,sha256=0zjTPa1yVsiNPdnFjGyoXP85bA5rLAsF2bNrF5GZKFM,36959
107
- web3/contract/contract.py,sha256=tQOHI1WbqpyWn8lTUckjzSb5r6e2PZPzZuzbgLhVEfc,20099
108
- web3/contract/utils.py,sha256=t57K5BZS_K6H_BQSpEXjcObkbRQyYLbjx41dolNWzII,12510
105
+ web3/contract/async_contract.py,sha256=LiYBEOh11myVOuHss9iwHDQcLAHtsSW1mlzpcDnMvmo,20515
106
+ web3/contract/base_contract.py,sha256=Vbgd00EAsfYBcYwTE_-8lVN62CrqLD9z4CeRPJbs3ik,37011
107
+ web3/contract/contract.py,sha256=cF0tsOjbJpg6zOBqZ_02btl3O4HTABcEnUzYzFiDcpo,20124
108
+ web3/contract/utils.py,sha256=vymvU8edobFFQ8pu2RsWr-uUXiF__TWzwFo5TRorWZk,16662
109
109
  web3/eth/__init__.py,sha256=CrYZXIlIdKTmznnLNUaA-C3eLvftBnmlVt9uxm-dwAI,124
110
- web3/eth/async_eth.py,sha256=z8CYrIDPQs3SB90-8fDQOIxXehlkWoIO_0FiBg6_na8,24082
110
+ web3/eth/async_eth.py,sha256=pi1DMLa_g4_At2tq4tXFG06-UM_u2v73gEf5fZqSZIQ,24043
111
111
  web3/eth/base_eth.py,sha256=UUH0Fw0HVa_mBEQ_CbCDO01yCVDsj33d8yOv7Oe-QD0,6905
112
- web3/eth/eth.py,sha256=09RJbMSI5EpMxCgF2KaiYoVWSUuP-sfyXDI54ng0X5g,21026
112
+ web3/eth/eth.py,sha256=Qcayt-j4EfkM4YUXqygiF6Diz8kfet1spxRRsqtnPGY,20961
113
113
  web3/gas_strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
114
  web3/gas_strategies/rpc.py,sha256=3Va-32jdmHkX7tzQCmh17ms2D6te5zZcqHP1326BdpY,352
115
- web3/gas_strategies/time_based.py,sha256=Va3dbi6B7uAyTXWZBLhJ7oqARf_qnqmyb5O7sC16yH8,8981
115
+ web3/gas_strategies/time_based.py,sha256=48aFmh3FWgswD1DZlHllLOXrBm8Abh7rHmeo0IHTrAw,8949
116
116
  web3/middleware/__init__.py,sha256=3aCt9x2A9x_Hg0QnqsN0MDbm2yw2WFTNjzlt1ytYrdQ,2414
117
117
  web3/middleware/attrdict.py,sha256=NY5yxlFOfLBBmcIjl8R-uP2dTz9ITIyTttG8-QcJWCI,2259
118
- web3/middleware/base.py,sha256=6rywe6AQtN0HBqXrtAYs6nTPR16XhtW87A4cXa7iB28,3553
118
+ web3/middleware/base.py,sha256=AFIRLRxoQ63lEdhsRe-sATyHaYdiwNVklPOGc9ivXrA,5103
119
119
  web3/middleware/buffered_gas_estimate.py,sha256=EmxUd-uO959UVroPsPKkl7oDa8Tw6N8BQLB6Urng5Eo,1647
120
- web3/middleware/filter.py,sha256=rloRAQV_13hbVr1QjDet1PpUfR4hpzgT2jwLiZn4610,21678
120
+ web3/middleware/filter.py,sha256=vaQUJYKGRIHNgt1zPzRLfx_wICbL0uT7OcYGBlIzdD4,22174
121
121
  web3/middleware/formatting.py,sha256=hqe5XQE1n5Fmj6riJp7i3oIoZkd-4ChQc7UK8f3HB6I,7567
122
122
  web3/middleware/gas_price_strategy.py,sha256=ZjZ6pe3z0mDGLZHYoFXp4_fZIePqukljEh9f4mZUyIA,3779
123
123
  web3/middleware/names.py,sha256=OBpsvCmcTItth4TcvUNUvcYmINnudtCHq3n6YO_BkNs,4309
124
124
  web3/middleware/proof_of_authority.py,sha256=0AT4jr5CmTdrvl8Jiy-WYy8IFDYBOEaesgHDwpn0c7M,1429
125
125
  web3/middleware/pythonic.py,sha256=awc8I6lLzVc2Iv138sps2uf6dMQipskLRBTdvTEEIgQ,348
126
- web3/middleware/signing.py,sha256=DHPvmugVTJMnRH-f6_C0ekf5tysROTAek9EAydABg8M,5740
126
+ web3/middleware/signing.py,sha256=8obqMCxrTuYgXezfTtic5CFrDrAqHikb-0PhQ3NmOz8,5742
127
127
  web3/middleware/stalecheck.py,sha256=oWRA69BGIbNGjHSnUVOBnoxOYJZYjzRzlqqL5RRlnzk,2680
128
128
  web3/middleware/validation.py,sha256=QxActrJk_zsXXiwpadP2MUjZBS5E50OJOtUwVrm9XVo,4280
129
129
  web3/providers/__init__.py,sha256=PLRNgSNqMjXKGM-qAatJTGSaQjmjzQW6jYxS3lVX_w0,470
130
- web3/providers/async_base.py,sha256=NGmg36qihjvhnx1OXIB0fg2kkc0rbFlJV5iFPzr0nGY,5323
130
+ web3/providers/async_base.py,sha256=61eaIK-SyuIOoSIHOtJ9vNpxTRPqTxTS392_iMcVp8s,6832
131
131
  web3/providers/auto.py,sha256=Zx3CHKoRkmiw3Jte2BLNPiJAFd8rDXNGfA3XtxZvHgc,3465
132
- web3/providers/base.py,sha256=47r2USOZP3cc78fk2K8yFR7MoI2AMqKClGltPqbV4Xg,4468
133
- web3/providers/ipc.py,sha256=EEl5qf09VzOUslztSNIckeLk8Wvsch0Bc0iGaZePBwQ,5768
134
- web3/providers/legacy_websocket.py,sha256=TuGCB26n9b9USXLUFNI5htKNZV7f_5pfsl_iro2N9e4,3953
132
+ web3/providers/base.py,sha256=Dypc9zlrre4IFNglFOmR_1IcLCtCFzMAvnj_IYfYXpU,5884
133
+ web3/providers/ipc.py,sha256=wvC8Eq6OZ65ctpUAn9SvoBCLR_x-Hgur390_b3AU100,6355
134
+ web3/providers/legacy_websocket.py,sha256=6mFEQVlVoc71AyDvPGGt3KQudQKdMxoHvokg6Fb4VOw,4767
135
135
  web3/providers/eth_tester/__init__.py,sha256=J6wazY3hQySsUfpFgwCXbEMo-CGEZjRo11RCg4UXKmA,83
136
- web3/providers/eth_tester/defaults.py,sha256=3hyFtvZYV3xZeuJQCzT2b2j3xWtgz41fFK3IE2aPjHk,14510
137
- web3/providers/eth_tester/main.py,sha256=B_zhqYCUTXB8MkSiKlBrOKSERPVE8pvOx31cV1qVZ7Y,7214
138
- web3/providers/eth_tester/middleware.py,sha256=ghEn_2Dtdbj6KUEt97MgCAzXwslii6lk7GGyF8r6-70,13287
136
+ web3/providers/eth_tester/defaults.py,sha256=YCck0DUgNl_RtFjVYox4m5yfh4-LvrAuvKSJDc7VcBs,12776
137
+ web3/providers/eth_tester/main.py,sha256=U19sNDeHs36A4IYQ0HFGyXdZvuXiYvoSMNWVuki0WwI,7807
138
+ web3/providers/eth_tester/middleware.py,sha256=mrPHXTWrkRq3q6QV3pMmVwdEov3VXSryY6OrcSB2SwY,13137
139
139
  web3/providers/persistent/__init__.py,sha256=S1s8m1cjPOjD-CCrWrLDP0PGlP1FUqgEw2KdrDeMPgk,283
140
- web3/providers/persistent/async_ipc.py,sha256=PLKYtekhMYDvJlH5vpyvHJUYkhrUzebyh153l-243Iw,7215
141
- web3/providers/persistent/persistent.py,sha256=_rAuGuMWNMgLo3pv9aGXwNLwLSOPL2Qo00-fZYWADZs,3918
140
+ web3/providers/persistent/async_ipc.py,sha256=YtSZWlKwnr78ofBW31jTPpDAOK_Cs305oT-Y7Uhdhnw,6213
141
+ web3/providers/persistent/persistent.py,sha256=2dJtCfhK_Sm6wrEx807XbO0YhADM27agEI8sEgNwoWE,8918
142
142
  web3/providers/persistent/persistent_connection.py,sha256=56yjpwDMM2phkJ_M5_QB-A6_CjZc5VrkWhNDweA70d0,1109
143
- web3/providers/persistent/request_processor.py,sha256=8MwXX-BwTLawg0h8xV_NllOX7xiR5T4KpA4gNISAHD0,11540
143
+ web3/providers/persistent/request_processor.py,sha256=E1jJwsvrPBTbufCy2LeNvMdRXf1H-Iz5WTsqyFvPGc0,14504
144
144
  web3/providers/persistent/utils.py,sha256=gfY7w1HB8xuE7OujSrbwWYjQuQ8nzRBoxoL8ESinqWM,1140
145
- web3/providers/persistent/websocket.py,sha256=rRFEustuPOyKekyNmDGTBc_qosCNuvXRTLq7C9Ont6g,6901
145
+ web3/providers/persistent/websocket.py,sha256=L0jIBaSq2XBAPbzpJgBjDsUB0sfIl8p4af5fqIl56a0,5446
146
146
  web3/providers/rpc/__init__.py,sha256=d20CaZ6vOXlud5sh6I5JnT_zEGBMpbXl-vCDFMxBNoY,89
147
- web3/providers/rpc/async_rpc.py,sha256=Gbyja7Cr5QL_4snvQivJrzIEBFk4DLLZ9C0PVdlv2Gw,4667
148
- web3/providers/rpc/rpc.py,sha256=cGXX05fOoSU7bQ_g0zTEcFJVUDj7VODVKnWXFUpRcX0,4622
149
- web3/providers/rpc/utils.py,sha256=hjw0_tzBvJ6eBsQak9xzo37ODMGhKTAlLjeSoSZk39k,2458
147
+ web3/providers/rpc/async_rpc.py,sha256=QKZE5-TEYQS0tFR9ipJU0vIj1oJOEWoGea2msFnttrM,5430
148
+ web3/providers/rpc/rpc.py,sha256=jjbHbLBDE5SQwpcIw13noTYmnrpYrwyw7MVkYEBewS8,5420
149
+ web3/providers/rpc/utils.py,sha256=U0Zd-wSjPs9K2yskWPfGm7_V1gfnCtIf0ppu53NxLFs,2212
150
150
  web3/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
151
  web3/scripts/release/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
152
  web3/scripts/release/test_package.py,sha256=DH0AryllcF4zfpWSd0NLPSQGHNoC-Qng5WYYbS5_4c8,1534
153
153
  web3/tools/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
154
  web3/tools/benchmark/main.py,sha256=9VeU4AXMya-BAOYOnfO34GEuxLeg3fS_zM56BKID60E,5768
155
- web3/tools/benchmark/node.py,sha256=IYyXmVyACF6R0xch9_9Ow24a7HuH8aOcZ2iA2sxOYvo,3501
155
+ web3/tools/benchmark/node.py,sha256=8WXkFGRczZ_ECFu6kvP51wyAKs6M_rRSGsNX4smuBE8,3253
156
156
  web3/tools/benchmark/reporting.py,sha256=G2bj_Eo2kBV06GARDYK9zr0VqesiR0_5JLKvhAo6zRM,912
157
157
  web3/tools/benchmark/utils.py,sha256=7OOdUD71AVWi0cowAE9ekMgqlfcJwk3vrNnMCHtiGdU,1696
158
158
  web3/utils/__init__.py,sha256=pswH3MW_mro5zrHn_q8Pto-iS1jrbtEH3UtQ9qioiKM,455
@@ -161,8 +161,8 @@ web3/utils/address.py,sha256=KC_IpEbixSCuMhaW6V2QCyyJTYKYGS9c8QtI9_aH7zQ,967
161
161
  web3/utils/async_exception_handling.py,sha256=gfLuzP7Y5rc21jZVjWEYAOZUMJkJd9CmsL297UKReow,3096
162
162
  web3/utils/caching.py,sha256=4U-vh61m1dlslwEn_Nl7ybIlMF4W2IAcvMTH-iFzrNM,1618
163
163
  web3/utils/exception_handling.py,sha256=12xkzIqMAOx0Jcm6PYL98PmWlLPKFll0p9YoLGS_ZNg,3052
164
- web3-7.0.0b4.dist-info/LICENSE,sha256=ulnXiEqqFp9VyWe8yMFdtDi70RMBJk3mpY3FKujv6l8,1090
165
- web3-7.0.0b4.dist-info/METADATA,sha256=s8tObk2I93X6JY4tM3-CjFEfxNZuyVxVRbiFzkLgmxg,3967
166
- web3-7.0.0b4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
167
- web3-7.0.0b4.dist-info/top_level.txt,sha256=iwupuJh7wgypXrpk_awszyri3TahRr5vxSphNyvt1bU,9
168
- web3-7.0.0b4.dist-info/RECORD,,
164
+ web3-7.0.0b6.dist-info/LICENSE,sha256=ScEyLx1vWrB0ybKiZKKTXm5QhVksHCEUtTp4lwYV45I,1095
165
+ web3-7.0.0b6.dist-info/METADATA,sha256=utkibUdBJj1dz-TJBBMpWymmbb1QYV4dQE2eqxkSdug,4702
166
+ web3-7.0.0b6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
167
+ web3-7.0.0b6.dist-info/top_level.txt,sha256=iwupuJh7wgypXrpk_awszyri3TahRr5vxSphNyvt1bU,9
168
+ web3-7.0.0b6.dist-info/RECORD,,
@@ -1,300 +0,0 @@
1
- import json
2
- import pytest
3
- from typing import (
4
- TYPE_CHECKING,
5
- cast,
6
- )
7
-
8
- from eth_typing import (
9
- ChecksumAddress,
10
- )
11
- from eth_utils import (
12
- is_checksum_address,
13
- is_list_like,
14
- is_same_address,
15
- is_string,
16
- )
17
- from hexbytes import (
18
- HexBytes,
19
- )
20
-
21
- from web3 import (
22
- constants,
23
- )
24
- from web3.datastructures import (
25
- AttributeDict,
26
- )
27
- from web3.types import (
28
- TxParams,
29
- Wei,
30
- )
31
-
32
- if TYPE_CHECKING:
33
- from web3 import ( # noqa: F401
34
- AsyncWeb3,
35
- Web3,
36
- )
37
-
38
- PRIVATE_KEY_HEX = "0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f933673458f"
39
- SECOND_PRIVATE_KEY_HEX = (
40
- "0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f9336712345"
41
- )
42
- THIRD_PRIVATE_KEY_HEX = (
43
- "0x56ebb41875ceedd42e395f730e03b5c44989393c9f0484ee6bc05f9336754321"
44
- )
45
- PASSWORD = "web3-testing"
46
- ADDRESS = "0x844B417c0C58B02c2224306047B9fb0D3264fE8c"
47
- SECOND_ADDRESS = "0xB96b6B21053e67BA59907E252D990C71742c41B8"
48
-
49
-
50
- PRIVATE_KEY_FOR_UNLOCK = (
51
- "0x392f63a79b1ff8774845f3fa69de4a13800a59e7083f5187f1558f0797ad0f01"
52
- )
53
- ACCOUNT_FOR_UNLOCK = "0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13"
54
-
55
-
56
- class GoEthereumPersonalModuleTest:
57
- def test_personal_import_raw_key(self, w3: "Web3") -> None:
58
- actual = w3.geth.personal.import_raw_key(PRIVATE_KEY_HEX, PASSWORD)
59
- assert actual == ADDRESS
60
-
61
- def test_personal_list_accounts(self, w3: "Web3") -> None:
62
- accounts = w3.geth.personal.list_accounts()
63
- assert is_list_like(accounts)
64
- assert len(accounts) > 0
65
- assert all(is_checksum_address(item) for item in accounts)
66
-
67
- def test_personal_list_wallets(self, w3: "Web3") -> None:
68
- wallets = w3.geth.personal.list_wallets()
69
- assert is_list_like(wallets)
70
- assert len(wallets) > 0
71
- assert is_checksum_address(wallets[0]["accounts"][0]["address"])
72
- assert is_string(wallets[0]["accounts"][0]["url"])
73
- assert is_string(wallets[0]["status"])
74
- assert is_string(wallets[0]["url"])
75
-
76
- def test_personal_lock_account(
77
- self, w3: "Web3", unlockable_account_dual_type: ChecksumAddress
78
- ) -> None:
79
- # TODO: how do we test this better?
80
- w3.geth.personal.lock_account(unlockable_account_dual_type)
81
-
82
- def test_personal_unlock_account_success(
83
- self,
84
- w3: "Web3",
85
- unlockable_account_dual_type: ChecksumAddress,
86
- unlockable_account_pw: str,
87
- ) -> None:
88
- result = w3.geth.personal.unlock_account(
89
- unlockable_account_dual_type, unlockable_account_pw
90
- )
91
- assert result is True
92
-
93
- def test_personal_unlock_account_failure(
94
- self, w3: "Web3", unlockable_account_dual_type: ChecksumAddress
95
- ) -> None:
96
- with pytest.raises(ValueError):
97
- w3.geth.personal.unlock_account(
98
- unlockable_account_dual_type, "bad-password"
99
- )
100
-
101
- def test_personal_new_account(self, w3: "Web3") -> None:
102
- new_account = w3.geth.personal.new_account(PASSWORD)
103
- assert is_checksum_address(new_account)
104
-
105
- def test_personal_send_transaction(
106
- self,
107
- w3: "Web3",
108
- unlockable_account_dual_type: ChecksumAddress,
109
- unlockable_account_pw: str,
110
- ) -> None:
111
- assert (
112
- w3.eth.get_balance(unlockable_account_dual_type) > constants.WEI_PER_ETHER
113
- )
114
- txn_params: TxParams = {
115
- "from": unlockable_account_dual_type,
116
- "to": unlockable_account_dual_type,
117
- "gas": 21000,
118
- "value": Wei(1),
119
- "gasPrice": w3.to_wei(1, "gwei"),
120
- }
121
- txn_hash = w3.geth.personal.send_transaction(txn_params, unlockable_account_pw)
122
- assert txn_hash
123
- transaction = w3.eth.get_transaction(txn_hash)
124
-
125
- assert is_same_address(
126
- transaction["from"], cast(ChecksumAddress, txn_params["from"])
127
- )
128
- assert is_same_address(
129
- transaction["to"], cast(ChecksumAddress, txn_params["to"])
130
- )
131
- assert transaction["gas"] == txn_params["gas"]
132
- assert transaction["value"] == txn_params["value"]
133
- assert transaction["gasPrice"] == txn_params["gasPrice"]
134
-
135
- def test_personal_sign_and_ecrecover(
136
- self,
137
- w3: "Web3",
138
- unlockable_account_dual_type: ChecksumAddress,
139
- unlockable_account_pw: str,
140
- ) -> None:
141
- message = "test-web3-geth-personal-sign"
142
- signature = w3.geth.personal.sign(
143
- message, unlockable_account_dual_type, unlockable_account_pw
144
- )
145
- signer = w3.geth.personal.ec_recover(message, signature)
146
- assert is_same_address(signer, unlockable_account_dual_type)
147
-
148
- @pytest.mark.xfail(
149
- reason="personal_sign_typed_data JSON RPC call has not been released in geth"
150
- )
151
- def test_personal_sign_typed_data(
152
- self,
153
- w3: "Web3",
154
- unlockable_account_dual_type: ChecksumAddress,
155
- unlockable_account_pw: str,
156
- ) -> None:
157
- typed_message = """
158
- {
159
- "types": {
160
- "EIP712Domain": [
161
- {"name": "name", "type": "string"},
162
- {"name": "version", "type": "string"},
163
- {"name": "chainId", "type": "uint256"},
164
- {"name": "verifyingContract", "type": "address"}
165
- ],
166
- "Person": [
167
- {"name": "name", "type": "string"},
168
- {"name": "wallet", "type": "address"}
169
- ],
170
- "Mail": [
171
- {"name": "from", "type": "Person"},
172
- {"name": "to", "type": "Person"},
173
- {"name": "contents", "type": "string"}
174
- ]
175
- },
176
- "primaryType": "Mail",
177
- "domain": {
178
- "name": "Ether Mail",
179
- "version": "1",
180
- "chainId": "0x01",
181
- "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC"
182
- },
183
- "message": {
184
- "from": {
185
- "name": "Cow",
186
- "wallet": "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826"
187
- },
188
- "to": {
189
- "name": "Bob",
190
- "wallet": "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB"
191
- },
192
- "contents": "Hello, Bob!"
193
- }
194
- }
195
- """
196
- signature = HexBytes(
197
- w3.geth.personal.sign_typed_data(
198
- json.loads(typed_message),
199
- unlockable_account_dual_type,
200
- unlockable_account_pw,
201
- )
202
- )
203
-
204
- expected_signature = HexBytes(
205
- "0xc8b56aaeefd10ab4005c2455daf28d9082af661ac347cd"
206
- "b612d5b5e11f339f2055be831bf57a6e6cb5f6d93448fa35"
207
- "c1bd56fe1d745ffa101e74697108668c401c"
208
- )
209
- assert signature == expected_signature
210
- assert len(signature) == 32 + 32 + 1
211
-
212
-
213
- class GoEthereumAsyncPersonalModuleTest:
214
- @pytest.mark.asyncio
215
- async def test_async_sign_and_ec_recover(
216
- self,
217
- async_w3: "AsyncWeb3",
218
- async_unlockable_account_dual_type: ChecksumAddress,
219
- unlockable_account_pw: str,
220
- ) -> None:
221
- message = "This is a test"
222
- signature = await async_w3.geth.personal.sign(
223
- message, async_unlockable_account_dual_type, unlockable_account_pw
224
- )
225
- address = await async_w3.geth.personal.ec_recover(message, signature)
226
- assert is_same_address(async_unlockable_account_dual_type, address)
227
-
228
- @pytest.mark.asyncio
229
- async def test_async_import_key(self, async_w3: "AsyncWeb3") -> None:
230
- address = await async_w3.geth.personal.import_raw_key(
231
- THIRD_PRIVATE_KEY_HEX, "Testing"
232
- )
233
- assert address is not None
234
-
235
- @pytest.mark.asyncio
236
- async def test_async_list_accounts(self, async_w3: "AsyncWeb3") -> None:
237
- accounts = await async_w3.geth.personal.list_accounts()
238
- assert len(accounts) > 0
239
-
240
- @pytest.mark.asyncio
241
- async def test_async_list_wallets(self, async_w3: "AsyncWeb3") -> None:
242
- wallets = await async_w3.geth.personal.list_wallets()
243
- assert isinstance(wallets[0], AttributeDict)
244
-
245
- @pytest.mark.asyncio
246
- async def test_async_new_account(self, async_w3: "AsyncWeb3") -> None:
247
- passphrase = "Create New Account"
248
- account = await async_w3.geth.personal.new_account(passphrase)
249
- assert is_checksum_address(account)
250
-
251
- @pytest.mark.asyncio
252
- async def test_async_unlock_lock_account(
253
- self,
254
- async_w3: "AsyncWeb3",
255
- async_unlockable_account_dual_type: ChecksumAddress,
256
- unlockable_account_pw: str,
257
- ) -> None:
258
- unlocked = await async_w3.geth.personal.unlock_account(
259
- async_unlockable_account_dual_type, unlockable_account_pw
260
- )
261
- assert unlocked is True
262
- locked = await async_w3.geth.personal.lock_account(
263
- async_unlockable_account_dual_type
264
- )
265
- assert locked is True
266
-
267
- @pytest.mark.asyncio
268
- async def test_async_send_transaction(
269
- self,
270
- async_w3: "AsyncWeb3",
271
- async_unlockable_account_dual_type: ChecksumAddress,
272
- unlockable_account_pw: str,
273
- ) -> None:
274
- tx_params = TxParams()
275
- tx_params["to"] = async_unlockable_account_dual_type
276
- tx_params["from"] = async_unlockable_account_dual_type
277
- tx_params["value"] = Wei(123)
278
- response = await async_w3.geth.personal.send_transaction(
279
- tx_params, unlockable_account_pw
280
- )
281
- assert response is not None
282
-
283
- @pytest.mark.xfail(
284
- reason="personal_signTypedData JSON RPC call has not been released in geth"
285
- )
286
- @pytest.mark.asyncio
287
- async def test_async_sign_typed_data(
288
- self,
289
- async_w3: "AsyncWeb3",
290
- async_unlockable_account_dual_type: ChecksumAddress,
291
- unlockable_account_pw: str,
292
- ) -> None:
293
- message = {"message": "This is a test"}
294
- signature = await async_w3.geth.personal.sign_typed_data(
295
- message, async_unlockable_account_dual_type, unlockable_account_pw
296
- )
297
- address = await async_w3.geth.personal.ec_recover(
298
- json.dumps(message), signature
299
- )
300
- assert is_same_address(async_unlockable_account_dual_type, address)
File without changes