Skip to content

Commit

Permalink
Implement eth_submitWork
Browse files Browse the repository at this point in the history
  • Loading branch information
njgheorghita committed Mar 15, 2019
1 parent ca77f6f commit 19a3a97
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 3 deletions.
2 changes: 2 additions & 0 deletions docs/releases.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ Unreleased (latest source)
--------------------------
- Remove ``web3/utils`` directory in favor of ``web3/_utils``
- `#1282 <https://github.com/ethereum/web3.py/pull/1282>`_
- Implement ``eth_submitHashrate`` and ``eth_submitWork`` JSONRPC endpoints.
- `#1280 <https://github.com/ethereum/web3.py/pull/1280>`_

v5.0.0-alpha.7
--------------
Expand Down
16 changes: 15 additions & 1 deletion docs/web3.eth.rst
Original file line number Diff line number Diff line change
Expand Up @@ -828,7 +828,7 @@ with the filtering API.

.. py:method:: Eth.submitHashrate(hashrate, nodeid)
* Delegates to ``eth_submitHashrate`` RPC Method.
* Delegates to ``eth_submitHashrate`` RPC Method

.. code-block:: python
Expand All @@ -837,6 +837,20 @@ with the filtering API.
True
.. py:method:: Eth.submitWork(nonce, pow_hash, mix_digest)
* Delegates to ``eth_submitWork`` RPC Method.

.. code-block:: python
>>> web3.eth.submitWork(
1,
'0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
'0xD1FE5700000000000000000000000000D1FE5700000000000000000000000000',
)
True
Contracts
---------

Expand Down
1 change: 1 addition & 0 deletions tests/integration/test_ethereum_tester.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@ def func_wrapper(self, eth_tester, *args, **kwargs):
class TestEthereumTesterEthModule(EthModuleTest):
test_eth_sign = not_implemented(EthModuleTest.test_eth_sign, ValueError)
test_eth_submitHashrate = not_implemented(EthModuleTest.test_eth_submitHashrate, ValueError)
test_eth_submitWork = not_implemented(EthModuleTest.test_eth_submitWork, ValueError)

@disable_auto_mine
def test_eth_getTransactionReceipt_unmined(self, eth_tester, web3, unlocked_account):
Expand Down
7 changes: 7 additions & 0 deletions web3/_utils/module_testing/eth_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -816,3 +816,10 @@ def test_eth_submitHashrate(self, web3):
node_id = '59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c'
result = web3.eth.submitHashrate(5000, node_id)
assert result is True

def test_eth_submitWork(self, web3):
nonce = 1
pow_hash = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
mix_digest = '0xD1FE5700000000000000000000000000D1FE5700000000000000000000000000'
result = web3.eth.submitWork(nonce, pow_hash, mix_digest)
assert result is False
3 changes: 2 additions & 1 deletion web3/_utils/rpc_abi.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@
'eth_sendRawTransaction': ['bytes'],
'eth_sendTransaction': TRANSACTION_PARAMS_ABIS,
'eth_sign': ['address', 'bytes'],
'eth_submitHashrate': ['uint', None],
'eth_submitHashrate': ['uint', 'bytes32'],
'eth_submitWork': ['bytes8', 'bytes32', 'bytes32'],
# personal
'personal_sendTransaction': TRANSACTION_PARAMS_ABIS,
'personal_lockAccount': ['address'],
Expand Down
5 changes: 5 additions & 0 deletions web3/eth.py
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,11 @@ def submitHashrate(self, hashrate, node_id):
"eth_submitHashrate", [hashrate, node_id],
)

def submitWork(self, nonce, pow_hash, mix_digest):
return self.web3.manager.request_blocking(
"eth_submitWork", [nonce, pow_hash, mix_digest],
)

def uninstallFilter(self, filter_id):
return self.web3.manager.request_blocking(
"eth_uninstallFilter", [filter_id],
Expand Down
1 change: 0 additions & 1 deletion web3/middleware/pythonic.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,6 @@ def to_hexbytes(num_bytes, val, variable_length=False):
(estimate_gas_with_block_id, is_length(2)),
)),
'eth_sendTransaction': apply_formatter_at_index(transaction_param_formatter, 0),
'eth_submitHashrate': apply_formatter_at_index(hexstr_if_str(to_hex), 1),
# personal
'personal_importRawKey': apply_formatter_at_index(
compose(remove_0x_prefix, hexstr_if_str(to_hex)),
Expand Down

0 comments on commit 19a3a97

Please sign in to comment.