web3 7.0.0b4__py3-none-any.whl → 7.0.0b5__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.
@@ -14,44 +14,44 @@ 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=0hTYMQQQjFMguX3I-ux-rFobNEvLcfZvj0JXKVqfI6U,8246
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
20
+ web3/main.py,sha256=m_wgFhgIPkAU6zK7OboX0cS1p-Wh0r894oxyQjejtAE,13936
21
+ web3/manager.py,sha256=SVuQIkGv-U2CejhXBFphDboc17opGdulzJ0s4zusygo,17029
22
22
  web3/method.py,sha256=gzMSinK-oMnsxzAD0OCQo3gBXtDRyT-TL9gNt3uncig,7874
23
23
  web3/module.py,sha256=zonvW0meqdfG82-KgtYTF9ketsCShK2m9b-HYRBJRZg,4793
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=1auFCb-wFN_a0hE7XjUAuPzLyt32xWdPNBXH7frWOtE,12623
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
33
  web3/_utils/blocks.py,sha256=SZ17qSJuPAH5Dz-eQPGOsZw_QtkG19zvpSYMv6mEDok,2138
34
34
  web3/_utils/caching.py,sha256=h0ieRKbeVsYyy86RG_oZxQZgGk5_YDj4hEinfszlK9Y,4841
35
- web3/_utils/contracts.py,sha256=3WaNUxGihdkOHn-M9hIfyWnK0Atl8p71TWzCpJUCoCw,14206
35
+ web3/_utils/contracts.py,sha256=U_TyoeqP79hGKZEmPqhS3LxuaxUJBxH9aIXK9c5LpsQ,14206
36
36
  web3/_utils/datatypes.py,sha256=nI0C9XWl46gFj1RpwuoHfVqb4e73wlaerE1LNyMg3oo,1701
37
37
  web3/_utils/decorators.py,sha256=bYIoVL0DjHWU2-KOmg-UYg6rICeThlLVZpH9yM2NT8s,1825
38
38
  web3/_utils/empty.py,sha256=ccgxFk5qm2x2ZeD8b17wX5cCAJPkPFuHrNQNMDslytY,132
39
39
  web3/_utils/encoding.py,sha256=lP4idUeJWVlTgW7mwACTsZUbH1b9Q7BJLNovPobMlOo,9262
40
40
  web3/_utils/ens.py,sha256=2BvzfegBkR7vH3Fq7lo_LsgfT912Zj-mR8eUt6o_lBA,2434
41
41
  web3/_utils/error_formatters_utils.py,sha256=uRXm6P6z4cUTTlQRLFLtuC3FYOjR0lrIlQToR5f_gzI,6868
42
- web3/_utils/events.py,sha256=hjVzm_adBcpRWkIfHRe0t_ZQPSOACmq-HfnIPoaF_UA,17387
42
+ web3/_utils/events.py,sha256=K-jE53D15WT1AudWJZCA3UPOLpJPlJiPmWoR-ltfHPk,17406
43
43
  web3/_utils/fee_utils.py,sha256=hlY-PDtXNddufcpBQHxWmd7wwK3-XcaJ8trRpKKb8sA,2099
44
- web3/_utils/filters.py,sha256=RNRW-SjGym8Bhvl5bi4ggWbbNeQeAhC-3CDPGbkKZZg,11974
44
+ web3/_utils/filters.py,sha256=M9FpffgVXmDaoUk0HjAhVNi9Krq6hMlKE01n_JxHOMQ,11980
45
45
  web3/_utils/formatters.py,sha256=RfRZU0aXC99s6OoLMY7D-fcYJyVAYBEwdbw-JIDjbZE,3067
46
46
  web3/_utils/function_identifiers.py,sha256=m305lsvUZk-jkPixT0IJd9P5sXqMvmwlwlLeBgEAnBQ,55
47
47
  web3/_utils/http.py,sha256=GDHmbeWt7UoHkRBvFt9Py5Vzr2ZLzH9WxAqEYZCJ53s,205
48
48
  web3/_utils/hypothesis.py,sha256=4Cm4iOWv-uP9irg_Pv63kYNDYUAGhnUH6fOPWRw3A0g,209
49
49
  web3/_utils/math.py,sha256=4oU5YdbQBXElxK00CxmUZ94ApXFu9QT_TrO0Kho1HTs,1083
50
- web3/_utils/method_formatters.py,sha256=RL23Ap_klBbFbUy69a1Txh5crpzGy15EH4de_ZZcSpg,34481
50
+ web3/_utils/method_formatters.py,sha256=xLJj6vM4jYIKcpq0rQrXTtqdnvtGLOilapcytL2QHFw,33591
51
51
  web3/_utils/module.py,sha256=GuVePloTlIBZwFDOjg0zasp53HSJ32umxN1nQhqW-8Y,3175
52
52
  web3/_utils/normalizers.py,sha256=Q5urvzI9nbtNiqzhrrIMtZ5NqOAxWE4Xp5srZFs0Baw,7392
53
53
  web3/_utils/request.py,sha256=G-f_UPx6yEKYbc1JjQBJyS0R5FnLDlOoV0OYE2_xREU,8843
54
- web3/_utils/rpc_abi.py,sha256=SSpfuQP2buTvPO49ZzTOCOvgYhT1g3FD3VlRZ8GAgF8,9444
54
+ web3/_utils/rpc_abi.py,sha256=WAqi4E46ISt9RzU74zUH4FAez9k9CJ7qr_M94fGzKZ0,8529
55
55
  web3/_utils/threads.py,sha256=hNlSd_zheQYN0vC1faWWb9_UQxp_UzaM2fI5C8y0kB0,4245
56
56
  web3/_utils/transactions.py,sha256=eGnFlVtzvlcDsF8-Gnbai4rjVP9iWpQ5CaAx6Ml9K8g,8912
57
57
  web3/_utils/type_conversion.py,sha256=s6cg3WDCQIarQLWw_GfctaJjXhS_EcokUNO-S_ccvng,873
@@ -85,10 +85,9 @@ web3/_utils/contract_sources/contract_data/simple_resolver.py,sha256=WveX0v15U64
85
85
  web3/_utils/contract_sources/contract_data/storage_contract.py,sha256=NhoWNlWltNtGBdPwCWQGQfDO4hDTRXCVPWx7jSc58B0,8238
86
86
  web3/_utils/contract_sources/contract_data/string_contract.py,sha256=zZdglZ6se_aqMIUKN3-3zR57h8zyDyUQIgtSIXtdSzg,11586
87
87
  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
88
+ web3/_utils/module_testing/__init__.py,sha256=tPFAaX7xOR50CPTq24UeY-1CX1LQxxmEOPr0-tIRkoE,376
89
+ web3/_utils/module_testing/eth_module.py,sha256=QDX952Z5bRG2puQjv4M_s7WwBxvhlGdKTo5Mg1_Fx8c,186021
90
90
  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
91
  web3/_utils/module_testing/go_ethereum_txpool_module.py,sha256=5f8XL8-2x3keyGRaITxMQYl9oQzjgqGn8zobB-j9BPs,1176
93
92
  web3/_utils/module_testing/module_testing_utils.py,sha256=sPsSI4Cm8DWMOjI2eNsleED3daloFpMChk4AQ96gE5w,5559
94
93
  web3/_utils/module_testing/net_module.py,sha256=ifUTC-5fTcQbwpm0X09OdD5RSPnn00T8klFeYe8tTm4,1272
@@ -102,14 +101,14 @@ web3/beacon/api_endpoints.py,sha256=dkekSCmkat5QIfwKzwm49CyVcRb-pIbn1nZHB4F8M0U,
102
101
  web3/beacon/async_beacon.py,sha256=y7cvbsDYjRNDZftzcJyXaSLCsRrASAGxfyCwE53oCG4,7472
103
102
  web3/beacon/beacon.py,sha256=wgSmF-5hu_95L6onnlA33ADDoASFf9OZf-YWnqnY0VY,6640
104
103
  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
104
+ web3/contract/async_contract.py,sha256=LiYBEOh11myVOuHss9iwHDQcLAHtsSW1mlzpcDnMvmo,20515
105
+ web3/contract/base_contract.py,sha256=Vbgd00EAsfYBcYwTE_-8lVN62CrqLD9z4CeRPJbs3ik,37011
106
+ web3/contract/contract.py,sha256=cF0tsOjbJpg6zOBqZ_02btl3O4HTABcEnUzYzFiDcpo,20124
108
107
  web3/contract/utils.py,sha256=t57K5BZS_K6H_BQSpEXjcObkbRQyYLbjx41dolNWzII,12510
109
108
  web3/eth/__init__.py,sha256=CrYZXIlIdKTmznnLNUaA-C3eLvftBnmlVt9uxm-dwAI,124
110
- web3/eth/async_eth.py,sha256=z8CYrIDPQs3SB90-8fDQOIxXehlkWoIO_0FiBg6_na8,24082
109
+ web3/eth/async_eth.py,sha256=y4Qhc8Y6v_dvtxO68ZWDtszR8vE4oJZxVxEP_QDPUFU,24084
111
110
  web3/eth/base_eth.py,sha256=UUH0Fw0HVa_mBEQ_CbCDO01yCVDsj33d8yOv7Oe-QD0,6905
112
- web3/eth/eth.py,sha256=09RJbMSI5EpMxCgF2KaiYoVWSUuP-sfyXDI54ng0X5g,21026
111
+ web3/eth/eth.py,sha256=dho9oFYq27CAbSB-xRC2eGDzppmjcird_OtuKz4XsMQ,21002
113
112
  web3/gas_strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
113
  web3/gas_strategies/rpc.py,sha256=3Va-32jdmHkX7tzQCmh17ms2D6te5zZcqHP1326BdpY,352
115
114
  web3/gas_strategies/time_based.py,sha256=Va3dbi6B7uAyTXWZBLhJ7oqARf_qnqmyb5O7sC16yH8,8981
@@ -117,13 +116,13 @@ web3/middleware/__init__.py,sha256=3aCt9x2A9x_Hg0QnqsN0MDbm2yw2WFTNjzlt1ytYrdQ,2
117
116
  web3/middleware/attrdict.py,sha256=NY5yxlFOfLBBmcIjl8R-uP2dTz9ITIyTttG8-QcJWCI,2259
118
117
  web3/middleware/base.py,sha256=6rywe6AQtN0HBqXrtAYs6nTPR16XhtW87A4cXa7iB28,3553
119
118
  web3/middleware/buffered_gas_estimate.py,sha256=EmxUd-uO959UVroPsPKkl7oDa8Tw6N8BQLB6Urng5Eo,1647
120
- web3/middleware/filter.py,sha256=rloRAQV_13hbVr1QjDet1PpUfR4hpzgT2jwLiZn4610,21678
119
+ web3/middleware/filter.py,sha256=vaQUJYKGRIHNgt1zPzRLfx_wICbL0uT7OcYGBlIzdD4,22174
121
120
  web3/middleware/formatting.py,sha256=hqe5XQE1n5Fmj6riJp7i3oIoZkd-4ChQc7UK8f3HB6I,7567
122
121
  web3/middleware/gas_price_strategy.py,sha256=ZjZ6pe3z0mDGLZHYoFXp4_fZIePqukljEh9f4mZUyIA,3779
123
122
  web3/middleware/names.py,sha256=OBpsvCmcTItth4TcvUNUvcYmINnudtCHq3n6YO_BkNs,4309
124
123
  web3/middleware/proof_of_authority.py,sha256=0AT4jr5CmTdrvl8Jiy-WYy8IFDYBOEaesgHDwpn0c7M,1429
125
124
  web3/middleware/pythonic.py,sha256=awc8I6lLzVc2Iv138sps2uf6dMQipskLRBTdvTEEIgQ,348
126
- web3/middleware/signing.py,sha256=DHPvmugVTJMnRH-f6_C0ekf5tysROTAek9EAydABg8M,5740
125
+ web3/middleware/signing.py,sha256=8obqMCxrTuYgXezfTtic5CFrDrAqHikb-0PhQ3NmOz8,5742
127
126
  web3/middleware/stalecheck.py,sha256=oWRA69BGIbNGjHSnUVOBnoxOYJZYjzRzlqqL5RRlnzk,2680
128
127
  web3/middleware/validation.py,sha256=QxActrJk_zsXXiwpadP2MUjZBS5E50OJOtUwVrm9XVo,4280
129
128
  web3/providers/__init__.py,sha256=PLRNgSNqMjXKGM-qAatJTGSaQjmjzQW6jYxS3lVX_w0,470
@@ -133,9 +132,9 @@ web3/providers/base.py,sha256=47r2USOZP3cc78fk2K8yFR7MoI2AMqKClGltPqbV4Xg,4468
133
132
  web3/providers/ipc.py,sha256=EEl5qf09VzOUslztSNIckeLk8Wvsch0Bc0iGaZePBwQ,5768
134
133
  web3/providers/legacy_websocket.py,sha256=TuGCB26n9b9USXLUFNI5htKNZV7f_5pfsl_iro2N9e4,3953
135
134
  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
135
+ web3/providers/eth_tester/defaults.py,sha256=YCck0DUgNl_RtFjVYox4m5yfh4-LvrAuvKSJDc7VcBs,12776
136
+ web3/providers/eth_tester/main.py,sha256=U19sNDeHs36A4IYQ0HFGyXdZvuXiYvoSMNWVuki0WwI,7807
137
+ web3/providers/eth_tester/middleware.py,sha256=mrPHXTWrkRq3q6QV3pMmVwdEov3VXSryY6OrcSB2SwY,13137
139
138
  web3/providers/persistent/__init__.py,sha256=S1s8m1cjPOjD-CCrWrLDP0PGlP1FUqgEw2KdrDeMPgk,283
140
139
  web3/providers/persistent/async_ipc.py,sha256=PLKYtekhMYDvJlH5vpyvHJUYkhrUzebyh153l-243Iw,7215
141
140
  web3/providers/persistent/persistent.py,sha256=_rAuGuMWNMgLo3pv9aGXwNLwLSOPL2Qo00-fZYWADZs,3918
@@ -144,15 +143,15 @@ web3/providers/persistent/request_processor.py,sha256=8MwXX-BwTLawg0h8xV_NllOX7x
144
143
  web3/providers/persistent/utils.py,sha256=gfY7w1HB8xuE7OujSrbwWYjQuQ8nzRBoxoL8ESinqWM,1140
145
144
  web3/providers/persistent/websocket.py,sha256=rRFEustuPOyKekyNmDGTBc_qosCNuvXRTLq7C9Ont6g,6901
146
145
  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
146
+ web3/providers/rpc/async_rpc.py,sha256=B8TYOk5pK3584dxjdMUB_S-0GFh5TJp60QDCSOk2vC8,4674
147
+ web3/providers/rpc/rpc.py,sha256=8rFTCfA-56qV2AEQ9E5qncFqdfUU-oz3mn2W3UYqC44,4683
148
+ web3/providers/rpc/utils.py,sha256=U0Zd-wSjPs9K2yskWPfGm7_V1gfnCtIf0ppu53NxLFs,2212
150
149
  web3/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
150
  web3/scripts/release/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
151
  web3/scripts/release/test_package.py,sha256=DH0AryllcF4zfpWSd0NLPSQGHNoC-Qng5WYYbS5_4c8,1534
153
152
  web3/tools/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
153
  web3/tools/benchmark/main.py,sha256=9VeU4AXMya-BAOYOnfO34GEuxLeg3fS_zM56BKID60E,5768
155
- web3/tools/benchmark/node.py,sha256=IYyXmVyACF6R0xch9_9Ow24a7HuH8aOcZ2iA2sxOYvo,3501
154
+ web3/tools/benchmark/node.py,sha256=8WXkFGRczZ_ECFu6kvP51wyAKs6M_rRSGsNX4smuBE8,3253
156
155
  web3/tools/benchmark/reporting.py,sha256=G2bj_Eo2kBV06GARDYK9zr0VqesiR0_5JLKvhAo6zRM,912
157
156
  web3/tools/benchmark/utils.py,sha256=7OOdUD71AVWi0cowAE9ekMgqlfcJwk3vrNnMCHtiGdU,1696
158
157
  web3/utils/__init__.py,sha256=pswH3MW_mro5zrHn_q8Pto-iS1jrbtEH3UtQ9qioiKM,455
@@ -161,8 +160,8 @@ web3/utils/address.py,sha256=KC_IpEbixSCuMhaW6V2QCyyJTYKYGS9c8QtI9_aH7zQ,967
161
160
  web3/utils/async_exception_handling.py,sha256=gfLuzP7Y5rc21jZVjWEYAOZUMJkJd9CmsL297UKReow,3096
162
161
  web3/utils/caching.py,sha256=4U-vh61m1dlslwEn_Nl7ybIlMF4W2IAcvMTH-iFzrNM,1618
163
162
  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,,
163
+ web3-7.0.0b5.dist-info/LICENSE,sha256=ulnXiEqqFp9VyWe8yMFdtDi70RMBJk3mpY3FKujv6l8,1090
164
+ web3-7.0.0b5.dist-info/METADATA,sha256=LKO7i65_Ddg8zXy1rI1ViR4Cahs8Wo22STpm7OT26xg,3967
165
+ web3-7.0.0b5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
166
+ web3-7.0.0b5.dist-info/top_level.txt,sha256=iwupuJh7wgypXrpk_awszyri3TahRr5vxSphNyvt1bU,9
167
+ web3-7.0.0b5.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